您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页基于matlab的floyd算法 matlab计算最短路径

基于matlab的floyd算法 matlab计算最短路径

来源:尚车旅游网
基于matlab的floyd算法matlab计算最短路径

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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务