回答:
問題がNP完全であることを示すには、次のことを行う必要があります。
言い換えると、いくつかの情報が与えられれば、ドメイン内にあるかどうかにかかわらず、すべての可能な入力を検証するC
多項式時間アルゴリズムV
を作成できます。X
X
頂点カバーの問題(つまり、あるグラフG
ではk
、すべてのエッジG
のカバーセットに少なくとも1つの頂点があるようなサイズの頂点カバーセットがあるか)がNP であることを証明します。
私たちの入力X
はいくつかのグラフG
といくつかの数値ですk
(これは問題の定義からのものです)
情報C
を「G
サイズのグラフの頂点の可能なサブセットk
」とする
その後、我々は、アルゴリズム記述することができますV
与えられた、ということをG
、k
そしてC
、頂点の集合は、頂点のためのカバーであるかどうかを返しますG
ではない、または多項式時間。
次に、すべてのグラフについて、頂点カバーである「サイズのG
可能な頂点のサブセット」が存在する場合は、にあります。G
k
G
NP
多項式時間で見つける必要がないことに注意してくださいC
。できれば、問題は `P.
アルゴリズムV
はすべての G
場合、一部の場合に機能することに注意してくださいC
。すべての入力には、入力が問題の領域にあるかどうかを確認するのに役立つ情報が存在する必要があります。つまり、情報が存在しない入力はありません。
これには、次の形式のブール式のセットであるSATなどの既知のNP完全問題を取得することが含まれます。
(AまたはBまたはC)および(DまたはEまたはF)および...
式が満足できる場合、つまり、これらのブール値に何らかの設定があり、式がtrueになります。
次に、NP完全問題を多項式時間の問題に減らします。
これは、いくつかの入力与えられているX
ためSAT
(またはものは何でも使用しているNP完全問題を)、いくつかの入力作成しY
、このような問題のため、X
場合に限り、SATでありY
、あなたの問題であるが。関数f : X -> Y
は多項式時間で実行する必要があります。
上記の例では、入力Y
はグラフG
と頂点カバーのサイズになりますk
。
以下のための完全な証拠、あなたは両方を証明する必要があると思います。
それX
はあなたの問題のSAT
=> Y
にあります
そしてY
あなたの問題では=> X
でSAT
。
marcogの回答には、問題に還元できる他のいくつかのNP完全問題とのリンクがあります。
脚注:ステップ2(NP困難であることを証明)では、別のNP困難(必ずしもNP完全ではない)問題を現在の問題に削減します。 NPでも)。
NP-Completeの問題をあなたが抱えている問題にまで減らす必要があります。削減が多項式時間で実行できる場合、問題がすでにNPにある場合、問題はNP完全であることを証明しました。
NP完全問題よりも簡単ではありません。問題をNP困難にする多項式時間で削減できるためです。
詳細については、http://www.ics.uci.edu/~eppstein/161/960312.htmlの最後を参照してください。