最短経路のデータ構造


19

ましょうG有する重み付けされていない無向グラフである頂点とエッジ。を前処理し、サイズデータ構造を作成して、時間O(n)で「と間の距離」という形式のクエリに答えることは可能ですか?M G M P O L Y L O GN UがVnmGmpolylognあなたはv

この問題は未解決にするには基本的すぎるようです。


1
「解決できないほど基本的」に関する最後の発言への回答として:クエリに一定の時間内に回答する必要がある場合、実際によく研究されています。ただし、質問のポイントは、クエリにO(n)時間を許可することです(O(1)または単純なO(m)ではなく)。興味深い質問だと思いますが、その質問が根本的に重要だとは思いません。
伊藤剛

1
@TsuyoshiIto-質問が超一定だが準線形のクエリ時間を許可する場合、なぜその質問が「基本的な重要性」を失うのかわかりません。たとえば、距離クエリがO(n1ε)時間でε>0で答えられ、処理時間が最大でであるという制約で上記の問題を解決できると仮定しますO(n3ε)-これは最短経路を計算するためのサブキュービックアルゴリズムを提供しませんか?個人的にはこれは非常に興味深い質問だと思います。
ラキト

見る、私は一般的な方法かどうかがあるかわからないが、有界ツリー幅グラフで良い方法はあり有界ツリー幅グラフにおける最短経路のクエリを
サイード

また、m=Ω(n2)場合、(各ノードから始まる)最短パスツリーを作成し、On関連するルートによる)最短パスクエリに回答するか、同様の方法でデータを構築できますメモリサイズが小さい構造。
サイード

回答:


9

これは非常に興味深い質問です。高いレベルでは、余分なスペースをあまり使用せずに、最短パスクエリがグラフの密度に依存しないようにグラフを前処理できるかどうかを尋ねています-おもしろいのですが、未解決です。

おおよその距離に満足している場合、ここでは近似を取得する方法を示します。ましょうGは重み付き無向グラフであるN個のノードと、m個の縁。次の論文では、近似距離クエリの場合、m個のエッジを持つグラフのデータ構造の設計は、各ノードの次数がm / nで制限されているグラフほど難しくないことを示しています。2Gnmmm/n

R. Agarwal、PB Godfrey、S。Har-Peled、おおよその距離クエリとスパースグラフのコンパクトルーティング、INFOCOM 2011

したがって、m / n度の有界グラフであると仮定します。サンプルα = O m / n ノードはランダムに均一です。これらのランドマークノードを呼び出します。前処理段階で、各ランドマークノードからグラフ内の他の各ノードまでの距離を保存します。これにはO m スペースが必要です。各ノードuについて、最も近いランドマークノードu )を保存します。また、グラフをデータ構造内に、たとえば隣接リストとして保存します。Gm/nα=Om/nOmあなたはあなたは

vの間の距離を照会すると、両方のノードの周囲にボールを成長させます。ノードwのボールは、最も近いランドマークノードよりも厳密にwに近いノードのセット、たとえばw として定義されます。予想通り、各ボールのサイズはO n 2 / m であることが示されます。LET Γ U = B U N B U B UあなたはvwwwOn2/mΓあなたは=BあなたはNBあなたはノードのボールである U及び N B uが内のノードの近傍の集合であり、 B U Γ u )のサイズが O n であることを期待して示すことができます。BあなたはあなたはNBあなたはBあなたはΓあなたはOn

クエリに答える:もし、戻りのx Γ U Γ V { dはU X + D V X }。それ以外の場合はD U U D V VΓあなたはΓvminxΓ(u)Γ(v){d(u,x)+d(v,x)}、戻り D U U + D U V 。そうでなければ d v v + d v u )を返します。これが 2近似であることを示すのは簡単です。d(u,(u))d(v,(v))d(u,(u))+d((u),v)d(v,(v))+d((v),u)2

クエリ時間に関しては、m / n度の有界グラフの場合、ボールの成長には時間かかることに注意してください。それぞれのボールが与えられた場合のΓ u およびΓ v )の構築には、O n 時間かかります(近隣はデータ構造内に格納されるため)。そしてかどうかをチェックΓ U Γ V )、空であるか否かをもとりO N 時間。O(n)m/nΓあなたはΓvOnΓあなたはΓvOn

上記の境界は予想されています。構造のランダム化を解除するのは簡単だと思います。残念ながら、この手法では超える近似を得ることができないようです。その非常に興味深い質問ですが....2


上記の手法は、入力グラフが重み付けされていないという事実を活用しません。その事実を活用することでできる面白いことがあるかもしれませんが、正確な距離を取得する方法は考えられません。たとえば、クエリ時間をに短縮し、2 d + 1で区切られた距離を取得することができます。ここで、duvの間の正確な距離です。O(n2/m)2d+1duv
ラキト

なぜそれが2近似なのか理解できないことに気付きました。同じ状況でのThorup-Zwickは、約3を与えます。
イリャラズ

@ilyaraz:Thorup-ズウィック方式はチェックする必要はないことに注意してください(したがって、ほぼ一定の時間で回答クエリ)。ストレッチ2の証明については、上記の論文を参照してください。Γ(u)Γ(v)2
ラキト

4

必要なものは「距離神託」と呼ばれます。残念ながら、私は距離神託にあまり詳しくないので、ThorupとZwickによる独創的な論文のみを参照できます。

ミケルソープとウリツウィック。おおよその距離オラクル。STOC '01、2001。

以下は要約からの抜粋です。

してみましょうと無向重み付きグラフとします| V | = nおよび| E | = M。してみましょうkは整数です。我々はことを示すG = V Eはで前処理することができるO k個のM nは1 / Kサイズのデータ構造の構築時間を予想O K N 1 + 1 / KをG=(V,E)|V|=n|E|=mkG=(V,E)O(kmn1/k)、後続の距離クエリにほぼ O k 時間で応答できるようにします。返されるおおよその距離は最大で 2 k - 1です。つまり、推定距離を実際の距離で割った商は 1〜2 k - 1の間にあります。[...]アルゴリズムのスペース要件は、本質的に最適です[...]。O(kn1+1/k)O(k)2k12k1

結果によると、あなたが要求することは基本的に重み付きグラフでも実行可能です:選択すると、予想時間O m n で得られるサイズO n 2)の距離オラクルが得られ、最短経路クエリに1で答えることができますO 1 時間でストレッチ!k=1O(n2)O(mn)1O(1)

遠隔神託は非常によく研究されている分野なので、あなたは私が信じていることをさらに掘り下げることができるでしょう。


2
ジャーナル版:JACM 2005
伊藤剛

3
スペースを使用すると、ルックアップテーブルを単純に格納できます。したがって、この論文(私が知っていた)はここでは無関係です。O(n2)
イリヤラス

1
けっこうだ。最も近いあなたは、私の知る限りでは、平均度グラフのある要求ものの結果とストレッチ2パス与えO N 3 / 2内の空間OがΘ(logn)O(n3/2)クエリ時間。(R. Agarwal、P。Godfrey、およびS. Har-Peled、「スパースグラフにおける近似距離クエリとコンパクトルーティング」、O(n
INFOCOM2011

メトリクスのBourgainの埋め込みを用いて、一つの空間を使用してOracleを考え出すことができるO N ログ2 nで、クエリ時間O ログ2 Nをと乗法誤差O ログN 1O(nlog2n)O(log2n)O(logn)
イリヤラス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.