优先级搜索
图搜索算法总体来说都需通过迭代逐一发现各顶点,给所有顶点赋予不同优先级,每一步迭代选取当时优先级最高者。
支撑树
连通图的某一无环连通子图若覆盖所有顶点,则称作一棵支撑树或生成树。
支撑树既是“禁止环路”前提下的极大子图,也是“保持连通”前提下的最小子图。
最小支撑树(MST):成本(各边权重之和)最低。
对于权重为0或负数的情况,可调整后求出MST。
Prim算法
Dijkstra算法
最短路径树(SPT):到某个顶点的路径最短
- 单调:最短路径的任一前缀也是最短路径
- 歧义
- 不唯一
- 存在非正路径时,无从定义最短路径
- 无环
- 与MST不同
Dijkstra算法用来计算单源最短路。
- 源顶点集只有一个源点
- 找出到源顶点集最近的顶点,加入源顶点集
- 更新各点到源顶点集的距离(若新距离小,则改为新距离,并不记住具体路径)
- 重复2,3
- 直到所有点都进入源顶点集,结束