2022年最长路算法和最短路算法matlab整理 .pdf
《2022年最长路算法和最短路算法matlab整理 .pdf》由会员分享,可在线阅读,更多相关《2022年最长路算法和最短路算法matlab整理 .pdf(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、*最长路function l,t=dijkstra_long(A,v) n=length(A); V=1:n; s=v; l=A(v,:); t=v.*ones(1,n); ss=setdiff(V,s);nn=length(ss); for j=1:n-1 k=ss(1); for i=1:nn if l(k)l(ss(i)&l(ss(i)=inf k=ss(i); l(k)=l(ss(i); end end if l(k)=inf break; else s=union(s,k); ss=setdiff(V,s); nn=length(ss); end if length(s)=n bre
2、ak; else for i=1:nn if l(ss(i)=inf l(ss(i)=0; end for m=1:nn if l(ss(i)l(ss(m)+A(ss(m),ss(i)&A(ss(m),ss(i)=inf l(ss(i)=l(ss(m)+A(ss(m),ss(i); t(ss(i)=ss(m); end end if l(ss(i)l(ss(i) k=ss(i); l(k)=l(ss(i);%在当前一行距离中取最小值end end if l(k)=inf%如果当前行最小值是无穷大,则结束break; else%否则 k 点的最短路找到s=union(s,k); ss=setdi
3、ff(V,s); nn=length(ss); end if length(s)=n%全部点的最短路都找到break; else for i=1:nn%以 k 为生长点,如果通过k 点会更短,则更改当前最短距离if l(ss(i)l(k)+A(k,ss(i) l(ss(i)=l(k)+A(k,ss(i); t(ss(i)=k; end end end 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - end 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年最长路算法和最短路算法matlab整理 2022 最长 算法 短路 matlab 整理
限制150内