2
Eppsteinのアルゴリズムを使用してk個の最短パスを見つける
この論文のエップシュタインのアルゴリズムによるパスグラフ仕組みと、対応するヒープ構造してからへの最短パスを再構築する方法を理解しようとしています。P(G)P(G)P(G)kkkssstttH(G)H(G)H(G) これまでのところ: out(v)out(v)out(v)は、最短パスの一部ではないグラフ頂点を残すすべてのエッジが含まれます。最短経路上のエッジの代わりにこのエッジを使用すると、と呼ばれる「時間の無駄」によってヒープ順に並べられます。ダイクストラを適用することにより、からすべての頂点への最短経路を見つけます。vvvGGGGGGδ(e)δ(e)\delta(e)ttt Iは、エッジの長さ+(頭頂点(有向枝が指している場合)の値を取ることによって、これを計算することができる- 。有向エッジが開始されるテール頂点()の値を、これがある場合、それ場合、最短経路上にありません>0>0> 0=0=0= 0、それは最短パス上にあります。 今は2分ヒープ構築Hout(v)Hout(v)H_{out}(v)のエッジのセットをheapifyingによってout(v)out(v)out(v)、それらに従ってδ(e)δ(e)\delta(e)任意用v∈Vv∈Vv \in Vルート、outroot(v)outroot(v)outroot(v)は子(=サブツリー)が1つしかありません。 構築するために IインサートO U T R O O T (V )でH T(N E X T T(V ))端子頂点から始まるT。挿入中に頂点が何らかの方法でタッチされるたびに、*のマークが付けられます。HT(v)HT(v)H_T(v)outroot(v)outroot(v)outroot(v)HT(nextT(v))HT(nextT(v))H_T(next_T(v))ttt∗∗* 今は構築することができるの残りの部分を挿入することによって、H O U T(W )でH T(V )。内のすべての頂点H Gは、(V )のいずれか含ま2から子供H T(V )と1からH O U T(W )又は0第から2秒〜を3ヒープです。HG(v)HG(v)H_G(v)Hout(w)Hout(w)H_{out}(w)HT(v)HT(v)H_T(v)HG(v)HG(v)H_G(v)222HT(v )HT(v)H_T(v)111HO U T(w )Hout(w)H_{out}(w)000222 Iを構築することができるDAGと呼ばれるD (G )ごとに頂点を含有*から-marked頂点H T(V )と各非ルート頂点に対するからH …