機能しないはずのMax-Cutアルゴリズム、理由は不明


21

OK、これは宿題の質問のように思えるかもしれませんが、ある意味ではそうです。学部のアルゴリズムクラスの宿題として、私は次の古典を与えました。

無向グラフ所与G=(V,E)、アルゴリズムを与えることを発見カット(S,S¯)ようにδ(S,S¯)|E|/2δ(S,S¯)カットを横切るエッジの数です。時間の複雑さはなければなりませんO(V+E)

何らかの理由で、次の解決策がたくさんありました。今では時間がかかりすぎているので、グレーディングの問題ではありませんが、興味がありました。それは正しいように見えませんが、反例に対する私の試みはすべて失敗しています。ここにあります:

  1. Sを設定S
  2. してみましょうvグラフの最大の次数頂点こと
  3. vSに追加S
  4. vに隣接するすべてのエッジを削除しますv
  5. もしδ(S,S¯)<|E|/2戻る

手順5のEは元のグラフを指していることに注意してください。また、ステップ4をスキップした場合、これは明らかに間違っていることに注意してください(たとえば、2つの孤立したエッジを持つ三角形の結合)。

さて、どんな単純な証明にも次の問題があります-新しい頂点vを追加するとき、実際に削除するのかもしれませんd v )の新しいエッジ|S|を追加しながら、カットからのエッジ(d v はエッジが削除されたグラフを指します)。問題は、これが私たちの原因に有害である場合、この頂点vの「使用」度はこれまでよりも高いため、以前に「選択されるべきだった」ということです。d(v)d(v)v

これはよく知られたアルゴリズムですか?簡単な反例はありますか?


2
頂点カバーの2近似に似ています。私が思う正しい欲張りアルゴリズムは、他の部分でより多くの隣接する頂点を選択し、そのような頂点がなくなるまで移動し、その時点で答えが少なくともであることを示すのは難しくありません。しかし、そのアルゴリズムの正確さは、最大次数だけでなく、カットの両側の頂点の隣接数の違いを見ているという事実に依存します。また、正しいアルゴリズムは、からだけではなく、両方の方向に頂点を移動ˉ SS|E|/2S¯S
カベ

3
@Kaveh OPはあなたが説明するアルゴリズムを知っていると思います(宿題として割り当てました)。彼の質問は、彼が説明するアルゴリズムが近似を達成するかどうかです。
サショニコロフ2013

2
@ MohammadAl-TurkistanyはNikolovのコメントを見る。
vb le

1
また、16/17近似はNP困難であり、1/2ではないことに注意してください。GWは、独創的な論文でSDPを使用して約0.878の近似値を示しています。
ヨナタン

回答:


13

私の以前の主張サイズのカットを考慮に入れていなかったN2/4は、グラフ中に既に存在します。次の構造は、O1で厳密に証明するためにmath.stackexchange.comで質問を作成しました)2c+6n2/4分数。O(1logc)

アルゴリズムは、いくつかの接続されていない、サイズが異なる完全なグラフの和集合でパフォーマンスが低下します。個の頂点上の完全なグラフをK nとして示します。上のアルゴリズムの動作を考えてみましょうK N:それは、繰り返し状態ではありません任意の頂点を追加してSS -順序は問題ではないので、そのようなすべての頂点が同一であると。アルゴリズムによってまだSに追加されていない頂点の数を設定する| ˉ S | = k、その瞬間のカットのサイズはk n k です。nKnKnSSS|S¯|=kk(nk)

我々はいくつかの切断された上でアルゴリズムを実行する場合、何が起こるかを考えるとのグラフをX I場合は0と1の間の定数K iは、にまだ要素の数であるSI番目の完全グラフは、アルゴリズムが繰り返し追加します最高のk iを持つ完全なグラフからSへの頂点。任意にタイを壊します。これは、の頂点のベース`ラウンド追加誘導するSを:アルゴリズムは、最高ですべての完全グラフから頂点を追加し、K = k個の私は次いで、すべての完全なグラフから、KKxinxikiSiSkiSk=ki k iは前のラウンドの後に更新されます)など。完全なグラフのラウンドで Sに頂点が追加されると、それ以降のすべてのラウンドで頂点が追加されます。ki=k1kiS

してみましょう、完全なグラフの数も。ましょう0 < X I10 I C - 1のためのものサイズモディファイI番目の完全グラフ。これらのサイズ修飾子を大きいものから小さいものに並べ、x 0 = 1に設定します。Sにまだ追加されていない正確にk個の要素を持つc グラフがある場合、そのときのカットのサイズはc 1 i = 0 k c0<xi10ic1ix0=1ckS。エッジの総数は | E | = c 1 i = 0 x i n x i n 1 i=0c1k(xink)=kni=0c1(xi)ck2|E|=i=0c1xin(xin1)2n22i=0c1xi2

なお、における二次関数であり、K、従って最大値を有します。したがって、いくつかの局所的な最大カットがあります。たとえば、c = 1の場合、最大カットはk = nにありますkni=0c1xick2kc=1サイズのN2k=n2。我々が選択しようとしているX1となるようxは1=1/2-ε第二の完全グラフを意味し、これに局所的に最大のカットのサイズ変更されないK=Nをn24x1x1=1/2ε。私たちは、新しいローカル最大でカット取得のk=3/8N-ε"と私たちが選ぶので、X2=3/8のn-ε" (と小さな定数)。現時点ではを無視し、選択できると仮定しますを確認する必要がありますが、が最終結果に影響することはありません十分大きい。k=n2k=3/8nεx2=3/8nε ε X 1 = 1 / 2 、X 1、N = Nε,ε,εεx1=1/2nx1n=n21n

カットの局所的な最大値を見つけたい。我々分化に得。等しくすると、が得られ、サイズカットが得られます。 k n c 1 i = 0x i2 c k 0 k = nkni=0c1(xi)ck2kni=0c1(xi)2ck0n2k=n2ci=0c1xin24c(i=0c1xi)2

してみましょう可能あれば、前の段落で決定さ。 -持つすべての完全なグラフがこの局所的最大カットのよりも小さいことを要求することにより、式が成立することを保証します。したがって、カットのサイズを大きくしません。これは、これらのカットがあり、アルゴリズムによって検出された他のすべてのカットよりも大きいことを意味します。 k c = i x i n < k i i i > i k i c k ikikc=ixin<kiii>ikicki

充填、我々は再発得る(プラスいくつかの小さな有する)。これを解くとます。@ Daniel Fisherによる導出については、math.stackexchange.comの質問を参照してください。これをなり、再帰に関する洞察を使用してサイズの削減が得られます。この中心二項係数の特性を使用して、x i = 1xin<kiεX0=1、XI= 2 Iをxi=12ci=0c1xiεx0=1 n2xi=(2ii)4in2n24c(i=0c1xi)2LIMC'C' 2 C 'n24c(2c(2cc)4c)2=n2c((2cc)4c)2limcc((2cc)4c)2=1πmath.stackexchange.comの私の質問も参照しください)。

エッジの数はおよそ。既知の特性によって我々は。提出すると、少なくとも漸近あるとしてに行きます無限大。1n22i=0c1xi2=n22i=0c1((2ii)4i)2 n214i(2ii)4i n2n22i=0c1(14i)2=n28i=0c11icn28logcc

したがって、は、が無限大になるにつれて漸近的にと等しくなり、アルゴリズムが任意の低い端数であるカットを返す 。8δ(S,S¯)|E| C| E|8πlogcc|E|


3
わずかな修正で、構築はます。を修正し、十分に大きいを選択しました。LET。 2つすべての頂点をエッジで接続します。さらに、 wpつの頂点ごとに接続します。エッジの総数はおよそです。アルゴリズムは、約エッジ(低次項まで)をカットするカットを見つけます。ε N V = { 1 ... N } 、{ 1 ... ε N } V ε 2ε N 2 / 2 + ε 2N 2 / 2 = ε 2 N 2 ε 2 N 2 / 4 ε1/4εNV={1,,N}{1,,εN}Vε2(εn)2/2+ε2(n2/2)=ε2n2ε2n2/4ε
ユーリー

すぐに最終結果を(詳細を含めて)含めるように回答を書き直しますが、今は少し混乱していると思います。
アレックス10ブリンク

1
合計について、各項はであるため、合計はに合計される調和級数であり、合計でを取得し。Θ1/I+1ΘログCΘnは2ログCn22i=0c1((2ii)4i)2Θ(1/(i+1))Θ(logc)Θ(n2logc)
ユヴァルフィルマス

12

しばらく考えて尋ねた後、Ami Pazの好意による反例があります:

ましょもよく、の和集合であるグラフであるのマッチングとの頂点(とされ、マッチングエッジ)。G K n n + 2 n / 2 + 1nGKnn+2n/2+1

このグラフでアルゴリズムはどのように実行されますか?任意の順序でクリーク部分から頂点を取得します。クリークから個の頂点を取得した後、カットのサイズはです。これはで最大であり、サイズカットを与えますが、グラフのエッジの数はです。K N - K 、K = N / 2 、N 2kk(nk)k=n/2 n2n24n22+1

規定されたアルゴリズムは、クリークから頂点を追加し続け、カットを横断するエッジの数を減らし、クリークから残るものが単一のエッジになるまで続けます。この時点では、超えるものは取得できません。n2+2


1
良い反例。
カヴェー

ただし、これは依然としてに非常に近くなります。アルゴリズムが悪化しない例を参照するとよいでしょう|E|/2
Sashoニコロフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.