数学建模社区-数学中国

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

作者: Araneider    时间: 2012-8-24 16:54
标题: 求大神解答,关于floyd算法
这是2000年b题的一个floyd算法matlab程序。。。。。但是有些看不懂啊~~~那个大神指教一下~~~~
; O8 X7 X1 q; O7 Q! p$ L! i. i" z& X& ]" D# B* F; P0 Y& {4 `
Floyd算法函数在matlab下的M函数文件如下:& W* ^; Y3 y' D4 u
function [D,path]=floyd(a)7 x" `7 Q5 x8 _' N0 K
n=size(a,1);
( z, U. ~, V2 fD=a;path=zeros(n,n);$ P  r% p# \" ~$ A6 l$ A
for i=1:n
1 _& l0 k6 H+ M, |' A    for j=1:n
2 ^& y6 m& F& C8 t        if D(i,j)~=inf
! _/ y& j1 `8 N6 F* D1 u            path(i,j)=j;* X! b7 c9 C$ v1 U8 Z- Y) Q/ K5 H
        end
, M, G4 u7 }3 m& ^2 F; i    end" v6 `( T! Q* {- J! X. x, I
end
. u0 C$ j' E  A" e# _for k=1:n
4 J- U) e) `1 c    for i=1:n
% |; @2 k. w- O8 X$ }        for j=1:n
& ~/ L, B7 L9 C2 u$ }# Q$ z$ V) S            if D(i,k)+D(k,j)<D(i,j). M1 \( U+ o7 a2 Z: f- c
                D(i,j)=D(i,k)+D(k,j);' H7 d% ?2 |; B, i; T$ j8 n
                path(i,j)=path(i,k);! l$ Q7 a  O8 K7 `  A# j- O. u
            end+ E- Y3 u. ~# T$ `; n
        end
+ P+ P& l0 c" s) u. V* W    end' E: p5 D8 |, Q1 O6 z" i& }
end6 z* d/ Z5 E. v# C
上面是一个函数,这一部分可以看懂,但是下面这个求最小费的问题就看不懂了。。。。2 D+ v+ @5 Q  B9 z& `9 l1 I
ab=[1 1 2 3 4 5 6 7 8 9 10 11 12 13 15 16 17 18 19 20  20 22 23];4 g! l3 V! P# C. G& I" Q- 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];  A, Y0 m& a6 z) z5 c: e9 R+ i
w=[20 202 1200 690  690 462 70 30 450 80 1150 1100 306 195 720 520 170 88 160 70 320 160 290];
; Q% h0 Y# N* I2 J% `, G+ Iab1=[1 2 4 5 6 7 8 9 10 11 14 15 16 17 18 33 34 35];& a; Z* ]1 y* m; I# Z
bb1=[19 20 21 22 23 24 25 26 27 28 29 30 31 31 19 24 31 32];. i" b; p$ A1 h9 N1 R
w1=[3 2 600 10 5 10 12 42 70 10 10 62 30 20  104 31 110 20];
, J! O; J* `7 b. g1 ?& Va=sparse(ab,bb,w);) F( j8 y0 G. c7 P* \6 e. b$ t" u
a(24,24)=0;* b' U$ n+ _6 m$ L
a=a+a’;
5 f/ i# e$ u# G0 Aa=full(a);6 l2 L% A( F% n  p/ z+ R
for i=1:24, {5 M* K7 v, u
    for j=1:24
7 w5 v/ l) Z, T        if(a(i,j)==0&i~=j)
  i  l" n4 i. d) j            a(i,j)=inf;
/ ~; O% i" h& q& |        end
9 ~' ?! b3 x' u! x& ]; P    end  S' p3 \' `0 u( V  s
end/ {# o5 Q0 d' u: F2 F- z" U. m2 r8 t
[D,path]=floyd(a);  z- g1 y' k' W- J" Y. ]
a1=sparse(ab1,bb1,w1);
' [0 K) b8 G# ]9 k* y" P9 N9 T0 {a1(35,35)=0;: `/ B) v+ T* l! s) u: e9 T. H4 E. u
a1=a1+(a1)';/ X+ d9 Z) g- `0 n" l- n4 [
a1=full(a1);/ C( ]- y4 [; a- ?9 V
for i=1:35
3 _. e6 g+ e* [4 J9 I; |# I4 I+ C) j' J    for j=1:35% e1 I# v8 M4 p- f
        if(a1(i,j)==0&i~=j)
' }  R" b" R- j4 L$ U            a1(i,j)=inf;
# h# q0 ^3 K: E  l4 }/ z        end
8 N# H. c: e3 H- K3 T" S/ U( }1 q8 e    end! R* _4 a& K2 y' P/ ^* s- f, A
end
9 M$ K8 b' U% L2 p[D1,path1]=floyd(a1);. ~8 Z# M) _/ G* I* b, C& R' f. S- O
上面这一段应该是赋值求最短路了吧,,,但是这赋值是赋得什么值额????有大神的话可以在后面注释一下。。。万分感谢。。。
作者: Araneider    时间: 2012-8-24 17:00
  管订购和运输(2000年网易杯全国大学生数学建模竞赛B题)7 T  b1 |* Z/ |+ O: b& V
     要铺设一条的输送天然气的主管道,如图所示。经筛选后可以生产这种主管道钢管的钢厂有。图中粗线表示铁路,单细线表示公路,双线表示要铺设的管道(假设沿管道或者原有公路,或者建有施工公路),圆圈(点) 表示火车站,
/ q3 e6 `; z) y: o  每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。
* i5 {% ?' t" T+ ~& b) P7 e2 X' M       为方便计,1km主管道钢管称为1单位钢管。- U  D/ l% {9 i8 \, r
    一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂在指定期限内能生产该钢管的最大数量为个单位,钢管出厂销价1单位钢管为万元,如下表:- a* ?, A3 w2 p7 [3 X9 Y
I           1           2           3          4          5          6           71 \- F; J! I- {/ A6 Q
        800        800        1000        2000        2000        2000        3000/ G$ c1 M& L4 J; [& O
        160        155        155        160        155        150        160
* }5 B1 P# s2 q% U: L3 d9 g) a  一单位钢管的铁路运价如下表:  N5 i9 }) F% u
里程(km)        ≤300        301~350        351~400        401~450        451~500% a* f0 x. l: N7 e4 O. z1 O  J
运价(万元)        20        23        26        29        32- _! _) @7 Y& |: s* g# ]0 d9 Q
里程(km)        501~600        601~700        701~800        801~900        901~1000
0 g9 g8 A& ?3 M: y运价(万元)        37        44        50        55        60. D8 D& y- R3 u- o  ~: v
  1000km以上每增加1至100km运价增加5万元。9 c; k4 L! ~2 k
     公路运输费用为1单位钢管每公里0·1万元(不足整公里部分按整公里计算)。% M# f# w. h- J% z
  钢管可由铁路、公路运往铺设地点(不只是运到点,而是管道全线)。
" r. C. w$ N; u6 ~1 N' l7 |) p请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。
* ~, o3 w. P, o" d* K请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。
  p* T# g5 ~# q' j: M7 J如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情况给出一种解决办法,并对图二按(1)的要求给出模型和结果.
4 m* R) N# ?& W0 v  b4 m; O2 O0 m, k3 h  X% H! l
C:\Documents and Settings\Administrator\桌面
作者: Araneider    时间: 2012-8-24 17:03
C:\Documents and Settings\Administrator\桌面
作者: Araneider    时间: 2012-8-24 17:05
  钢管订购和运输(2000年网易杯全国大学生数学建模竞赛B题)
( f) B- v( {5 D; W5 b% d6 k+ x/ _     要铺设一条的输送天然气的主管道,如图所示。经筛选后可以生产这种主管道钢管的钢厂有。图中粗线表示铁路,单细线表示公路,双线表示要铺设的管道(假设沿管道或者原有公路,或者建有施工公路),圆圈(点) 表示火车站,
7 R. t5 o/ ^5 U- {6 q3 q- }$ \4 S5 l2 K  每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。  ~$ f9 j" f8 V6 @) ^6 G- ~# @
       为方便计,1km主管道钢管称为1单位钢管。! t9 V/ a8 e, g
    一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂在指定期限内能生产该钢管的最大数量为个单位,钢管出厂销价1单位钢管为万元,如下表:
# Z* t) ]9 I9 S9 M, z; d/ zI           1           2           3          4          5          6           7& ]# M5 G. S7 q7 Q  ?
Si        800        800        1000        2000        2000        2000        3000* i# _; ~7 O* w" {, w
Pi        160        155        155        160        155        150        160
" M/ {) ^0 a" ^. m: [# D( K% j  y  一单位钢管的铁路运价如下表:
1 ?$ W6 P8 U  ~: ^里程(km)        ≤300        301~350        351~400        401~450        451~500
& J% K  i/ u# E$ f运价(万元)        20        23        26        29        32
, A5 T0 b  U* ~, I. x! Z" }里程(km)        501~600        601~700        701~800        801~900        901~10001 W3 L: @4 S9 k7 I; t7 O5 y' c
运价(万元)        37        44        50        55        60+ i4 X+ j" p9 c8 B- S
  1000km以上每增加1至100km运价增加5万元。
$ y) b1 p1 t  Q* B( h     公路运输费用为1单位钢管每公里0·1万元(不足整公里部分按整公里计算)。
2 J9 t. q! h6 u. G1 W+ K  钢管可由铁路、公路运往铺设地点(不只是运到点,而是管道全线)。
  e/ ^& h/ D+ H( |, e1.请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。
( a+ P7 l9 p* P6 b& N2.请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。$ U) H* w2 Q# e' a
3.如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情况给出一种解决办法,并对图二按(1)的要求给出模型和结果.
作者: Araneider    时间: 2012-8-24 17:12
上面那就是题目,,下面是给出的图. F! Z8 P0 j/ X

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




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