Design-and-analysis-of-algorithms-multistage-graph

提供:Dev Guides
移動先:案内検索

DAA-多段グラフ

多段グラフ* G =(V、E)は、頂点が *kk> 1 )個の互いに素なサブセットに分割されている有向グラフです S = \ {s〜1〜、s〜2〜 、…、s〜k〜} _ エッジ(u、v)がEにある場合、パーティション内の一部のサブセットに対して_uЄs〜i〜_および_v s s〜1 + 1〜 * _ s〜1〜' | = | ' s〜k〜_ * | = 1。

頂点 sЄs〜1〜source と呼ばれ、頂点 tЄs〜k〜sink と呼ばれます。

*_G_* は通常、重み付きグラフであると想定されます。 このグラフでは、エッジのコスト_(i、j)_は_c(i、j)_で表されます。 したがって、ソース *_s_* からシンク *_t_* へのパスのコストは、このパスの各エッジのコストの合計です。

多段グラフの問題は、ソース s からシンク t への最小コストのパスを見つけることです。

多段グラフの概念を理解するには、次の例を検討してください。

多段グラフ

式に従って、次の手順を使用してコスト*(i、j)*を計算する必要があります

ステップ-1:コスト(K-2、j)

このステップでは、3つのノード(ノード4、5。 6) j として選択されます。 したがって、このステップで最小コストを選択する3つのオプションがあります。

Cost(3、4)= min \ {c(4、7)+ Cost(7、9)、c(4、8)+ Cost(8、9)} = 7

Cost(3、5)= min \ {c(5、7)+ Cost(7、9)、c(5、8)+ Cost(8、9)} = 5

Cost(3、6)= min \ {c(6、7)+ Cost(7、9)、c(6、8)+ Cost(8、9)} = 5

ステップ-2:コスト(K-3、j)

ステージk-3 = 2では2と3の2つのノードがあるため、2つのノードがjとして選択されます。 したがって、値i = 2およびj = 2および3です。

_Cost(2、2)= min \ {c(2、4)+ Cost(4、8)+ Cost(8、9)、c(2、6)+ _

Cost(6、8)+ Cost(8、9)} = 8

Cost(2、3)= \ {c(3、4)+ Cost(4、8)+ Cost(8、9)、c(3、5)+ Cost(5、8)+ Cost(8、9) 、c(3、6)+コスト(6、8)+コスト(8、9)} = 10

ステップ-3:コスト(K-4、j)

Cost(1、1)= \ {c(1、2)+ Cost(2、6)+ Cost(6、8)+ Cost(8、9)、c(1、3)+ Cost(3、5) +コスト(5、8)+コスト(8、9))} = 12

c(1、3)+コスト(3、6)+コスト(6、8 +コスト(8、9))} = 13

したがって、最小コストのパスは 1→3→5→8→9 です。