数学建模社区-数学中国

标题: 求大神解答,关于floyd算法 [打印本页]

作者: Araneider    时间: 2012-8-24 16:54
标题: 求大神解答,关于floyd算法
这是2000年b题的一个floyd算法matlab程序。。。。。但是有些看不懂啊~~~那个大神指教一下~~~~5 d* R3 s# M4 F/ {5 I& c: c
8 R. M% ^* ?) c
Floyd算法函数在matlab下的M函数文件如下:
" \# q7 [: i! o) \  E1 F6 mfunction [D,path]=floyd(a)
) |6 W% O0 ]: M% y  un=size(a,1);
( ?* u  ~# _. {0 X, L' A# cD=a;path=zeros(n,n);' W2 G* `3 `" I( y9 j. P
for i=1:n
" k; Y5 K- O0 s3 G  O    for j=1:n; `# a4 t% U$ E- p$ m" f" v; {# @3 C
        if D(i,j)~=inf( h) [# K+ W1 B: }
            path(i,j)=j;
& ^5 d& H6 j) ]/ A        end
" N/ o" N7 g) \    end
6 H8 i" o6 h1 i# xend5 `/ i6 B9 G- i, Q5 f7 |
for k=1:n
. G8 I, R/ A6 @    for i=1:n
9 ~! v% Z& O) @  A9 A        for j=1:n
1 a, E# [8 z2 \" f5 f            if D(i,k)+D(k,j)<D(i,j)( e& l) H$ J  C. E
                D(i,j)=D(i,k)+D(k,j);
2 [; F4 I' S9 [1 T' @                path(i,j)=path(i,k);
3 S2 ^, q/ H! Q& Q- ^. R            end. G% X+ f* i& U% V0 \
        end9 [4 R4 y7 ~! H, H5 L
    end: s0 i: O4 X# Q% {/ N
end
- ]% L9 C! T6 r  r. u8 N上面是一个函数,这一部分可以看懂,但是下面这个求最小费的问题就看不懂了。。。。5 ~9 V3 x7 S' N3 K6 W3 H/ |
ab=[1 1 2 3 4 5 6 7 8 9 10 11 12 13 15 16 17 18 19 20  20 22 23];5 P  y/ P+ y9 [" z' L
bb=[ 14 15 15 16 19 18 23 24 10 10 11 15 13 14 16 17 19 19 20 21 22 23 24];  V& U% S  z4 O1 z5 @, ^
w=[20 202 1200 690  690 462 70 30 450 80 1150 1100 306 195 720 520 170 88 160 70 320 160 290];% C5 ]3 c8 I3 V$ V( M) P3 q
ab1=[1 2 4 5 6 7 8 9 10 11 14 15 16 17 18 33 34 35];
( J& R% ]1 e( s& N  ybb1=[19 20 21 22 23 24 25 26 27 28 29 30 31 31 19 24 31 32];
. w5 ^5 R9 u' Y5 ]  t- ^5 o* sw1=[3 2 600 10 5 10 12 42 70 10 10 62 30 20  104 31 110 20];( t# a6 R" g4 E) N$ _- D% \/ G
a=sparse(ab,bb,w);: p7 s5 w/ x! B
a(24,24)=0;0 U+ b1 B" C2 {2 j% v$ r7 b  K
a=a+a’;$ `& E7 i6 y" k0 J4 e4 ^
a=full(a);7 o- h; e: h2 m
for i=1:24" C: D; Z7 g# ^3 U0 B; \3 L% B) o: f
    for j=1:24
; F- k0 D1 l! S: n+ i. l        if(a(i,j)==0&i~=j)
/ X- J, P1 F1 Z) G0 k& L            a(i,j)=inf;( @  `5 i  N8 \* E8 b* X
        end
6 y8 `/ U$ F! X) l7 ?4 I( |    end& W8 q) V6 l3 c' N) }
end
6 Q. B2 f5 t* ~& Q) R& E0 Z[D,path]=floyd(a);1 x8 [9 A8 }% t6 x# r6 e: G* u
a1=sparse(ab1,bb1,w1);3 m' _) u2 T& b( f% n) @: e
a1(35,35)=0;
3 j1 `; F& r. x. }. i8 j$ Q9 Ja1=a1+(a1)';. O  A+ S7 t) F, i
a1=full(a1);+ W- N7 V3 e! k( ]
for i=1:35
8 A1 G3 I, i2 ?    for j=1:35
* o$ `$ N- U4 O  p5 `        if(a1(i,j)==0&i~=j)
6 T$ D) r( X# F3 V0 f3 h& E            a1(i,j)=inf;
0 [) ~; u$ k% N( k        end
5 f! g$ j: J3 k: i/ n6 @    end
" [5 B8 Y) N, o/ O" ^2 f8 J, {end
! k2 L7 t1 z4 ], Z; u( l* ~[D1,path1]=floyd(a1);6 L: ^* _& a9 ^1 t$ a
上面这一段应该是赋值求最短路了吧,,,但是这赋值是赋得什么值额????有大神的话可以在后面注释一下。。。万分感谢。。。
作者: Araneider    时间: 2012-8-24 17:00
  管订购和运输(2000年网易杯全国大学生数学建模竞赛B题)) b6 u4 F9 G8 B6 Q  o! z- n, `
     要铺设一条的输送天然气的主管道,如图所示。经筛选后可以生产这种主管道钢管的钢厂有。图中粗线表示铁路,单细线表示公路,双线表示要铺设的管道(假设沿管道或者原有公路,或者建有施工公路),圆圈(点) 表示火车站,
5 I: g" e& [. v9 O% i& _  每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。* x2 k. Z) }& E9 n
       为方便计,1km主管道钢管称为1单位钢管。1 z& ?; U/ D( o3 c
    一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂在指定期限内能生产该钢管的最大数量为个单位,钢管出厂销价1单位钢管为万元,如下表:8 T1 R2 X+ l6 y! `, ?* T
I           1           2           3          4          5          6           7
7 L+ w" m( H  \0 D) c) e& N; e' y) ?        800        800        1000        2000        2000        2000        30001 t4 d. G* A" @7 h3 Y+ `. z) `
        160        155        155        160        155        150        160; ^( X' c: ?/ R0 p, f
  一单位钢管的铁路运价如下表:
; `5 ~1 o1 T0 G+ w5 g7 y8 F4 t里程(km)        ≤300        301~350        351~400        401~450        451~500
0 @& S1 |( h( B$ U! G1 o# f运价(万元)        20        23        26        29        32$ E  K! p9 [* _4 A/ Z
里程(km)        501~600        601~700        701~800        801~900        901~1000  m( R( t8 h$ d( Y& x2 J5 v. v3 |
运价(万元)        37        44        50        55        60
/ I: u0 L* F! B& J% D. Y( V/ C  1000km以上每增加1至100km运价增加5万元。
7 s  I2 _7 n" A% k/ ^2 G     公路运输费用为1单位钢管每公里0·1万元(不足整公里部分按整公里计算)。: n$ a8 q8 U$ b; P( \6 `
  钢管可由铁路、公路运往铺设地点(不只是运到点,而是管道全线)。
0 j" z7 [. G3 T. G2 P请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。+ s$ ]% @) `! |1 j
请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。% J- ^  \; @1 R% I# ?
如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情况给出一种解决办法,并对图二按(1)的要求给出模型和结果.
. n& I7 p2 `$ M0 `; U/ g/ C3 {. r; ]& s" |
C:\Documents and Settings\Administrator\桌面
作者: Araneider    时间: 2012-8-24 17:03
C:\Documents and Settings\Administrator\桌面
作者: Araneider    时间: 2012-8-24 17:05
  钢管订购和运输(2000年网易杯全国大学生数学建模竞赛B题), e( q6 D8 k# J' Z) H7 o5 j) Z
     要铺设一条的输送天然气的主管道,如图所示。经筛选后可以生产这种主管道钢管的钢厂有。图中粗线表示铁路,单细线表示公路,双线表示要铺设的管道(假设沿管道或者原有公路,或者建有施工公路),圆圈(点) 表示火车站,
% D3 x1 E5 c" q: Z8 e  每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。
9 o# A) P6 O1 H/ O; c! J6 y" d! T       为方便计,1km主管道钢管称为1单位钢管。
. M2 E* H) J/ X$ l9 v4 ~: M! }6 V    一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂在指定期限内能生产该钢管的最大数量为个单位,钢管出厂销价1单位钢管为万元,如下表:
) r* `. H4 Q$ v, R+ KI           1           2           3          4          5          6           79 q; F" T( h# e, G
Si        800        800        1000        2000        2000        2000        3000
' W- u' M, N, j: h! F  LPi        160        155        155        160        155        150        160( Q" @) v6 h7 q1 O3 e9 M# D' F
  一单位钢管的铁路运价如下表:8 ]/ p: R2 }4 Z/ g
里程(km)        ≤300        301~350        351~400        401~450        451~500$ c- y. b$ a/ z
运价(万元)        20        23        26        29        32
6 O5 d  x0 x1 b9 _$ I" V) L2 a% f里程(km)        501~600        601~700        701~800        801~900        901~1000
  g' M% W3 A, J运价(万元)        37        44        50        55        60
) R) n% V0 x6 o5 _% r  1000km以上每增加1至100km运价增加5万元。* t/ I  k5 n) K9 a
     公路运输费用为1单位钢管每公里0·1万元(不足整公里部分按整公里计算)。' f, f( T) T; i+ \* S: G: u
  钢管可由铁路、公路运往铺设地点(不只是运到点,而是管道全线)。
4 S# h, A, e0 Q5 b, A: S1.请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。7 e5 ]6 K6 I1 m+ G* h& u
2.请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。
. Q  @' E5 U- s+ {8 S* L3.如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情况给出一种解决办法,并对图二按(1)的要求给出模型和结果.
作者: Araneider    时间: 2012-8-24 17:12
上面那就是题目,,下面是给出的图! o3 O7 o% R9 Z+ g

作者: Araneider    时间: 2012-8-24 17:15
快来大神啊,快来大神啊
作者: 467857726de    时间: 2012-8-25 18:18
不错哦  谢谢楼主




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