基于 matlab 的 floyd 算法 matlab 计算最短路径
function [d,path]=floyd(a,sp,ep)
% floyd - 最短路问题
%
% Syntax: [d,path]=floyd(a,sp,ep)
%
% Inputs:
% a - 距离矩阵是指 i 到 j 之间的距离,可以是有向的
% sp - 起点的标号
% ep - 终点的标号
%
% Outputs:
% d - 最短路的距离
% path - 最短路的路径
%
a =[
0 50 inf;
50 0 15 ;
Inf 15 0 ];% a(i,j) ,从节点 i 到 j 之间的距离
% [d,path]=floyd(a,2,5)
sp=3;
ep=1;
n=size(a,1);
D=a;
path=zeros(n,n);
for i=1:n
for j=1:n
if D(i,j)~=inf
path(i,j)=j; %j 是 i 的后续点 end end end for k=1:n
for i=1:n
for j=1:n
if D(i,j)D(i,k)+D(k,j)
D(i,j)=D(i,k)+D(k,j); path(i,j)=path(i,k);
end
end
end
end
p=[sp];
mp=sp;
for k=1:n
if mp~=ep d=path(mp,ep);
您可能关注的文档
- 培训——新版防止船舶垃圾造成污染规则.docx
- 培训、厂验、工程协调会.docx
- 培训与开发制度.docx
- 培训专员主要工作内容及流程说明.docx
- 培训中心主任岗位说明书.docx
- 培训中心转让协议.docx
- 培训会议主持词开场白、优秀员工培训会开场白.docx
- 培训主管工作流程.docx
- 培训处处长岗位职责.docx
- 培训体系建设规划指导方案.docx
- 沪教版五四制六年级上册数学 2分数 分数的大小比较课件2.pptx
- 沪教版五四制六年级上册数学 2分数 分数运算的应用课件1.pptx
- 沪教版五四制六年级上册数学 3比和比例 等可能事件课件1.pptx
- 沪教版五四制六年级上册数学 2分数 分数的加减法课件2.pptx
- 沪教版五四制六年级上册数学 比的基本性质 (3).pptx
- 沪教版五四制六年级上册数学 2分数 分数的乘法课件1.pptx
- 沪教版五四制六年级上册数学 2分数 分数的除法课件1(1).pptx
- 沪教版五四制六年级上册数学 百分数的应用一.pptx
- 护理伦理困境与解决方案.pptx
- 沪教版五四制六年级上册数学 百分比的应用.pptx
原创力文档

文档评论(0)