最短路問題

最短路徑問題是圖論研究中的一個經典算法問題 ， 旨在尋找圖 （ 由結點和路徑組成的 ） 中兩結點之間的最短路徑 。 算法具體的形式包括 ： 確定起點的最短路徑問題 - 也叫單源最短路問題 ， 即已知起始結點 ， 求最短路徑的問題 。 在邊權非負時適合使用Dijkstra算法 ， 若邊權爲負時則適合使用Bellman - ford算法或者SPFA算法 。 確定終點的最短路徑問題 - 與確定起點的問題相反 ， 該問題是已知終結結點 ， 求最短路徑的問題 。 在無向圖中該問題與確定起點的問題完全等同 ， 在有向圖中該問題等同於把所有路徑方向反轉的確定起點的問題 。 確定起點終點的最短路徑問題 - 即已知起點和終點 ， 求兩結點之間的最短路徑 。 全局最短路徑問題 - 也叫多源最短路問題 ， 求圖中所有的最短路徑 。 適合使用Floyd - Warshall算法 。 用於解決最短路徑問題的算法被稱做 “ 最短路徑算法 ” ， 有時被簡稱作 “ 路徑算法 ” 。 最常用的路徑算法有 ： Dijkstra算法 A * 算法 Bellman - Ford算法 SPFA算法 （ Bellman - Ford算法的改進版本 ） Floyd - Warshall算法 雙向搜索