数学建模社区-数学中国

标题: Dijkstra最短路算法通用Matlab程序 [打印本页]

作者: wen1055    时间: 2009-8-23 19:07
标题: Dijkstra最短路算法通用Matlab程序
Dijkstra最短路算法通用Matlab程序

function [d,DD]=dijkstra(D,s)

%Dijkstra最短路算法Matlab程序用于求从起始点s到其它各点的最短路
%D为赋权邻接矩阵
%d为s到其它各点最短路径的长度
%DD记载了最短路径生成树

[m,n]=size(D);
d=inf.*ones(1,m);
d(1,s)=0;
dd=zeros(1,m);
dd(1,s)=1;
y=s;
DD=zeros(m,m);
DD(y,y)=1;
counter=1;
while length(find(dd==1))<m
     for i=1:m
         if dd(i)==0
             d(i)=min(d(i),d(y)+D(y,i));
         end
     end
     ddd=inf;
     for i=1:m
         if dd(i)==0&&d(i)<ddd
             ddd=d(i);
         end
     end
     yy=find(d==ddd);
     counter=counter+1;
     DD(y,yy(1,1))=counter;
     DD(yy(1,1),y)=counter;
     y=yy(1,1);
     dd(1,y)=1;
end
作者: ywt    时间: 2009-8-23 20:04
好东西,谢谢
作者: liuren29    时间: 2009-8-23 20:28
O(∩_∩)O谢谢分享
作者: 一直很执着    时间: 2009-8-23 21:26
呵呵~分享了
作者: yeqingyi    时间: 2009-8-23 22:42
程序写得不错。
作者: cey1979    时间: 2009-8-23 23:10
乱一点。。。。。。
作者: tracy513    时间: 2009-8-24 00:38
程序写得不错。
作者: 好学者    时间: 2010-5-10 16:42
谢谢啦,我已经copy下来了!!!!!!!!!!!!!!!
作者: Young_Dream    时间: 2010-8-11 19:55
谢谢拉,那走了

作者: 滴水    时间: 2010-8-14 11:10
谢谢拉,那走了

作者: wajm_011    时间: 2010-8-14 16:44
O(∩_∩)O谢谢分享
作者: fhj567    时间: 2010-8-14 18:00
不错不错~~~~~··
作者: 不会输名字    时间: 2010-8-29 17:12
程序写得不错。

作者: zengchao133    时间: 2011-7-28 22:43

作者: ljyxn    时间: 2011-8-2 19:46
不错呀,收藏了先…谢谢啦
作者: 石头@@@    时间: 2012-4-30 00:44
谢谢啦~~哈哈哈哈~~希望用得着
作者: xx66897182    时间: 2013-7-12 11:15
请问下里面的s怎么表示?

作者: 东洋之话    时间: 2013-8-30 11:13
这个程序有问题 不能运行
作者: 天空和海    时间: 2013-8-30 14:12
好资源              
作者: silverdew0000    时间: 2015-8-22 20:38
为什么运行不出结果呢?





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5