算法来源
集合分类:
- 任意两个的路径组成集合A
- 集合A 按起点终点分类 Ai,j
- Ai,j filter 中间经过最大点为k的最短路 : Ak,i,j
- Bk,i,j=⋃s=1kAs,i,j 中间经过最大点不超过k的最短路 组成的集合
- Bk,i,j 与 Bk−1,i,j 之间的关系?
- Bk,i,j=Bk−1,i,j∪Ak,i,j
- min(Bk,i,j)=min(min(Bk−1,i,j),Ak,i,j)
转移方程
f(k,i,j) 中间经过的最大点不超过k的最短路
f(k,i,j)=min{f(k−1,i,j),f(k−1,i,k)+f(k−1,k,j)}