数学建模社区-数学中国
标题:
关于dijkstra的问题。
[打印本页]
作者:
晒个小太阳。
时间:
2013-1-19 22:42
标题:
关于dijkstra的问题。
我手头有一个现成的dijkstra算法的matlab程序,但是只能输出某个点到最短通路的值,以及标号顶点顺序,以及标号顶点索引。
- T/ @" D+ V8 |% q! `) E: W5 Z, Q
, W" S& M7 V, `, r. O8 u, E9 u
% x, P' _# Q& m8 u+ [$ ~
我想知道有没有什么程序能够输出具体的最短路径,比如说从1到5的最短路径是1->3->4->5,就是类似这样的,有没有这样的dijkstra程度啊。 如果没有的话,那通过现有的是不是能推出来呢?望高人指点啊~小弟感激不尽。
" I( E' d) e% c2 i6 U! |
% x l4 m1 y0 o
对了,我还想问最短路径生成树是什么东西??
6 E/ e' I3 ~1 |0 r a% {7 [
& ]4 m1 P- j6 `: e# F1 x
附程序如下:
+ {4 d' f6 @" q( D
clear;
2 W3 ]# ~, |( F, _8 c7 n$ F
clc;
4 w! q1 q) _0 k2 y9 H
M=10000;
, B: G) x- u1 O8 z
a(1,:)=[0,50,M,40,25,10];
0 r7 `9 M0 {8 x5 r2 @$ t8 _: K
a(2,:)=[zeros(1,2),15,20,M,25];
3 M2 C! v$ V% A r, D! d6 Y
a(3,:)=[zeros(1,3),10,20,M];
, U! ]/ f7 ?5 ]7 G- C0 U* `
a(4,:)=[zeros(1,4),10,25];
* |, u7 K: ]' r$ J! u( c, @
a(5,:)=[zeros(1,5),55];
/ V! d9 X3 c* R9 p" d! ?
a(6,:)=zeros(1,6);
" ~% X# U. t7 A8 D6 G7 @3 u9 X
a=a+a';
5 K* I1 e/ z. M/ e& O
pb(1:length(a))=0;pb(1)=1;index1=1;index2=ones(1,length(a));
2 n5 I% M1 g0 l# ~# n3 d
d(1:length(a))=M;d(1)=0;temp=1;
/ W0 X2 W+ r$ R5 [$ f5 k
while sum(pb)<length(a)
+ a* B( O' ]- T) V/ {& o
tb=find(pb==0);
7 [, x* L# W. x H5 q, l
d(tb)=min(d(tb),d(temp)+a(temp,tb));
1 i8 U" O- T+ a; o) s- I9 |/ k
tmpb=find(d(tb)==min(d(tb)));
* V N7 Y: [# ^ p/ D+ v
temp=tb(tmpb(1));
- q! x2 {. [# G
pb(temp)=1;
+ n: B' b; w! J* U) Y* F: D
index1=[index1,temp];
2 J+ G1 n) S" ?
index=index1(find(d(index1)==d(temp)-a(temp,index1)));
, B U5 w2 V2 t4 g
if length(index)>=2
1 h5 M; y- d( `$ I/ ~1 W* \0 i3 @8 y
index=index(1);
; Y. a0 e1 `% t, `% h- Q; f& c
end
9 ~3 R! f) R% b) p5 @
index2(temp)=index;
& I: G4 O) O2 k2 u) x
end
) Q4 H* L& u8 M2 _! b; [
d, index1, index2
4 G! x, y c; g
作者:
木兆木风
时间:
2013-1-20 09:36
我这里有VC2008的,需要的话我可以给你发
作者:
和谐宁静
时间:
2013-8-22 18:50
用LINGo挺好的 对于这个算法
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5