晒个小太阳。 发表于 2013-1-19 22:42

关于dijkstra的问题。

我手头有一个现成的dijkstra算法的matlab程序,但是只能输出某个点到最短通路的值,以及标号顶点顺序,以及标号顶点索引。


我想知道有没有什么程序能够输出具体的最短路径,比如说从1到5的最短路径是1->3->4->5,就是类似这样的,有没有这样的dijkstra程度啊。  如果没有的话,那通过现有的是不是能推出来呢?望高人指点啊~小弟感激不尽。

对了,我还想问最短路径生成树是什么东西??

附程序如下:
clear;
clc;
M=10000;
a(1,:)=;
a(2,:)=;
a(3,:)=;
a(4,:)=;
a(5,:)=;
a(6,:)=zeros(1,6);
a=a+a';
pb(1:length(a))=0;pb(1)=1;index1=1;index2=ones(1,length(a));
d(1:length(a))=M;d(1)=0;temp=1;
while sum(pb)<length(a)
   tb=find(pb==0);
   d(tb)=min(d(tb),d(temp)+a(temp,tb));
   tmpb=find(d(tb)==min(d(tb)));
   temp=tb(tmpb(1));
   pb(temp)=1;
   index1=;
   index=index1(find(d(index1)==d(temp)-a(temp,index1)));
   if length(index)>=2
      index=index(1);
   end
   index2(temp)=index;
end
d, index1, index2

木兆木风 发表于 2013-1-20 09:36

我这里有VC2008的,需要的话我可以给你发

和谐宁静 发表于 2013-8-22 18:50

用LINGo挺好的 对于这个算法
页: [1]
查看完整版本: 关于dijkstra的问题。