最短経路問題

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

グラフ理論における最短経路問題(さいたんけいろもんだい、: shortest path problem)とは、重み付きグラフの与えられた2つのノード間を結ぶ経路の中で、重みが最小の経路を求める最適化問題である。

種類[編集]

2頂点対最短経路問題
特定の2つのノード間の最短経路問題。一般的に単一始点最短経路問題のアルゴリズムを使用する。
単一始点最短経路問題(SSSP)
特定の1つのノードから他の全ノードとの間の最短経路問題。この問題を解くアルゴリズムとしては、ダイクストラ法ベルマン-フォード法がよく知られている。
全点対最短経路問題
グラフ内のあらゆる2ノードの組み合わせについての最短経路問題。この問題を解くアルゴリズムとしては、ワーシャル-フロイド法が知られている。

このような分類がされているのは、後者の問題が単に前者の問題を初期条件(ノード)を変えて繰り返し解くのではなく、アルゴリズムの過程で得た情報を利用して計算量を減らすことが可能となるからでもある。

単一始点最短経路問題[編集]

辺の重みなし有向グラフ[編集]

アルゴリズム 計算量 作者
幅優先探索 O(E)

辺の重みが非負値の有向グラフ[編集]

アルゴリズム 計算量 作者
O(V^2 EL) Ford 1956
ベルマン-フォード法 O(VE) Bellman 1958, Moore 1959
O(V^2 \log{V}) Dantzig 1958, Dantzig 1960, Minty (cf. Pollack & Wiebenson 1960), Whiting & Hillier 1960
ダイクストラ法(リスト) O(V^2) Leyzorek et al. 1957, Dijkstra 1959
ダイクストラ法(修正二分ヒープ O((E+V) \log{V})
. . . . . . . . .
ダイクストラ法(フィボナッチヒープ O(E+V \log{V}) Fredman & Tarjan 1984, Fredman & Tarjan 1987
O(E \log{\log{L}}) Johnson 1982, Karlsson & Poblete 1983
Gabow 法 O(E \log{\frac{E}{V}} L) Gabow 1983b, Gabow 1985b
O(E+V \sqrt{\log{L}}) Ahuja et al. 1990

辺の重みが任意の実数の有向グラフ[編集]

アルゴリズム 計算量 作者
ベルマン-フォード法 O(VE) Bellman 1958, Moore 1959

応用[編集]

最短経路問題の身近な応用例には、鉄道の経路案内(駅すぱあと駅探NAVITIMEなど)がある。駅をノードとし、駅と駅の所要時間を重みとしたエッジとして、鉄道線路をグラフ化して最短経路を求めている。

類似問題[編集]

最長単純道[編集]

最短経路とは逆の問題で、最長単純道問題もあるが、最短経路の場合は、最短経路の部分問題もやはり最短経路であるが、最長単純道の場合、部分構造最適性が成立していなく、貪欲法などで解くことが出来なく、辺の重みなしであっても、NP完全問題である。

最短閉路[編集]