数学建模社区-数学中国

标题: 求助:dijkstra的matlab程序后一段看不懂... [打印本页]

作者: athenaeee    时间: 2009-9-8 16:30
标题: 求助:dijkstra的matlab程序后一段看不懂...
clear;% }3 D- ]. d+ ?- ^* A( G5 W( B
clc;
% x$ [1 T: i6 w; c8 e+ [M=10000;%无穷远距离
) u( U$ d+ I$ E* j4 f! ta(1,:)=[0,50,M,40,25,10];
  j! t- n1 X' ~/ ia(2,:)=[zeros(1,2),15,20,M,25];
% q1 M" O0 P" _' M: c& f3 s, Aa(3,:)=[zeros(1,3),10,20,M];
- A+ D! q6 l+ s9 }  |a(4,:)=[zeros(1,4),10,25];
; z/ }# c* \2 C  ra(5,:)=[zeros(1,5),55];$ p! b/ |, @7 a. t
a(6,:)=zeros(1,6);1 g$ r- D3 k3 o* ~0 i" ?
a=a+a';%a66邻接矩阵,无向图" i& W% T+ I8 R) A4 Z& J) P
pb(1:length(a))=0;pb(1)=1;%存放p,t标号信息# O+ K6 W4 ?9 d2 f
index1=1;%存放标号顶点顺序
" U  j( f& r1 z8 O2 a  n+ w- yindex2=ones(1,length(a));%存放始点到第i点最短通路中第i顶点前一顶点的序号
# c$ z1 ^4 G8 w! wd(1:length(a))=M;d(1)=0;%存放由始点到第i点最短通路的值
( W4 b, A; f  @/ Qtemp=1;%算c1到其它点的最短路. b. x5 O/ K3 [! m9 Z4 z
while sum(pb)<length(a)
& \& k3 z0 B2 ]/ [, @   tb=find(pb==0);%开始算第tb个顶点的最短路
  R& \4 d" [) I$ T/ P# X+ K   d(tb)=min(d(tb),d(temp)+a(temp,tb));
& Q' K1 k4 p1 z% J   tmpb=find(d(tb)==min(d(tb)));
1 |2 L9 _" R1 u   temp=tb(tmpb(1));
; ?( e( J- {+ w! O   pb(temp)=1;
) v$ j0 j& J# U/ V   index1=[index1,temp];$ |5 V4 @! I+ ^- ]2 e) {2 n" u
   index=index1(find(d(index1)==d(temp)-a(temp,index1)));7 {3 V: C" E+ @5 v2 S3 E
   if length(index)>=2; Z. k2 @- F5 [4 b4 a
      index=index(1);
' Y8 ~+ C/ _: x! E/ {& f   end8 r9 R# C) Q- R' g5 _
   index2(temp)=index;% k$ r- k7 _" n* m7 ~) v6 g9 c, ~
end
+ V+ N5 r" h4 J4 L6 P6 nd, index1, index2 ) _6 E$ o4 Y9 c" m4 I% V% [+ V
. r( H  h) m  {3 x' ]$ J7 U
从没加注释那一行就看不太懂了,求问啊,感激不尽!
作者: athenaeee    时间: 2009-9-8 16:31
1# athenaeee & m* n( h0 {/ j/ O
表示的是  冒号+后括号




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