function [D,R]=floyd(A)
%用floyd算法实现求任意两点之间的最短路程。可以有负权
%参数D为连通图的权矩阵
% A=[0 2 8 1 inf inf inf inf
% 2 0 6 inf 1 inf inf inf
% 8 6 0 7 5 1 2 inf
% 1 inf 7 0 inf inf 9 inf
% inf 1 5 inf 0 3 inf 8
% inf inf 1 inf 3 0 4 6
% inf inf 2 9 inf 4 0 3
% inf inf inf inf 8 6 3 0];
D=A;n=length(D);
for i=1:n
for j=1:n
R(i,j)=j;%赋路径初值
end
end
for k=1:n
for i=1:n
for j=1:n
if D(i,k)+D(k,j)<D(i,j)
D(i,j)=D(i,k)+D(k,j);%更新 D(i,j),说明通过k的路程更短
R(i,j)=R(i,k);%更新R(i,j),需要通过k
end
end
end
hl=0;
for i=1:n
if D(i,i)<0
hl=1;
break;%跳出内层的for循环
end
end
if(hl==1)
fprintf('有负回路')
break;%跳出最外层循环
end
end
floyd.rar_运筹学算法
版权申诉
13 浏览量
2022-07-14
22:21:37
上传
评论
收藏 566B RAR 举报
weixin_42653672
- 粉丝: 93
- 资源: 1万+
最新资源
- 爬取当当网图书数据并保存至本地Excel的Python实现
- html css js网页设计M-m笔记
- linux常用命令大全vaWeb-m笔记
- c语言文件读写操作代码CM-2023C-开发笔记
- vmware workstation pro 17 linux版
- 3479521_1710042575-1.rwmod
- 安装及环境配置UMCM-2023C-ma笔记
- (完整)数据库课程设计餐厅点餐说明书-21ab6d3c8beb172ded630b1c59eef8c75ebf952c.doc
- 2023-04-06-项目笔记 - 第一百五十四阶段 - 4.4.2.152全局变量的作用域-152 -2024.06.04
- 松哥解协议松哥解协议松哥解协议松哥解协议松哥解协议
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈