function[d,path]=floyd(a,sp,ep)%floyd%
%Syntax:[d,path]=floyd(a,sp,ep)%%Inputs:%%%%
%Outputs:%%%
d
-最短路的距离aspep
-距离矩阵是指i到j之间的距离,可以是有向的-起点的标号-终点的标号-最短路问题
path-最短路的路径
a=[
050Inf
50015
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);fori=1:nforj=1:n
ifD(i,j)~=inf
path(i,j)=j;%j是i的后续点endendendfork=1:nfori=1:nforj=1:n
ifD(i,j)>D(i,k)+D(k,j)
D(i,j)=D(i,k)+D(k,j);path(i,j)=path(i,k);endendendendp=[sp];mp=sp;fork=1:n
ifmp~=ep
d=path(mp,ep);p=[p,d];mp=d;endendd=D(sp,ep)path=p
试计算下图的最短路径,1.起点C点,终点A点。2.起点A点,终点G点。3.起点D点,终点F点。试计算下图的最短路径,1.起点F点,终点A点。2.起点E点,终点C点。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务