この問題は、Vertex Coverからの削減によりNP困難です。
頂点被覆問題において、我々は、グラフ与えられると数、そして我々のタスクは、いくつかのサブセットがあるかどうかを決定することであるせいぜいのから頂点内のすべてのエッジように、入射します少なくとも1つの頂点。(同等に:最大個の頂点を削除することで、すべてのエッジを殺すことは可能ですか?)G=(V,E)rUrVEUGr
まず、を互いに素なサブセットに分割することは、各要素を可能なラベルの1つに割り当てることと同じです。削減の基本的な考え方は、各頂点にラベルを作成し、次の意味で、各エッジにその端点に対応する2つのラベルの1つだけを「許可」することです。ラベルは、同じラベルを割り当てることができる他のエッジに(本物の)制約を導入しませんが、対応しないラベルにエッジを割り当てると、他のエッジに同じラベルが割り当てられるのを防ぎます-もちろん、これは数値を押し上げる効果があります必要な個別のラベルの。AsAsSjvjV
頂点カバーのインスタンスから問題インスタンスを作成するには:(A,a,s)(G,r)
- を設定します 、及び要素の作成中の各エッジのためにおける。(これらのペアは整数ことができます。それらの間の全単射はそうです。)k|E|(i,j)AvivjE1,…,k
- セットにもしまたは。それ以外の場合は、を1に設定します。a(b,c),d|E|d=bd=ca(b,c),d
- 設定します。s=r
場合は頂点カバーのYES-インスタンスで、それはあなたの問題のちょうど-構築インスタンスもYES-インスタンスであることを確認するのは簡単です:ちょうどラベル選ぶ頂点に対応する任意の溶液中の、および各エッジは、対応する要素を、ラベルまたはいずれかが選択さ方に割り当てます(両方のラベルが選択された場合は任意に選択します)。このソリューションはサブセットを使用し、有効なは対応するものだけなので有効です(G,r)SjvjUvbvc∈E(b,c)∈ASbScsaij以上を防止する(非)効果があるラベル 同じラベルが割り当てられているエッジ。|E|
問題のYESインスタンスは、元のが頂点カバーのYESインスタンスであることを意味します。有効な解からは一般にエッジしないラベル割り当てる可能性があるため、これは少し複雑です。つまり、、つまり必ず、有効な解から有効な頂点カバーを「読み取り」ます。X=(A,a,s)(G,r)YX(i,j)Smm∉{i,j}UY
ただし、対応しないラベルを割り当てるとコストが高くなり、ソリューションの構造が大幅に制限されます。エッジにこのようなラベルが割り当てられると、で、事実その、それがなければならないことを保証するだけこのラベルを割り当てエッジ。だから、任意の溶液中の、このような非相応に標識エッジ含む、我々は代替ソリューションを構築することができ次のように:(i,j)Smm∉{i,j}a(i,j),m=1Y(i,j)↦SmY′
- の新しいラベルをまたはいずれかに任意に選択します。Sz(i,j)SiSj
- この新しいラベルに割り当てます。これが無効なソリューションをもたらす場合、それは正確に他の1つのエッジ、にラベルが割り当てられているためである必要があります。その場合は、を設定して、手順1に進みます。(i,j)(i′,j′)z∉{i′,j′}Sz(i,j)=(i′,j′)
上記のアルゴリズムは、次の2つの方法のいずれかで終了する必要があります。矛盾のない新しいラベルが見つかるか、頂点の完全なサイクルが見つかるかのいずれかです。前者の場合、セット有効な新しいソリューションが見つかりますが、後者の場合、セットの有効な新しいソリューションが見つかります。どちらの方法でも、対応するラベルに割り当てられた少なくとももう1つのエッジを持つ有効な新しいソリューションを構築しました。このプロセス全体を最大で繰り返した後時々、元の頂点カバー問題の解を読み取ることができる有効な解を作成します。Szs−1s|E|Y′′
この構成は明らかに多項式時間であるため、問題はNP困難であることがわかります。