Joeの精進記録

旧:競プロ練習記録

On the complexity of the embedding problem for hypercube related graphs

www.sciencedirect.com

説 明 が ウ ン チ ー コ ン グ

writerやめろ

概要

「木 Tと、正整数 kが与えられたとき、 T k次元hypercubeに埋め込めるか」という判定問題はNP-Complete.

まあこれが成り立つので、 Tはより一般にグラフ Gに拡張できる。

証明がExact Cover by 3-sets (X3C)によるもので、これまたテクニカル

X3C

集合 Xの部分集合で、サイズ3のものをいくつか集めた集合 Cが与えられる(Cは集合の集合)。 Cの部分集合で、 Xのdisjointな分割になっているもの C'が存在するか(このとき C' Xをカバーしている)

これはNP-Completeらしい。 Xの要素数が3の倍数でない場合は明らかに不可能なので3の倍数個としてよい。

帰着

X3Cインスタンスが与えられたときに、木 T kをうまく構築して、「木が k次元hypercubeに埋め込める」ことと「X3Cインスタンスが解をもつ」ことを同値にしたい。

f:id:xuzijian629:20191225183835p:plain

まず、カバーすべき集合を Xとしたとき、集合 S = X \cup {z}を考える。また、 k = |S|とする。

 T k次元に埋め込めるかは、 Tのノードに、 Sの部分集合を割り当てたときに、

  1. 異なるノードについて異なる部分集合が割り当てられており
  2. 隣接するノードについて、部分集合のset differenceの大きさが1

であることと同値。

 Tとしては上図のように構成する。上図のノード数はみやすさのため少なくなっているが、 Xは実は x_1, \ldots, x_{3q}になっており、たとえば XX x_1x_1, \ldots, x_{3q}x_{3q}になっている。ポイントはノード数がたかだか 3q + 1 = |S|多項式のサイズなので、X3Cのインスタンスが与えられると多項式時間で構築できることである。

図で Rの説明がものすごく雑だけど、 R q要素で、それぞれ XXX型の部分集合が割り当てられている。 C_4ノードが XXX\backslash Cの型を持っているので、 XXX型は C_4 Rに限られる。もし、 Tのノードに割り当てられる集合がすべて異なるなら、 R \subset Cが成り立つ。

 R C_8の辺のつなぎ方も重要で、とりあえず R i番目のノードに割り当てる部分集合を x_{3i - 2}x_{3i-1}x_{3i}にしておく。これは本当はこうならないかも知れないけど、 x_kのネーミングはあとで適当にある順列によって差し替えることができるので、気にしなくていい。

とりあえずこれで構築は完了

X3Cインスタンスに解がある場合

 C' q要素からなるので、 R C_8を結ぶ辺は、 R j番目の要素とつながっている C_8の要素のラベルを、 C' j番目の集合にすればいい。このとき、明らかにノードのラベルは全ノードで異なっているので、 T k-cubeに埋め込むことができる。

X3Cインスタンスに解がない場合

つまりどう選んでも、 C'の各要素(集合)がdisjointにならない場合。  Rが要素数 q'tex: Cの役割を果たしているので、もし埋め込めるとしたら、そういう C'が見つかって矛盾。