二部グラフの色変更


8

二部グラフが与えられ、すべての頂点が赤または青のいずれかに色付けされている場合、次の操作を使用して青の頂点の数を最小限に抑えようとしています。G=(A,B,E)

  1. 頂点を選択vaA
  2. 色フリップ、という意味とのすべての隣人色が変わります。N[va]vava

青い頂点の数を最小にする色変更セットを選択する多項式時間アルゴリズムはありますか?必要な再着色の数は関係ありません。XA

反転の順序は重要ではなく、すべての頂点について、反転するかしないかを確認します。色は、2を法として増分される数値と考えることができます。これにより、簡単なアルゴリズムが生成されます。AO(2|A|n)

回答:


6

問題はNP完全であるため、多項式時間アルゴリズムを受け入れる可能性は低いです。以下は、問題のNP完全性の証明であり、1-in-3-SATからの減少で示されています。

ましょう我々は3-CNF-SATの式が与えられる1-IN-3-SATのインスタンスでは、各句は、正確に一つのリテラルによって満たされる満たす割り当てを見つけることを尋ねました。LET V φはの集合であるn個の変数、及びC φはの集合であるM個の句。ϕV(ϕ)nC(ϕ)m

インスタンスを、b = n + m(許容される青い頂点の数)のバジェットで構成します。G=(A,B,E)b=n+m

各変数のため、コンストラクト2つの赤色の頂点は、V X及び V ¯ XにおけるAと共にB + 1つのにおける青頂点Bそれらの両方に隣接します。この力のちょうど1 V のxまたはV ¯ Xに反転します。また、n個のフリップされた「可変頂点」が作成されるため、予算の最初の部分が使用されます。xV(ϕ)vxvx¯Ab+1Bvxvx¯n

備考:にのみ頂点である A{vx,vx¯xV(ϕ)}A

各句のために、言う、我々が作成B + 1つの青色頂点三個の余分な赤の頂点V のx CV ¯ YCVのZ Cの全てのBを。ましょうVのxはV ¯ YV zの全てに完全に隣接するB + 1青色頂点と接続V xはのV Xc=xy¯zb+1vxc,vy¯c,vzcBvx,vy¯,vzb+1vx VのY V ¯ YC、および VのZのV Z Cvxcvyvy¯cvzvzc

削減ガジェット

これで、各句ガジェットには個の青い頂点があるため、その句の1つまたは 3つのリテラルが反転されていることがわかります 。条項の1つで3つが反転したと仮定します。ただし、少なくとも予算n + m + 2を使用します。b+1n+m+2

仮定 1型3の割り当てとイエスのインスタンスであるα V φ { }αに対応するすべての頂点を反転します。すべての句は1つの変数で満たされるため、各句には1つの青い頂点があり、変数ごとに1つだけが青いので、n + m = bの青い頂点があります。ϕα:V(ϕ){,}αn+m=b


第三の段落において、頂点は、それぞれのために追加に入るBxXB
ルーク・マティソン、2015

+1。私は素朴な質問があります:青い頂点の各グループに6つのドットが含まれているのはなぜですか(5 = 3 + 1 + 1ではなく)?
hengxin 2015

1
@hengxin「十分な」青い頂点を描きたかっただけです。少なくとも個の頂点がある限り、すべてが機能しますが、そうです。b+1
–PålGD 2015

3

PålGDは、問題はNP困難であることを説明しているため、次のステップは、問題に適したアルゴリズムを見つけることです。

MyxMxy

nnvmvn×nynxMvy。このようなベクトルは、グラフ内の青い頂点の数を最小限に抑える一連のフリップ操作にすぐに対応します。

x


これは、線形システムmod 2を解決しようとしているときにこれに遭遇したので、実際にはかなりおかしいです。問題が最小重みコードワードと呼ばれていることに気付きませんでした。ありがとうございました!
デービス吉田
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.