数学建模社区-数学中国

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

作者: Araneider    时间: 2012-8-24 16:54
标题: 求大神解答,关于floyd算法
这是2000年b题的一个floyd算法matlab程序。。。。。但是有些看不懂啊~~~那个大神指教一下~~~~
7 x7 J% r/ a$ |, Z% [  a% v& o6 K( N8 |% o& }! C4 {% N- @
Floyd算法函数在matlab下的M函数文件如下:
/ Z& `* l7 G, ^- Z0 K+ M5 x! gfunction [D,path]=floyd(a)
4 s- u0 [7 E! B3 X: C0 On=size(a,1);
2 y, k3 n9 G+ u$ G, pD=a;path=zeros(n,n);
, I, K/ r0 W) L9 Ffor i=1:n
& J" ?7 m& K! v; T: r    for j=1:n
/ \( j: V0 C8 S+ L( o4 T        if D(i,j)~=inf$ h) E" h0 q* O" i
            path(i,j)=j;
/ M/ {* O4 c) `8 Z3 F# h" i        end
7 G% Y4 [! q3 v8 a) R, k    end- x3 S, S$ @8 M
end
5 p$ I3 T9 e" W2 C- Mfor k=1:n1 i( C$ B6 t$ B. B0 F7 t, h
    for i=1:n
  Y& L1 l* f2 R9 {* o3 D        for j=1:n$ D* B" c9 i& T  f0 T. s& O
            if D(i,k)+D(k,j)<D(i,j); K2 `/ w2 H% ]
                D(i,j)=D(i,k)+D(k,j);
6 W: [$ }5 z! Q. @" I+ i9 q* d                path(i,j)=path(i,k);' Q5 r. Z& z. e1 T: {4 S3 @9 e
            end
( d7 h* W3 Q; B0 v& t* J+ R- r        end
5 _( ]& Z! b7 }! ?# H, \, }! T    end
1 E" I5 y: ^" p+ c8 U8 o6 g: Gend
( m9 d4 X: Y: R. H) l上面是一个函数,这一部分可以看懂,但是下面这个求最小费的问题就看不懂了。。。。
" M. b( w9 b; G' @4 ?9 Z, E. d$ M4 [ab=[1 1 2 3 4 5 6 7 8 9 10 11 12 13 15 16 17 18 19 20  20 22 23];
  H8 @! {0 C4 J- ?9 m- bbb=[ 14 15 15 16 19 18 23 24 10 10 11 15 13 14 16 17 19 19 20 21 22 23 24];
4 d+ e* t4 `( qw=[20 202 1200 690  690 462 70 30 450 80 1150 1100 306 195 720 520 170 88 160 70 320 160 290];
& G) l- }; S; kab1=[1 2 4 5 6 7 8 9 10 11 14 15 16 17 18 33 34 35];& E" w" }6 z) Q- a1 {7 E1 R
bb1=[19 20 21 22 23 24 25 26 27 28 29 30 31 31 19 24 31 32];
; |# ?5 U8 z( K! X8 R" }w1=[3 2 600 10 5 10 12 42 70 10 10 62 30 20  104 31 110 20];
8 O* D* I- x* r: O) Ya=sparse(ab,bb,w);
% A, Y/ x3 ~3 @) s) o/ ka(24,24)=0;
: H" f8 m" m/ H9 Fa=a+a’;
1 z" }& V. ~/ S" n" P# h4 @2 ka=full(a);
2 L2 W% B/ \( k7 {for i=1:24
# g1 Y# v% R! g    for j=1:24
  m3 ~" G* B9 S9 p5 E        if(a(i,j)==0&i~=j)9 `* y- Q) T. c
            a(i,j)=inf;
) w" i$ K9 L! b; f% e        end
9 h' R2 n; u+ K3 T! U    end0 n+ x6 ^7 c* |- ~6 n7 V+ k
end
) ^$ |8 O/ A& G# b3 i: }4 z6 a[D,path]=floyd(a);5 j5 _: v7 r3 c6 Q' x' G6 O; r8 d
a1=sparse(ab1,bb1,w1);+ k4 L: ^( N: R
a1(35,35)=0;3 d7 r* K% n8 z9 r/ e* i7 \" l+ V
a1=a1+(a1)';
. O1 P. F9 j" Ua1=full(a1);$ p; p. I9 y  B4 \2 e
for i=1:35
2 l! i' b0 G8 V! E    for j=1:35" P4 [# G. y3 s
        if(a1(i,j)==0&i~=j)3 j" Q  }0 x  R5 I$ z8 Q
            a1(i,j)=inf;8 c, ^) b- L6 d3 x
        end5 @9 Z( B8 O$ r/ u6 \: n
    end- k8 R5 t8 U; [
end
4 V2 k* e0 p6 s% [3 f8 w- F* N7 p[D1,path1]=floyd(a1);6 _7 c; }/ R3 j  j
上面这一段应该是赋值求最短路了吧,,,但是这赋值是赋得什么值额????有大神的话可以在后面注释一下。。。万分感谢。。。
作者: Araneider    时间: 2012-8-24 17:00
  管订购和运输(2000年网易杯全国大学生数学建模竞赛B题)
5 W- o+ n; a  s     要铺设一条的输送天然气的主管道,如图所示。经筛选后可以生产这种主管道钢管的钢厂有。图中粗线表示铁路,单细线表示公路,双线表示要铺设的管道(假设沿管道或者原有公路,或者建有施工公路),圆圈(点) 表示火车站,
5 P, ]3 q' R! D# ^  X  每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。
' e9 i5 W  ?9 V5 \: |2 O3 T# u  \       为方便计,1km主管道钢管称为1单位钢管。9 z) O- u9 ], n! m' E9 p
    一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂在指定期限内能生产该钢管的最大数量为个单位,钢管出厂销价1单位钢管为万元,如下表:; R7 k7 a# x) f$ Y! ^% N- M0 b
I           1           2           3          4          5          6           7
! b: @* v: P, e. m" c/ J* l" V        800        800        1000        2000        2000        2000        3000
/ x  g. H7 L; ^        160        155        155        160        155        150        160
; k: U# d4 ]2 r. b( L  一单位钢管的铁路运价如下表:
$ \5 _1 d; E; A# T" Y" o  K4 g8 [里程(km)        ≤300        301~350        351~400        401~450        451~500
* H5 d1 G' b8 ^, Z  }, x) J4 R, q运价(万元)        20        23        26        29        32* x& \6 O" l$ t% m) d0 L
里程(km)        501~600        601~700        701~800        801~900        901~1000
+ b; [$ m+ h& C% l7 T1 Z; g运价(万元)        37        44        50        55        60
$ [% @8 ?, T$ H  1000km以上每增加1至100km运价增加5万元。
3 N* A7 _* J( W: V7 C     公路运输费用为1单位钢管每公里0·1万元(不足整公里部分按整公里计算)。
8 O) d4 \: X+ I' ^2 O: Q( ]2 H! I- c# q  钢管可由铁路、公路运往铺设地点(不只是运到点,而是管道全线)。
. C& ]; ^5 Q9 E1 a" z( g3 k请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。$ m; j7 q# q9 d7 ?" C8 f
请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。& O1 u* @% G; z
如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情况给出一种解决办法,并对图二按(1)的要求给出模型和结果.
. E' k% A. i7 f, {) R6 E# U
" J# C: B' M: ^9 `; u+ DC:\Documents and Settings\Administrator\桌面
作者: Araneider    时间: 2012-8-24 17:03
C:\Documents and Settings\Administrator\桌面
作者: Araneider    时间: 2012-8-24 17:05
  钢管订购和运输(2000年网易杯全国大学生数学建模竞赛B题)
. y: R' N) u! B3 [& K/ E     要铺设一条的输送天然气的主管道,如图所示。经筛选后可以生产这种主管道钢管的钢厂有。图中粗线表示铁路,单细线表示公路,双线表示要铺设的管道(假设沿管道或者原有公路,或者建有施工公路),圆圈(点) 表示火车站,
  h& b0 }0 d6 v  每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。# K5 q1 h3 A# I7 a. h" t
       为方便计,1km主管道钢管称为1单位钢管。/ F6 Y0 Y: h/ \  ]& w# `- f
    一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂在指定期限内能生产该钢管的最大数量为个单位,钢管出厂销价1单位钢管为万元,如下表:
9 N; G  ?6 c& I+ T. DI           1           2           3          4          5          6           7
7 o( g0 K: G2 D* y, O& R' {$ RSi        800        800        1000        2000        2000        2000        3000
6 J" A3 J/ ~# T" R/ PPi        160        155        155        160        155        150        160& ]! B3 O6 h% f: G4 F' e/ `5 t3 |. {
  一单位钢管的铁路运价如下表:
8 X) n; ^0 V+ X里程(km)        ≤300        301~350        351~400        401~450        451~500
) L2 O) x* r/ j' X运价(万元)        20        23        26        29        32
% i5 i9 G: ~" T里程(km)        501~600        601~700        701~800        801~900        901~1000. M: s6 y& J. e$ {% Z: ]2 w! p
运价(万元)        37        44        50        55        60, ~2 ?1 H$ T$ m' Z9 f
  1000km以上每增加1至100km运价增加5万元。
) r2 A. V) \* a6 Q6 R     公路运输费用为1单位钢管每公里0·1万元(不足整公里部分按整公里计算)。
* W% v$ s) B& a' J7 r# J+ q% B  钢管可由铁路、公路运往铺设地点(不只是运到点,而是管道全线)。' j/ ^- N* v( m; x
1.请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。
9 P! r' m+ q3 N0 {$ X) F  P$ _: D2.请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。4 Y" f0 B: i1 T) j
3.如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情况给出一种解决办法,并对图二按(1)的要求给出模型和结果.
作者: Araneider    时间: 2012-8-24 17:12
上面那就是题目,,下面是给出的图
- ~! J; j" O  r" \& i
作者: Araneider    时间: 2012-8-24 17:15
快来大神啊,快来大神啊
作者: 467857726de    时间: 2012-8-25 18:18
不错哦  谢谢楼主




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