この論文のエップシュタインのアルゴリズムによるパスグラフ仕組みと、対応するヒープ構造してからへの最短パスを再構築する方法を理解しようとしています。
これまでのところ:
は、最短パスの一部ではないグラフ頂点を残すすべてのエッジが含まれます。最短経路上のエッジの代わりにこのエッジを使用すると、と呼ばれる「時間の無駄」によってヒープ順に並べられます。ダイクストラを適用することにより、からすべての頂点への最短経路を見つけます。
Iは、エッジの長さ+(頭頂点(有向枝が指している場合)の値を取ることによって、これを計算することができる- 。有向エッジが開始されるテール頂点()の値を、これがある場合、それ場合、最短経路上にありません、それは最短パス上にあります。
今は2分ヒープ構築のエッジのセットをheapifyingによって、それらに従って任意用ルート、は子(=サブツリー)が1つしかありません。
構築するために IインサートO U T R O O T (V )でH T(N E X T T(V ))端子頂点から始まるT。挿入中に頂点が何らかの方法でタッチされるたびに、*のマークが付けられます。
今は構築することができるの残りの部分を挿入することによって、H O U T(W )でH T(V )。内のすべての頂点H Gは、(V )のいずれか含ま2から子供H T(V )と1からH O U T(W )又は0第から2秒〜を3ヒープです。
Iを構築することができるDAGと呼ばれるD (G )ごとに頂点を含有*から-marked頂点H T(V )と各非ルート頂点に対するからH O U T(V )。
根におけるD (Gは)と呼ばれ、H (V )、それらは、それらがに応じに属する頂点に接続されているO U T (V )「マッピング」によって。
ここまでは順調ですね。
論文では、ルートr = r (s )を挿入し、これをδ (h (s ))を持つ初期エッジでh (s )に接続することにより、構築できると述べています。D (G )の頂点はP (G )と同じですが、重み付けされていません。エッジには長さがあります。各有向辺の(U 、V )∈ D (G )対応するエッジによって作成され、重み付けされδ (V )- δ (U )。それらはヒープエッジと呼ばれます。各頂点のためのV ∈ P (G )の頂点の対結ぶ最短経路ではないエッジを表し、UおよびWは、「クロスエッジは」から作成されたVにH (W )におけるP (G )の長さを有しますδ (h (w。P (G )のすべての頂点には、最大 4つの出て行く程度しかありません。
rから始まる P (G )のパスは、 G のs - t-パス間の 1対1の長さの対応であると想定されています。
最後に、4ヒープ注文した新しいヒープが構築されます。各頂点は、rをルートとするP (G )のパスに対応します。頂点の親のエッジは1つ少なくなります。頂点の重みは、対応するパスの長さです。
最短パスを見つけるには、BFS to P (G )を使用し、H (G )を使用して検索結果をパスに「変換」します。
残念ながら、を「読み取り」、それからH (G )を「翻訳」してk個の最短パスを受け取る方法を理解できません。