ペアワイズ問題を繰り返し解くよりも速くすべてのペア間のk最短経路を見つけることができますか?


9

グラフ内のすべてのペア間の最短パス(は10未満)を生成したいと思います。グラフは(実際には地下鉄の地図です):kk

  • 正に重み付け
  • 無向
  • 約100ノード

私の現在の計画は、各ペアに最短パスルーティングを適用することです。私は現在、より効率的な代替手段を探しています(おそらく動的プログラミングを使用)。k


3
正直なところ、100個の頂点の場合、45,000のペアワイズ問題をそれぞれ解決するよりも効率的なものが必要になることはほとんどありません。
David Richerby 16

回答:


6

まず、最短経路を計算する際の重要な違いは、経路を単純にする必要があるかどうかです。ノードに繰り返しノードが含まれていない場合、パスはシンプルと呼ばれます。たとえば、ループのあるパスは単純ではありません。リンクしたウィキペディアのページでは、記事は必ずしも単純なパスではないことに注意してください。単純なパスの場合は、必ずしも単純なパスではない場合よりも難しいようです。k

すべてのペア最短単純パス問題k

これはかなり若い研究分野のようです。AgarwalとRamachandranによる最近の論文は、ArXiv [1]にあります。前の作業セクションでは、問題の履歴についての洞察も得られます。

すべてのペア最短パスの問題k

ここでは、実際に、エプシュタインアルゴリズムを繰り返し適用することが最良の選択です[2]。問題のシングルソースバージョンのアルゴリズムを繰り返し適用することが最速のアプローチであるという一般的な観察は、1977年にEL Lawlerによってすでに行われています[3]。Eppsteinは、この副問題に対してこれまでに最速のアルゴリズムを提供します。

参考文献

[1] Agarwalさん、U.およびラマチャンドラン、V.検索シンプルな最短パスとサイクル。arXiv:1512.02157 [cs.DS] https://arxiv.org/pdf/1512.02157.pdfk

[2]エップスタイン、D。k個の最短経路を見つける。SIAM Journal on Computing 28、2(1999)、652–673。

[3] Lawler、ELグラフのk最短経路の計算についてのコメント。ACMの通信、20(8):603–605、1977。


ありがとうございました。私は地下鉄の地図で作業しているので、それらを単純なパスにする必要があります(私のソフトウェアが人々を行ったり来たりするようにガイドするのは意味がありません)。それで、私はヤンのアルゴリズムだけで行くと思います
フランクリンYu

興味深いのは、1万件の問題を次々に解決するよりも、明らかに10,000件の問題を迅速に解決できないことです。
gnasher729

ループを有する経路の考え方は、「最短経路」に含まれるループが除去と同等「パス」は、一見があるので直観&珍しいようで、これらを効率的に単純なパスなどから構成することができる場合は、1つも不思議...
vzn 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.