グラフの直径を見つける時間の複雑さ


27

グラフの直径を見つける時間の複雑さは何 ですか?G=(V,E)

  • O(|V|2)
  • O(|V|2+|V||E|)
  • O(|V|2|E|)
  • O(|V||E|2)

グラフの直径は、グラフ内のすべての頂点のペア間の最短パス距離のセットの最大値です。G

私はそれについて何をすべきか分かりません。このような問題を解決する方法について完全な分析が必要です。


4
少し詳しく説明してください。なぜこの問題に関心があるのですか?ヒント、完全な分析、または参照が必要ですか?最悪または平均的な時間に興味がありますか?された監督しますか?G
ラファエル

@Raphael:明らかにヒントは必要ありません。完全な分析が必要です。とにかく質問を編集しました。
ジギリ

1
@Gigiliあなたはすべての場合でを意味しますよね?それ以外の場合、すべてが最後の可能性(一般的なグラフでは等しい)に含まれるため、少なくとも1つの答えが正しいと仮定して、正しい答えになります。さらに懸念されるのは、サイクルのあるグラフには最長パスがないことです。「最長距離」とはどういう意味ですか?ΘO(|V|5)
ラファエル

@Gigili 4つの選択肢はどこから来たのですか?
ウリ

回答:


5

更新:

この解決策は正しくありません。

残念なことに、このソリューションはツリーに対してのみ正しい(そして簡単な)ものです!木の直径を見つけることは、これさえ必要としません。グラフの反例です(直径が4の場合、このを選択するとアルゴリズムは3を返します)。v

ここに画像の説明を入力してください


グラフが方向付けられている場合、これはかなり複雑です。ここでは、すべてのペアの最短パスにアルゴリズムを使用するよりも、高密度の場合の結果が高速であると主張する論文があります。

しかし、私の主なポイントは、グラフが有向でない場合であり、非負の幅で、私は何度か素敵なトリックを聞いた:

  1. 頂点v
  2. が最大になるようなを見つけるud(v,u)
  3. が最大になるようなを見つけるwd(u,w)
  4. 返しますd(u,w)

その複雑さは、2つの連続する幅優先検索¹と同じです。つまり、グラフが接続されている場合はです。O(|E|)

民間伝承のように見えたが、今のところ、私はまだ参照を得る、その修正を証明するのに苦労している。これらの目標のいずれかを達成したら更新します。とても簡単に思えるので、すぐに回答を投稿します。

¹グラフに重みが付けられている場合、ウィキペディアはように見えますが、についてのみ確信してい。O | E | log | V |O(|E|+|V|log|V|)O(|E|log|V|)

²グラフが接続されていない場合、が表示されますが、を追加して、接続された各コンポーネントから1つの要素を選択する必要があります。これが必要かどうかはわかりませんが、とにかく、この場合は直径が無限であると判断するかもしれません。O(|V|+|E|)O(α(|V|))


指定された時間でダイスクトラを動作させるには、通常の実装ではなくフィボナッチヒープを使用する必要があります。
-Suresh

8
これは強く間違った答えです。このアルゴリズムは民間伝承ですが、ツリーでは一般的なグラフではありません。PS:あなたの反論の例を見ることができますが、答えとしてマークされるのは良い答えではありません。

間違った解決策について2つの質問があります。1.これは、少なくとも正しい答えがなければならない範囲を与えますか?たとえば、メソッドが直径dを見つけた場合、正しい解はd2dの間にありますか?2.別のインダイレクションを追加し、インダイレクションによって検出されたすべてのノード(1つだけではない)を考慮するとどうなりますか ポストで与えられたカウンターの例は、真の周辺頂点が2番目の間接参照で見つかったノードの中にあるので、それで動作します。
マフ

32

私はあなたが意味すると仮定し、直径ので見られる最長の最短経路である。GG

直径を見つけるには、最初にすべてのペアの最短経路を見つけ、見つかった最大長を決定します。Floyd-Warshallアルゴリズムは時間でこれを行います。Johnsonのアルゴリズムは、時間を実現するために実装できます。Θ(|V|3)O(|V|2log|V|+|V||E|)

考慮すべき距離があるため、最悪の場合の実行時の下限を達成するのは難しいようです。関連する境界については、こちらをご覧ください。別のアプローチを使用し、(わずかに)高速なアルゴリズムを取得するこのペーパーに注意してください。O(|V|2)


2
これらの論文で報酬が支払われる場合は、Google Scholarをチェックしてください。
ラファエル

また、この例外は、diaを取得できる無向木では注目に値します。たった1つのdfsトラバーサルで。
アザム

15

代数グラフ理論的アプローチも検討できます。直径は最小整数 stで、行列は、すべてのエントリがゼロ以外のプロパティがあります。あなたは見つけることができますすることにより行列乗算の繰り返し。直径アルゴリズムは、時間を必要とし。ここで、は行列乗算の限界です。たとえば、Vassilevska WilliamsによるCoppersmith-Winogradアルゴリズムの一般化により、直径アルゴリズムは実行され。簡単な紹介については、こちらの Fan Chungの本の第3章をご覧ください。diam(G)tM=I+AMttO(logn)O(M(n)logn)M(n)O(n2.3727logn)

適切なグラフクラスに注意を向ければ、最適な時間でAPSP問題を解決できます。これらのクラスには、少なくとも間隔グラフ、円弧グラフ、順列グラフ、二部置換グラフ、強弦グラフ、弦二部グラフ、距離遺伝グラフ、および二重弦グラフが含まれます。たとえば、ドラガン、FF(2005)を参照してください制限付きグラフファミリのすべてのペアの最短パスの推定:統一されたアプローチ。Journal of Algorithms、57(1)、1-21およびその参考文献。O(n2)


2
このアルゴリズムは、重み付けされていない場合にのみ機能することに注意してください。
GMB

-2

仮定:
1.グラフは重みなし
2.グラフは有向

O(| V || E |)時間の複雑さ。

アルゴリズム:

ComputeDiameter(G(V,E)):
  if ( isCycle( G(v,E) ) ) then
     return INFINITY
  if ( not isConnected( G(V,E) )) then
     return INFINITY
  diameter = 0
  for each vertex u in G(V,E):
     temp = BFS(G,u)
     diameter = max( temp , diameter )
  return diameter

説明:
サイクルをチェックします。グラフにサイクルが含まれている場合、ループ内を移動し続けるので、無限の距離になります。接続されているかどうかを確認します。グラフが接続されていない場合、G1からG2の頂点vまでの頂点uを意味します。G1とG2は、接続されていない2つのサブグラフです。だから、再び無限の距離を持つことになります。BFSを使用して、特定のnode(u)からuから到達可能な他のすべてのnode(v)までの最大距離を計算します。次に、以前に計算された直径の最大値と、BFSによる結果の戻り値を取得します。そのため、現在の最大直径になります。

実行時間分析:

  1. DFSを使用するO(| E |)
  2. DFSを使用するO(| E |)
  3. BFSはO(| E |)時間で実行されます。
  4. 各頂点に対してBFS関数を呼び出す必要があるため、合計でO(| V || E |)時間かかります。

合計時間= O(| v || E |)+ O(| E |)+ O(| E |)
以来| V || E | > | E |
したがって、実行時間はO(| v || E |)になります。

BFS
DFS

注:これは、この問題のエレガントな解決策ではありません。


非循環連結グラフはツリーであり、その場合、問題はより簡単になります(直径が最長パスで指定されるため)。より高速なアルゴリズムが提供されているここここで対処されています。(1回の再帰トラバーサル、または2回のBFSで十分です。)
ラファエル

1
@Raphaelいいえ、非循環無向グラフはツリーです。DAGはDAGです。
デビッドリチャービー

@DavidRicherbyそうです。(ただし、技術的には、有向または無向のサイクルを除外しても答えはわかりません。)
ラファエル

@Raphael非環式グラフは確かに木ですか?グラフが非周期的であるということは、グラフが常にツリーであることを意味しません。ツリーはこの特殊なケースに過ぎません。これは単純なアルゴリズムであり、時間の複雑さはO(| V || E |)です。
-Sonus21

はい、確かです。(たぶん、あなたが考えている根ざし異なる味ある木、。)
ラファエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.