グラフ3の色分け可能性は自己還元可能


8

私は、Graph 3-Coloralibity問題の自己還元性に興味があります。

グラフ3-Coloralibity問題の定義。

無向グラフが与えられた場合、隣接するノードが同じ色にならないようにノードを赤、緑、青に着色する方法はありますか?G

自己還元可能性の定義。

オラクルチューリングマシンTMが存在し、L = L(T ^ L)であり、長さnの任意の入力x に対してT ^ L(x)がオラクルに最大nの単語の単語を問い合わせる場合、言語は自己還元可能です。-1T L = L T Lx n T Lx n 1LTL=L(TL)xnTL(x)n1

グラフ3の色分け可能性が自己還元可能であることを非常に厳密かつ正式な方法で示したいと思います。

SATの自己還元性の証明を例として使用できます(SATの自己還元性)。

私の意見では、グラフ3色の自己還元性の証明の一般的な考え方は、いくつかの点でSAT自己還元性の証明とは異なります。

  • SATにはリテラルごとに2つの選択肢(trueまたはfalse)があり、Graph 3-colorabilityには3つの選択肢(つまり、赤、緑、青)があります。
  • SATリテラルの選択は相互に独立しており、グラフ3の色の選択可能性は厳密に依存します。隣接ノードは異なる色でなければなりません。このプロパティは、すべての色の反復を少なくするのに役立つ可能性があります。

証明の一般的な考え方

頂点色を示します。これは、次のいずれかの値(赤、緑、青)を取ることができます。任意の頂点色を付けて、与えられたグラフからグラフを定義し、を「赤」に割り当て、色付きの頂点を持つグラフをオラクルの入力に配置します。oracleが1と答えた場合、つまり変更されたグラフがまだ3 色可能である場合、現在の割り当てを保存し、新しい頂点を開始します。異なる頂点任意に選択して、色頂点 v i G G v 0 c v 0 G v 0 v 1 v 1cviviGGv0cv0Gv0v1v1隣接する頂点の色に応じて。oracleが0と答えた場合、つまり、前の割り当てで3つの色分けができなかった場合は、3つの色のセットから異なる色を選択しますが、隣接する頂点の色に従っています。

以前の証明は数学的に頑強ではなく、問題はそれをどのように改善し、より正式で数学的に厳密にするかです。新しい頂点に既に色付けされた頂点のエッジがない場合と、新しい頂点が既に色付けされた頂点に隣接している場合を区別する必要があるようです。

さらに、グラフ3の色分け可能性が下方自己還元可能であることを証明したいと思います。

下方自己還元可能な言語の定義。

言語は、最短のクエリの結果を使用してかどうかを多項式時間で決定できる場合、下方自己還元可能であると言います。のx AAxA

アイデアはシンプルで直感的であるように見えます。任意の頂点のカラーリングから開始し、各反復でカラー頂点を1つ追加し、グラフがまだ3色であるかどうか、オラクルによってチェックします。

しかし、証明を厳密に書く方法と、グラフの適切なエンコーディングを見つける方法がより重要です。

要するに、私はグラフ3の色分け可能性が自己縮小可能であり、厳密かつ形式的に自己縮小可能であることを示したいと思います。

ご意見をお聞かせください。

更新:

下方自己還元性

下方自己還元性は決定問題に適用され、オラクルはより短い入力で同じ意思決定問題に答えます。下方自己還元のプロセスの最後に、適切な色割り当てが必要です。

すべての3- 頂点が4つ以上ある色付け可能なグラフは、同じ色の2つの頂点があります。明らかに、3つの色と4つ以上の頂点があるため、隣接していないいくつかの頂点が同じ色を持っている可能性があります。結果として同じ色でとをマージした場合、グラフが3-着色可能であるという理由だけで、グラフが3-着色可能であるという理由だけで、とに隣接するすべての頂点の正しい割り当てが存在します。と同じ色なので、マージするxはY 、X 、Y 、X 、Y 、X Y 、X Y xはY Gは、xはY G ' G ' G 'Gx,yxyxyx,yx,y頂点の色を変更する必要はありません。すでに正しく色付けされた頂点の間にエッジを追加するだけです(私はそれが最良の説明ではないことを知っています。誰かがそれをよりよく説明できれば感謝します)。すべての反復で、グラフ隣接しない2つの頂点を取得し、とをマージして、oracleへの短い入力であるグラフを取得します。Oracleは、3色かどうかを答えます。今の問題は、設定する前にされた神託の入力に私はのマージされた頂点とテスト着色色べきで、それは3・彩色変更色ではないですが、それを正しく実装する方法を、私はそれのために右のエンコーディングが必要な場合は、。x,yGxyGGG

自己還元可能性

最初に、与えられたグラフが3色分け可能かどうかを確認する必要があるため、oracleの入力に設定します。oracleが3色分け可能かどうかを答え、yesの場合は処理を開始します。3つの色分け可能なグラフでは、隣接していない2つの頂点が同じ色になることがあります。反復で実行する必要がある自己還元性のプロセス。与えられたグラフ小さなサブグラフから始め、反復ごとにから頂点をもう1つ追加できると思います。並列では、すでに色付けされた頂点の割り当てを維持する必要があります。残念ながら、まだ完全にはわかりません。ヘルプとヒントをいただければ幸いです。G ' G G G 'GGGGG


単なるメモ:自己還元では、決定問題の「ベア」バージョンを使用する必要があると思います。決定問題の入力はグラフであり、色付きのノードを持つグラフではありません。したがって、元のグラフを変更して、一部のノードの強制カラーリングをシミュレートする必要があります(インスタンスを短く保つようにしてください)。SATでは、変数の値を設定して句を単純化するだけなので、これは簡単です。
Vor

自己還元性と下方自己還元性の違いは何ですか?
Yuval Filmus、2012年

@ YuvalFilmus、はそれ自体への Cook-reductionが存在する場合、下方に自己還元可能です。これにより、還元の入力よりも短いクエリが作成されます(入力で還元によりクエリが作成され、次に)S x q | q | < | x |SSxq|q|<|x|
com

これに対して、セットは自己縮小可能です...?
Yuval Filmus

関係の探索問題は、決定問題に還元できる場合、自己還元可能と呼ばれます。S RRSR
com

回答:


6

Vorが彼のコメントで述べているように、3-colorabilityは色の部分的な割り当てを受け入れないため、削減は機能しません。問題はさらに深くなります。単一の頂点の色を設定して、グラフが3 色であるかどうかを判断することはできないためです。実際、グラフは、頂点が3色である場合に限り、3色が可能です。選択した任意の割り当てられた色。c v cvcv,c

ここでは、運動を解決する方法のヒント、パート2を示します。3つ以上の頂点でグラフを3 色表示すると 2つの頂点が同じ色になります(なぜですか?)。とをマージしても、結果のグラフは3色で表示されます(なぜですか)。このアイデアを使用して、3色対応の下方自己縮小アルゴリズムを構築してみてください。x y x yGx,yxy

編集:そして、これは、演習を解決する方法のヒント、最初の部分です。接続されていない2つの頂点考えます。同じ色になるような配色がある場合、は3 色(なぜ?)であり、色から色を抽出できます(方法?)。このプロセスはいつ停止しますか?G x y G G x yx,yGxyGGxy


1
オラクルの回を呼び出す削減を見つけた場合の追加ポイント。O(1)
Yuval Filmus、2012年

ヒントをありがとうございました。部分的なカラーリングの代わりに、補助グラフを使用して、それに応じて拡張できます。3つ以上の頂点を持つグラフは、同じ色の2つの頂点があります。これは、オラクルが3色であると答えたためです(ただし、頂点は3つ以上です)。したがって、同じ色の頂点があるはずです。しかし、同じ色の2つの頂点をマージしたときにグラフが3色であることの理由がわかりません。一方、既に色付けされた頂点の間にエッジを追加する必要があるのはなぜですか。GGGx,y
com

通話回数に応じて。一般に、隣接していないすべての頂点に同じ色を割り当てることができるため、この場合、すべての割り当てについてオラクルに尋ねる必要はありません(一方、3つの色があり、適切な割り当てを行うことが重要です。上の一見正しい割り当て、上の偽になるかもしれ)。GG
com

グラフc x = c y )の 3色のcがあるとします。次に、xyをマージして得られたグラフG x yを考えます。G x yの 3色を見つけることができますか?逆はどうですか?Gcc(x)=c(y)GxyxyGxy
Yuval Filmus

自己還元性と下方自己還元性の違いを理解したので、私のヒントは後者についてのみ意味があることに気づきました。前者に別のヒントを追加しました。おそらくそれは役立つでしょう。
Yuval Filmus

0

たぶんこんな感じ。2つの接続された頂点l1とl2を追加できます。まず、それらを任意の頂点v *に接続します。この動作は、最後に、v *を含むいくつかの色の頂点をロックすることを意味することに注意してください。

次に、3色の決定バージョンを実行します。決定アルゴリズムが受け入れる場合は、この頂点をs_1に追加します。すべての頂点でこの手順を繰り返します(l1とl2を別の頂点に接続します)。最後に、同じ色(赤で示される)のすべての頂点が見つかり、s_1で示される赤の色の頂点が見つかります。

問題がある場合は指摘してください。🤥

次に、上記と同様に、2つの接続された頂点(l3 l4)を追加します。最初に、それらをs_1以外の頂点に接続し、決定アルゴリズムを実行します。次に別の... ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.