2

最初に言っておきますが、私は理論などについてよく知りません。しかし、これが NP なのか NP 完全な問題なのか疑問に思っていました。具体的には、部分和問題の特殊なケースのように聞こえます。

とにかく、私が最近プレイしている Alchemy というゲームが、この考えを促しました。基本的には、4 つの基本要素から始めて、それらを組み合わせて他の要素を作成します。

たとえば、要素を作成する場合、これは短い「レシピ」です。

火=基本要素
水=基本元素
空気=基本的な要素
土=基本元素
砂=土+土
ガラス=砂+火
エネルギー=火+風
電球=エネルギー+ガラス

では、コンピュータが 4 つの基本的な要素しか作成できなかったとしますが、要素の複数のセットを作成できます。したがって、他の要素を組み合わせて任意の要素を作成するプログラムを作成します。このプログラムは、電球を作成するリストをどのように処理しますか?

明らかに、火+空気=エネルギー、土+土=砂、砂+火=ガラス、エネルギー+ガラス=電球です。

しかし、リストを処理するプログラムを作成し、ブルートフォース型のメソッドを実行してすべての要素を調べ、そのレシピを確認することなくそれを理解する方法は考えられません。

これはNPの問題ですか?それとも、これを理解できないだけですか?

4

2 に答える 2

4

このプログラムは、電球を作成するリストをどのように処理しますか?

確かに、定義を逆方向に実行するだけです。例えば

  1. 電球を作成するには、1 エネルギー + 1 グラスが必要です
  2. エネルギーの作成には、火 1 + 空気 1 が必要です。

等々。これは事実上単純なツリー ウォークです。

OTOH、コンピューターにエネルギー + ガラスが (「溶けたガラスの塊」ではなく) 電球を意味することを理解させたい場合、問題を解決するチャンスはありません。エネルギー + ガラス = 電球であることに 2 人のゲーマーが同意することはおそらくないでしょう!

于 2010-11-29T01:44:29.010 に答える
3

問題をグラフとして簡単にモデル化し、完全な検索アルゴリズムを使用して解決策を探すことができます。経験がない場合は、自動計画を検討することも役立つ場合があります。複雑さと検索アルゴリズムの紹介も含まれているため、そのテキストにリンクしています。

于 2010-11-29T01:42:28.667 に答える