説 明 が ウ ン チ ー コ ン グ
writerやめろ
概要
「木と、正整数
が与えられたとき、
を
次元hypercubeに埋め込めるか」という判定問題はNP-Complete.
まあこれが成り立つので、はより一般にグラフ
に拡張できる。
証明がExact Cover by 3-sets (X3C)によるもので、これまたテクニカル
X3C
集合の部分集合で、サイズ3のものをいくつか集めた集合
が与えられる(Cは集合の集合)。
の部分集合で、
のdisjointな分割になっているもの
が存在するか(このとき
は
をカバーしている)
これはNP-Completeらしい。の要素数が3の倍数でない場合は明らかに不可能なので3の倍数個としてよい。
帰着
X3Cインスタンスが与えられたときに、木と
をうまく構築して、「木が
次元hypercubeに埋め込める」ことと「X3Cインスタンスが解をもつ」ことを同値にしたい。

まず、カバーすべき集合をとしたとき、集合
を考える。また、
とする。
木が
次元に埋め込めるかは、
のノードに、
の部分集合を割り当てたときに、
- 異なるノードについて異なる部分集合が割り当てられており
- 隣接するノードについて、部分集合のset differenceの大きさが1
であることと同値。
としては上図のように構成する。上図のノード数はみやすさのため少なくなっているが、
は実は
になっており、たとえば
は
になっている。ポイントはノード数がたかだか
の多項式のサイズなので、X3Cのインスタンスが与えられると多項式時間で構築できることである。
図での説明がものすごく雑だけど、
は
要素で、それぞれ
型の部分集合が割り当てられている。
ノードが
の型を持っているので、
型は
と
に限られる。もし、
のノードに割り当てられる集合がすべて異なるなら、
が成り立つ。
と
の辺のつなぎ方も重要で、とりあえず
の
番目のノードに割り当てる部分集合を
にしておく。これは本当はこうならないかも知れないけど、
のネーミングはあとで適当にある順列によって差し替えることができるので、気にしなくていい。
とりあえずこれで構築は完了
X3Cインスタンスに解がある場合
解は
要素からなるので、
と
を結ぶ辺は、
の
番目の要素とつながっている
の要素のラベルを、
の
番目の集合にすればいい。このとき、明らかにノードのラベルは全ノードで異なっているので、
は
-cubeに埋め込むことができる。
X3Cインスタンスに解がない場合
つまりどう選んでも、の各要素(集合)がdisjointにならない場合。
が要素数が
のtex: Cの役割を果たしているので、もし埋め込めるとしたら、そういう
が見つかって矛盾。