欢迎来到天天文库
浏览记录
ID:9265697
大小:40.50 KB
页数:3页
时间:2018-04-25
《基于matlab的floyd算法 matlab计算最短路径》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于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=[050inf;50015;Inf150];%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);fo
2、ri=1:nforj=1:nifD(i,j)~=infpath(i,j)=j;%j是i的后续点endendendfork=1:nfori=1:nforj=1:nifD(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:nifmp~=epd=path(mp,ep);p=[p,d];mp=d;endendd=D(sp,ep)path=p试计算下图的最短路径,1.起点C点,终点A点。2.起点A点,终点G点。3.起点D点,终点F点。试计算下图的最短路径,1.起点
3、F点,终点A点。2.起点E点,终点C点。
此文档下载收益归作者所有