数学建模社区-数学中国
标题:
关于dijkstra的问题。
[打印本页]
作者:
晒个小太阳。
时间:
2013-1-19 22:42
标题:
关于dijkstra的问题。
我手头有一个现成的dijkstra算法的matlab程序,但是只能输出某个点到最短通路的值,以及标号顶点顺序,以及标号顶点索引。
2 h6 K6 U6 D$ `9 X7 g' ?
( C5 Y! z6 X( ^! H
; Z. R, W5 U. h" N
我想知道有没有什么程序能够输出具体的最短路径,比如说从1到5的最短路径是1->3->4->5,就是类似这样的,有没有这样的dijkstra程度啊。 如果没有的话,那通过现有的是不是能推出来呢?望高人指点啊~小弟感激不尽。
' G9 Z! y* C% @# y) s6 s: h
; S& @+ Q7 g$ T3 W" x
对了,我还想问最短路径生成树是什么东西??
5 x7 I. }3 c# y2 K
3 E* |* o" K4 f
附程序如下:
' U/ z6 n) I9 Z& D5 R/ H
clear;
# Z ^# P: }) U/ }, [ q6 w
clc;
& x; C) ~. o+ ~% Y
M=10000;
: L) v5 b9 U/ `5 k* o
a(1,:)=[0,50,M,40,25,10];
8 w# T% L* `/ ~9 ?: r0 I, z4 W
a(2,:)=[zeros(1,2),15,20,M,25];
1 `/ S, H9 u' N* l( }
a(3,:)=[zeros(1,3),10,20,M];
2 n) W: ?& Z7 q+ s+ A, n
a(4,:)=[zeros(1,4),10,25];
( @4 \3 a' Y; W# O
a(5,:)=[zeros(1,5),55];
1 L. m6 q: P! e. u" ?( a! C
a(6,:)=zeros(1,6);
5 X% U% p- z7 U h% r) [. s
a=a+a';
. q( e# [0 U& x5 [
pb(1:length(a))=0;pb(1)=1;index1=1;index2=ones(1,length(a));
! t4 ]( O: n# f' b" r
d(1:length(a))=M;d(1)=0;temp=1;
" a# E( A p. g5 G% k, g
while sum(pb)<length(a)
. v* D/ C0 ~% O* \; V
tb=find(pb==0);
! i% y6 ]6 J) f4 {, S
d(tb)=min(d(tb),d(temp)+a(temp,tb));
: v4 Z. Y& w$ z, k
tmpb=find(d(tb)==min(d(tb)));
3 {) \5 Q. ]* Q: X
temp=tb(tmpb(1));
# y* t* O0 r7 I% e+ P: v* R( x
pb(temp)=1;
9 ?; O/ Z* H' S! P1 s/ D" P' R" c/ U
index1=[index1,temp];
1 B$ B; V8 q4 I. Q' d
index=index1(find(d(index1)==d(temp)-a(temp,index1)));
7 p5 }# P. e0 ?; p- @+ W
if length(index)>=2
& _2 |1 H$ \1 @
index=index(1);
7 s+ `" L3 k. [* V/ X! y& q
end
5 C; Y1 L# X0 ^) u, I0 z% P Y2 q
index2(temp)=index;
& q3 |, M% p( y4 G' L0 O
end
- W7 {2 N' a) Q- h5 |$ N" J
d, index1, index2
4 p8 Q& l: f5 x6 _4 N
作者:
木兆木风
时间:
2013-1-20 09:36
我这里有VC2008的,需要的话我可以给你发
作者:
和谐宁静
时间:
2013-8-22 18:50
用LINGo挺好的 对于这个算法
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5