Floyd - Warshall (弗洛伊德算法)

图中任意两点之间的最短路径问题

Dijkstra和Bellman-Ford也可以以所有点为源点,求出任意两点之间的最短距离,但是Dijstra不能解决带负权的的边,Bellman-Ford 效率慢点

Floyd算法考虑的是一条最短路径的中间节点,即简单路径p={v1 , v2, ... ,vn}上除v1和vn的任意节点

设K是p的一个中间节点,那么从i到 j 的最短路径就被分成 i到 k 和 k 到 j 的两段最短路径p1和p2,p1是从 i到 k且中间节点属于 {1 ,2 ,... , k-1}取得的一条最短路径,p2是从k到 j 且中间节点属于{1 , 2 , ... ,k-1}取得的一条最短路径

Floyd-Warshall算法的原理是动态规划

设Di,j ,k为从i到j的只以(1..k)集合中的节点为中间节点的最短路径长度

1.若最短路径经过点k ,则Di,j,k = Di,k ,k-1 + Di,j ,k-1

2.若最短路径不经过点k,则Di,j,k=Di,j,k-1

因此 , Di,j,k = min(Di,k ,k-1 ,Di,j ,k-1 + Di,j,k-1

相关推荐
Adios79413 小时前
设置交集大小至少为2
数据结构·算法·leetcode
来一碗刘肉面19 小时前
栈的应用(表达式求值)
数据结构·算法
xiaowang1234shs20 小时前
怪兽轻断食技术深度测评:从断食计时引擎到AI识别算法的工程实践解析
数据库·人工智能·算法·macos·机器学习·p2p·visual studio
小果因子实验室20 小时前
量化研究--策略迁移算法1研究
算法
Web极客码21 小时前
如何用三段式确定性剪枝,为 LLM Agent 砍掉 35% 的 Token 成本?
服务器·人工智能·算法·机器学习
程序猿乐锅21 小时前
【数据结构与算法 | 第六篇】力扣1109,1094差分数组
java·算法·leetcode
wabs66621 小时前
关于图论【广度优先搜索的理论基础】
算法·图论·宽度优先
孤魂23321 小时前
逻辑回归算法
算法·机器学习·逻辑回归
weixin_3776348421 小时前
【多模型预测】 如何合理融合多个预测分值
算法·机器学习·概率论·预测·agent预测