動的グラフ関連の問題に取り組む方法


15

私は一般的なstackoverflowでこの質問をし、ここに導かれました。

一般的な部分的または完全に動的なグラフの問題に対処する方法を説明できる人がいるとすばらしいでしょう。

例えば:

  • 各インスタンスでエッジが削除されたときに、インスタンスの無向加重グラフで2つの頂点間の最短パスを検索します。(u,v)n
  • 各インスタンスでエッジが削除される場合など、n個のインスタンスの無向グラフで接続されたコンポーネントの数を検索します。

最近、プログラミングコンテストでこのジャンルの問題に遭遇しました。Webを検索したところ、動的グラフに関する多くの研究論文が見つかりました[1,2]。私はそれらのいくつかを読みました、そして、私はまっすぐなものを見つけることができませんでした(クラスタリング、スパース化など)あいまいです。

これらの概念をよりよく理解するための指針を提供できる人がいることを本当に感謝しています。


  1. D. Eppstein、Z。Galil、GF Italianoによる動的グラフアルゴリズム(1999)
  2. G. Nannicini、L。Libertiによる動的グラフ上の最短経路(2008)

回答:


12

「動的」とは多種多様なことを意味する可能性があり、アルゴリズム/結果はモデルに依存するため、具体的なテクニックを提供することは困難です。以下は懸念事項の概要です。ここに、いくつかの異なる懸念とモデルの概要を示す論文があります(ピーターが別の回答で引用したものに関連)。


一般的な動的問題の主な問題は次のとおりです。

  • すべての場合に正確な解決策が必要ですか、それとも近似は可能ですか?
  • どのような変化が起こるか(確率分布など)について何か知っていますか?
  • アルゴリズムはどのように変更を学習しますか?

典型的な動的モデルは次のようなものです。

  1. グラフが与えられたら、いくつかのプロパティを計算します。初期グラフの解を計算することができます。

  2. 次に、1つの変更が通知されます:エッジが削除されます。限られたリソースを使用して、新しいグラフのプロパティを計算します。ef

  3. 2を回繰り返します。n

そして、3つの可能な修正があります:

  • 情報/時間/スペースの制限のために、最初は完全なソリューションを計算することはできません(その一例はオンラインアルゴリズムです

  • ステップ2では、アルゴリズムは変更を「通知」しませんが、データ構造または何かを照会することにより、グラフで変更を見つける必要があります。

  • 情報がローカルで検出され、計算/変更がローカルで行われる分散モデル(ピーターが別の回答で説明しているような)。

動的モデルは通常、リソース(時間/空間など)の制限のために興味深いものです。ステップ2で(ステップ1で行ったように)完全な答えを計算することが許可された場合、問題は簡単なものになります。静的グラフの問題が繰り返されるだけだからです。変更を計算するために必要なリソースの最小量に関心があります。


返信いただきありがとうございます。単純な部分的に動的なグラフの問題を解決する複雑さと方法を理解しようとしていました。
プラカシュ

返信いただきありがとうございます。論文を見ていきます。単純な部分的に動的なグラフの問題を解決する複雑さと方法を理解しようとしていました。たとえば、道路で接続され、距離によって方向付けられず重み付けされた一連の都市を考えます。さまざまな理由で各インスタンスで道路がブロックされている場合、n個のインスタンスで2つの都市間の最短経路を見つけます。nインスタンスでダイクストラを実行することは非現実的です。A*などの既存のアルゴリズムを適用して、これらの問題をより良い時間制限で解決する方法がありますか、または論文で説明されているアプローチが唯一の方法です。
プラカシュ

A *は、ダイクストラ+ヒューリスティックの一般化です。最悪の場合でもパフォーマンスは似ています。私にとって、あなたの問題に対する重要な質問は、「次のインスタンスをより高速にするインスタンス間でどのような情報を保存できますか?」です。たとえば、前の最短経路を保存すると、「失敗」したかどうかをすばやく見つけることができますが、次の最短経路を計算する明確な方法はありません。(前のインスタンスからk個の最短パスを保存しても、これはkに当てはまると思われます。)
ルーカスクック

(私の以前のコメントは、主に最悪の場合のソリューションについて話している。たぶん、あなたは平均的なケースを気にかけているだろうか?そして、良いA *タイプのソリューションを作るヒューリスティックがあるかもしれない。)
ルーカスクック

10

動的なグラフモデルは、分散コンピューティングで集中的に研究されてきました。分散アルゴリズムの場合、計算はラウンドに構造化され、グラフ(=ネットワーク)のトポロジーはラウンドからラウンドへといくらか変化する可能性があり、これは敵の制御下にあります。さらに、グラフのすべてのノードは、その(現在の!)隣人にメッセージを送信できるアルゴリズムを実行します。(このメッセージは、次のラウンドでの近傍アルゴリズムの入力です。)興味深いのは、ノードがグラフ全体を「見る」のではなく、そのローカルな近傍だけを見るということです。

これらの設定で考慮される問題は、たとえば、グラフ内のすべてのノードが最初にトークンを保持し、最終的にはすべてのノードがすべてのトークンを見るようにする情報拡散です。目標は、最小数のメッセージを使用して、最小数のラウンドでこれを達成するアルゴリズムを設計することです。最近の調査については、[2]を参照してください。

非分散設定については、あなたが言及した論文の拡張版である[1]をご覧ください。


[1] Aris Anagnostopoulos、Ravi Kumar、Mohammad Mahdian、Eli Upfal、Fabio Vandin:進化するグラフのアルゴリズム。ITCS 2012:149-160

[2] Fabian Kuhn、Rotem Oshman:動的ネットワーク:モデルとアルゴリズム。SIGACT News 42(1):82-96(2011)


これらのメッセージパッシングアルゴリズムには、コンバージェンス(不足)の問題がありませんか?
ラファエル

あなたが「収束」とはどういう意味か理解できません。グラフがすべてのラウンドで接続されたままである限り、特定のトークンtを検出したノードの数は少なくとも1増加します。
ピーター

私は、トポロジーの変化によって引き起こされる無限カウントの問題を考えていました。
ラファエル

@Raphael分散ダイナミクスでは、研究者は通常、特定の時間枠内でどのような特性が最悪のケースで保証されるかを調査しています。したがって、動的環境での手法には根本的な問題があるため、距離ベクトル/ベルマンフォードの「収束」は保証できません。無限にカウントする問題がない他の収束ルーティングプロトコルがあります。
ルーカスクック

3

@Peterの回答に基づいて作成します(これは非常に長いコメントなので、誰かがそれから利益を得るためのホッピングを回答として含めました)。

次の参照をお勧めします。

Arnaud Casteigts、Paola Flocchini、Walter Quattrociocchi、Nicola Santoro:時変グラフと動的ネットワーク。IJPEDS 27(5):387-408(2012)

この分類で本当に重要なのは、異なるクラス間に包含関係があることです。したがって、特定のクラスの問題を解決する場合、それが含まれる他のすべてのクラスで問題を解決します。

同じ著者は、言及されたグラフのいくつかで放送アルゴリズムを提示しました。時間に関連するさまざまなパフォーマンスメトリックを示しました(つまり、最短時間の定義が異なります)。ブロードキャストでは、各ノードが時間領域でネットワークのビューを構築するという考え方です。これは、隣人を繰り返し聞いて、隣人に情報を送信することによって行われます。周期性を仮定する場合、ノードは別のノードへの最短時間経路を知ることができます。ルーティングでこの情報を使用します。詳細については、次を参照してください。

Arnaud Casteigts、Paola Flocchini、Bernard Mans、Nicola Santoro:時変グラフの決定論的計算:非構造化モビリティの下での放送。IFIP TCS 2010:111-124

あなたはv{あなたはバツ1バツ1バツ2バツkv}あなたはvvあなたは

以前の著者による講義に参加しました。私の理解から、彼らは(彼らが従う定義に従って)動的グラフアルゴリズムに対処することはできないと主張している。まだ単純なクラスの場合です。実際、彼らは、ほとんどのモバイルコンピューティングアルゴリズムは、ネットワークの移行中にアルゴリズムが実行するには速すぎると仮定しているだけだと主張しています!(これはよく聞いたと思います)-または、単純に、エッジの出現の周期性を仮定します(遅延許容ネットワークなどを参照)

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