2010-11-29 9 views
2

最初に私は理論などについてはあまり知らないと言うつもりです。しかし、これがNPかNP完全な問題かどうか疑問に思っていました。具体的には、サブセットサム問題の特殊ケースのように聞こえる。これはNPの問題ですか?

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

あなたは要素

 
fire=basic element 
water=basic element 
air=basic element 
earth=basic element 
sand=earth+earth 
glass=sand+fire 
energy=fire+air 
lightbulb=energy+glass 

を作るためにそれでは、コンピュータが唯一の4つの基本要素を作成することができます言わせますが、それは複数のセットを作成することができればそう、例えば、これは短い「レシピ」であります要素。したがって、他の要素を組み合わせて要素を作成するプログラムを作成します。このプログラムはどのように電球を作成するリストを処理しますか?

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

しかし、リストを処理してブルートフォース型の方法を使わずにすべての要素を調べてそのレシピをチェックすることなく、リストを処理するプログラムを書く方法は考えられません。

これはNPの問題ですか?それとも、私はこれを理解することができませんか?

+1

役立つかもしれませんが、これはPrologの仕事のようです。 –

+1

これはPにあり、したがってNPにもあります。しかし、それはNP完全ではありません。 – lijie

+0

あなたは非常に簡単に検証を書くことができるので、少なくともNPに入っています。 –

答えて

4

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

確かに定義を逆方向に実行します。例えば電球を作成

  1. エネルギーの作成1枚のエネルギー+ 1枚のガラス
  2. そうで1つの火+ 1空気

を必要とし、必要とします。これは効果的には簡単なツリーウォークです。

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

+0

確かに、これは理にかなっています。あなたの最後のコメントのために、ゲームでは実際に電気+ガラスでしたが、電気は長い定義を持っていましたので、私はそれを短縮しました。私は、このようなリバーシブルではありませんが、正しくフレーズしていない別の方法で問題を見ていたと思います。とにかくこれは私がそれをどのように表現したかについての正解です – Earlz

3

問題をグラフとして簡単にモデル化し、完全な検索アルゴリズムを使用してソリューションを探すことができます。経験がない場合は、automated planningを調べると役立ちます。私はそのテキストにリンクしています。複雑さと検索アルゴリズムについても紹介しているからです。

関連する問題