最短路径问题

最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(有节点和路径组成的)中两节点之间的最短路径。算法具体的形式包括:

  • 确定起点的最短路径问题 —— 即已知起始点,求最短路径的问题。适合使用Dijkstra算法。
  • 确定终点的最短路径问题 —— 于确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。
  • 确定起点终点的最短路径问题 —— 即已知起点和终点,求两点之间的最短路径。
  • 全局最短路径问题 —— 求图中所有的最短路径。适合使用Floyd-Warshall算法。

用于解决最短路径问题的算法被称作“最短路径算法”,有时被简称作“路径算法”。最常用的路径算法有:

  • Dijkstra算法
  • A*算法
  • Bellman-Ford算法
  • SPFA算法(Bellman-Ford算法的改进版本)
  • Floyd-Warshall算法
  • Johnson算法
  • Bi-Direction BFS算法
算法
基本遍历
  • 深度优先搜索
  • 广度优先搜索
  • A*
  • Flood fill
最短路径
  • Dijkstra
  • Bellman-Ford
  • Floyd-Warshall
  • Kneser图
最小生成树
  • Prim
  • Kruskal
强连通分量
  • Kosaraju算法
  • Gabow算法
  • Tarjan算法
图匹配
  • 匈牙利算法
  • Hopcroft-Karp
  • Edmonds's matching
网络流
  • Ford-Fulkerson
  • Edmonds-Karp
  • Dinic
  • Push-relabel maximun flow
原文地址:https://www.cnblogs.com/shuanghong/p/2956531.html