最短経路問題
複数の経路の中から、最も効率の良い経路 を求める問題を 最短経路問題 といいます。
「効率のよい」という意味としては、「時間が短い、費用が安い、距離が短い」などさまざまな基準があります。
NetworkX では、このような基準を weight として数値化します。
まず、最短経路を求めるグラフを定義し、図示してみます。
[Google Colaboratory]
1 | import networkx as nx |
[実行結果]
ダイクストラ法
最短経路問題 を解くためには、NetworkX の dijkstra_path_length関数 を使います。
[Google Colaboratory]
1 | # ダイクストラ法で最短経路とその重み(最小コスト)を求める |
[実行結果]
Shortest Path: ['A', 'C', 'F', 'E', 'G'] Weight: 8
最短経路は ‘A’ ➡ ‘C’ ➡ ‘F’ ➡ ‘E’ ➡ ‘G’ となり、最小コスト(トータルの重さ)は 8 であることを導き出すことができました。