数学建模社区-数学中国

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

作者: athenaeee    时间: 2009-9-8 16:30
标题: 求助:dijkstra的matlab程序后一段看不懂...
clear;
; J- C1 B1 b: M& D! V; Z+ @clc;  w8 |6 Z7 ]$ s) A7 u( C& ^
M=10000;%无穷远距离
. Z$ R  o$ `  g% ^/ v6 \: P" W. p1 Ia(1,:)=[0,50,M,40,25,10];" V8 B' d7 z! P6 R7 A! ]4 [
a(2,:)=[zeros(1,2),15,20,M,25];, C( N" ^, Y" c% D( o- C
a(3,:)=[zeros(1,3),10,20,M];/ M$ e3 c2 Y) U: F0 y
a(4,:)=[zeros(1,4),10,25];6 N* T+ n1 Z7 a1 S0 S! U) {5 ~
a(5,:)=[zeros(1,5),55];3 ^5 Z* B6 j5 a  {" u
a(6,:)=zeros(1,6);" a/ J4 X+ c3 U2 M: w3 ]' U
a=a+a';%a66邻接矩阵,无向图
  {8 M5 f+ r7 o- w* wpb(1:length(a))=0;pb(1)=1;%存放p,t标号信息
/ x- u0 h- B* V; e( b( K  @index1=1;%存放标号顶点顺序3 M1 A$ R9 Z- g2 z; A
index2=ones(1,length(a));%存放始点到第i点最短通路中第i顶点前一顶点的序号
- v+ q* z+ P! G' l/ N% Fd(1:length(a))=M;d(1)=0;%存放由始点到第i点最短通路的值
0 Q7 _7 H' S! V" i6 |temp=1;%算c1到其它点的最短路) f* b: p, c/ A- i6 F; B' n# ~
while sum(pb)<length(a)0 v2 L' Z& k) y* q" c# R
   tb=find(pb==0);%开始算第tb个顶点的最短路
( C# Q! i# v7 J- {. k   d(tb)=min(d(tb),d(temp)+a(temp,tb));
1 ~8 H/ L$ g( A" U5 U" c  X2 {6 f   tmpb=find(d(tb)==min(d(tb)));
' i9 L7 R5 A8 v7 l- o$ \  i  P   temp=tb(tmpb(1));
) @5 u. h8 \! w3 A   pb(temp)=1;
; Z5 K3 G; S7 W5 i; S( o6 {" S   index1=[index1,temp];
4 K! X, }1 i) j# @! V& g* A7 g   index=index1(find(d(index1)==d(temp)-a(temp,index1)));
6 y; Q& k# }" l8 j- x: x   if length(index)>=2, B: x  Y3 Z4 _5 Y: A
      index=index(1);1 T" Y+ l6 Q" N; Y! ^
   end
& f+ p/ @7 S9 Q  _# H% K, f% e   index2(temp)=index;
- k7 G* e. `0 @% q5 @* X2 Yend7 S4 D  g/ U% U, W: {
d, index1, index2
- k# N* N9 D2 D
3 |1 B+ Y" W  s从没加注释那一行就看不太懂了,求问啊,感激不尽!
作者: athenaeee    时间: 2009-9-8 16:31
1# athenaeee 6 N4 Z' _- f( {: [& y7 d- L" h' }
表示的是  冒号+后括号




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