から


8

定義。グラフと2つの頂点sおよびtが与えられた場合、k -shortest-paths問題は、G のstのk最短単純パスを見つけることです。G=(V,E)stkkstG

これらのパスの長さは必ずしも同じである必要はなく、頂点tは必ずk接続されていることに注意してください。この問題に対して線形時間(nおよびmの観点から)アルゴリズムがあるかどうか疑問に思っていました。stknm

円のランキングループレスパスアルゴリズムの新しい実装」など、私は文献でいくつかの論文を見てきましたが、時間の複雑さは本当に高いです。また、Epsteinによる他の論文「K最短パスを見つける」では、実行時間O n + m + k )の単純なパスではないk最短パスを見つけるアルゴリズムを示しています。O(Kn(m+nlogn))kO(n+m+k)

-simple-shortest-paths問題の線形時間アルゴリズムはありますか?k


@DWエプスタインのアルゴリズムは、必ずしも単純ではないパスを見つけます。OPは、最短の単純なパスを検出する、おそらく同じ実行時間内で、同様のアルゴリズムを必要としています。円のランキングアルゴリズムはそのために遅すぎます。k
Yuval Filmus 16

回答:


7

まず第一に、ここで当てはまる答えは、質問へのコメントでラファエルによってすでに与えられました:「私たちは線形時間で1つの単純な最短経路を見つける方法すら知らないので、私はそれを疑います。」以下では、したがって、私はあなたが現在の最先端技術で利用可能な最良のアルゴリズムについて知ることに興味があると仮定します。以下では、(私の知る限り)最良の最悪の場合の限界について説明しますが、特定のケースでは線形時間で実行される可能性のあるアルゴリズムについても説明します。

しかし、最先端の最新の開発について説明する前に、この特定の問題における単純なパスの重要性を強調したいと思いました。実際のところ、多くの人はこの要件の重要性を見過ごしており、一見しただけでは理解できない人もいます。

開始頂点から目標頂点までの最短経路を計算する場合、最適経路は必然的に単純です。つまり、どの頂点も繰り返されません。ただし、最適パスを計算する場合、2番目、3番目、...の最良パスは単純ではない可能性があります。それを証明するために、ハーシュバーガー、マクセル&スリ、2007年からわずかに変更された例をここに示します。k

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

stπ1:s,A,B,C,D,tπ2:s,A,B,C,D,C,D,tπ3:s,A,B,A,B,C,D,tπ2:s,F,tπ3:s,G,t

G(V,E)Vu,vE,u,vVuv

kO(|E|+|V|log|V|+k)K

O(k|V|(|E|+|V|log|V|))O(k(|E|+|V|log|V|))k

k

お役に立てれば、

参考文献

Kk

k

k

k

k

k

k


O(n+m)

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