グラフ理論の問題
頂点の集合を とする有向グラフ がある。辺と重みは次の 5 本である。
ここで は から へ向かう辺の重みを表す。ベルマン・フォード法を用いて、始点 から頂点 への最短距離 を求め、組 の形で答えよ。
この問題で使うもの
- 負の重みを含む最短路(ベルマン・フォード法)(説明と入口の問題)
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
負の重みの辺があるので、ベルマン・フォード法(すべての辺の緩和を 回くり返す方法)を使う。
ヒント 2
、ほかは から始め、各辺 で を行う。頂点は 4 個なので 3 回くり返せば十分。
ヒント 3
1 回目に の順で緩和すると 。続けて辺 を緩和すると となる。残りの辺 も同様に計算する。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
初期化 とする。
辺を の順に調べ、各辺 について緩和
を行う。これを 回くり返す。
1 回目
- :
- :
- :
- :
- :
この時点で 。
2 回目
- :
- :
- :
- :
- :
どの値も変わらない。3 回目も同じ計算になり、値は変わらない。
負の閉路の判定 回の後にもう一度すべての辺を調べても更新が起きないので、 から到達できる負の閉路はない。したがって得られた値が最短距離である。
実際、最短路は (距離 )、()、()である。なお、負の重みがあるためダイクストラ法では を距離 で確定してしまい正しく求められないが、ベルマン・フォード法では正しく求まる。
よって 。
別解
始点 から各頂点への最短距離をベルマン・フォード法で求める。初期値は 、。
1回目の緩和(辺の順は ):
- :
- :
- : より
- : より
- : より
2回目の緩和ではどの値も更新されないので、収束している。負の閉路もない(グラフは非巡回)。
検算: の道は のみで長さ 4。 の道は (2)と ()なので最短は 1。 の道は (9)、(5)、()なので最短は 4。
よって 。