ダイクストラ法
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ダイクストラ法は、エドガー・ダイクストラによって考案された、グラフ理論における最短経路問題を解くためのアルゴリズム。
重み付きグラフにおいて、始点sから他の点への最短経路を求めたい。
まず、
- S: = {s}
- p(s): = 0
とする。さらに、各に対して、もし辺siが存在すれば
- p(i): = wsi
- q(i): = s
とする。 ただしここでwijは辺ijのコストとし、辺ijが存在しない場合は+∞とする。Vは頂点集合である。 辺siが存在しない場合は、とする。
次に、以下の操作を、Tが空集合となるまで繰り返す。
- となるを一つ取り、
- とする。
- 各に対して、もしp(k) + wkj < p(j)ならば
- p(j): = p(k) + wkj
- q(j): = k
- とする。
これが終了したとき、pjはsからjへの最短距離となっている。 また、点列は、その最短経路での経由点を逆順にしたものになっている。