並行して最大独立セットを見つける


8

グラフで、次のプロセスを実行します。G(V,E)

  • 最初、すべてのノードは色付けされていません。V
  • には色付けされていないノードがありますが、色付けされていない各ノードは次のことを行います。 V
    • ランダムな実数を選択し、それを近隣のすべてに送信します。
    • その数を近隣の数と比較します。自分の数が厳密に最小の場合、隣人は自分自身を赤く塗りつぶし、隣人に通知します。
    • 隣人が赤くなった場合、このノードは自分自身を黒く塗ります。

例えば:

  • グラフがabcdeというパスであるとします。
  • 最初のステップの数値が次のとおりであるとします:1-2-0-3-4。
  • ノードaとcは赤く塗られています。ノードbとdは黒く塗られています。
  • 2番目のステップでは、ノードeのみが未着色のままです。最小限に抑えられているため、赤く塗りつぶされます。

私の質問は:すべてのノードが色付けされる前にこのプロセスが実行する平均ステップ数は何ですか?

私の現在の計算では、推定が導かれますが、これは真実であるにはあまりにも良すぎるようです。ここに計算があります:O(1)

d個の隣接ノードを持つノードを考えます。vがその近傍の中で最小になる確率は、1 /d + 1 です。これが発生した場合、vとそのすべての近傍が色付けされます。したがって、各ステップで色分けされる頂点の予想数は、d + 1 /d + 1 = 1ノードあたり1です。したがって、各ステップで色分けされる頂点の予想される総数はO n なので、O 1vdv1/(d+1)v(d+1)/(d+1)=1 O(n)すべてのノードが色付けされる時間。O(1)

この分析が間違っている場合(おそらくそうです)、実際のステップ数はいくつですか?

編集:@JukkaSuomelaによって指摘されているように、上記のアルゴリズムはMetivier et al、2011によるものであり、これらの講義ノートで説明および分析されています。彼らは、実行時間がことを証明しますO(logn)

しかし、私はまだこの分析がタイトであると確信していません。チェックしたすべてのグラフで、アルゴリズムは予想時間内に完了したようです。O(1)

私の質問は今です:このアルゴリズムが実際に平均でステップを必要とする最悪の場合のグラフは何ですか?O(logn)


1
これは、Métivierらのセクション2で提示および分析されたアルゴリズムであることをご存じでしょうal(2011)
Jukka Suomela、2015

回答:


3

v1/(d+1)

問題は、あなたが合計しているイベントがばらばらではないということです。隣接していないが共通の隣接点を持つ2つの頂点を考えます。両方の頂点が隣人の間で最小になる場合、共通の隣人は2回着色されたものとしてカウントされます。

頂点で何が起こるかをより詳しく調べる必要があります。単一の頂点が色付けされる確率(したがって、インジケータバリアベレの期待値)を計算してみましょう。

dvd+1vv

v1dvvv 1d+1d1d

v1d+1(d1d)2

このように続けると、確率であることがわかりますv1d+1Σi=1d(d1d)i11d+1Σi=1d(d1d)id1e0.368

O(n)

O(1)dk(1e)knO(logn)

O(logn)


lognΘ(logn)

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