頂点被覆問題がNP完全であることを示します.頂点被覆問題のNP完全性から独立集合問題とクリーク問題がNP完全であることが導かれます.
頂点被覆問題・独立集合問題・クリーク問題
まず,頂点被覆問題,独立集合問題 と クリーク問題 の関係性について紹介します.
入力:無向グラフ
出力:
頂点部分集合 で,任意辺の
に対して
を満たすものを
の頂点被覆と呼ぶ
入力:無向グラフ
出力:
頂点部分集合 で,
のどの2頂点も隣接していないものを
の独立集合と呼ぶ
入力:無向グラフ
出力:
頂点部分集合 で,
のどの2頂点も隣接しているものを
のクリークと呼ぶ
これらの問題は無向グラフの頂点部分集合に対して定義されるもので,任意の無向グラフ に対して次が成り立ちます.
・ が
の頂点被覆
・ が
の独立集合
・ が
の補グラフ
のクリーク
ただし, の補グラフを
とします.
このことから,これらの中で少なくとも1つの問題がNP完全であることを示せば,残りの問題もNP完全であることが分かります(多項式時間帰着を上の通りに作る).これらの問題はNP完全性ということに関しては似ている問題に見えますが, をパラメータとしたパラメータ化問題では異なるクラスに属する問題となります(頂点被覆問題が FPTで,独立集合問題とクリーク問題がW[1]-完全; Parameterized complexity - Wikipedia).また,頂点被覆問題には2-近似多項式時間アルゴリズムが存在しますが,独立集合問題には P
NP という仮定の下で定数近似多項式時間アルゴリズムが存在しないことが示されています.(構造として一見似ているものも多方面から詳細に調べると違うということが分かるのは良いですね.)
頂点被覆問題のNP完全性の証明
頂点被覆問題がクラスNPに属することは明らかです.なぜらなば頂点部分集合を証拠としてそれが頂点被覆であることと,サイズが 以下であることが多項式時間で検証できるからです.
次に,3SAT問題 から頂点被覆問題への多項式時間帰着を示します.3SAT問題の入力を変数集合 と節集合
とします.3SAT問題
から頂点被覆問題の入力である無向グラフ
を次のように構成します.
・,
・
各 は次のように構成します.
・各変数 に対して,
・各節 に対して,
,
・各節 に含まれる変数をそれぞれ
と表したときに,
このとき,この変換は と
の多項式時間でできます.また,
とします.

次に,正当性を示します.すなわち,
3SAT が充足可能
のサイズ
以下の頂点被覆が存在
が成立つことを示します.
3SAT
は充足可能でその真理値割り当てを
とします.このとき,
の頂点部分集合
を各
に対して,
ならば
,
ならば
とします.これによって
は被覆されます.また,各節
に対して,
に含まれない頂点を優先的に任意に2つ選びます.これを,
とします.このとき,
とします.これによって,
と
は被覆されます.また,
は充足されているので
となり,したがって
は被覆されます.このとき,
ですべての辺が被覆されているので必要条件が成り立ちます.
のサイズ
以下の頂点被覆を
とします.ここで,
の任意の頂点被覆は
を被覆するために
から少なくとも1つの頂点を選ぶ必要があり,
を被覆するために少なくとも2つの頂点を選ぶ必要があるので,サイズは少なくとも
以上となります.したがって,
のサイズはちょうど
となります.
3SAT の真理値割り当て
を,
ならば
,
ならば
とします.
からはちょうど1つの頂点が
に含まれるので正しい真理値割り当てとなります.また,各節
に対して少なくとも1つの頂点が
に含まれます.なぜならば,
に含まれる
の頂点はちょうど2つで,もし
が全て
に含まれないとすると,
に被覆されない辺が存在してしまうからです.
参考文献
- Michael R. Garey and David S. Johnson: COMPUTERS AND INTRACTABILITY A Guide to the Theory of NP-Completeness. W. H. Freeman and Company, 1979, pp. 53--56.
証明が思いついたので良かった!! Garey と Johnson のガジェットがキレイだったので参照してます.