数学建模社区-数学中国
标题:
求大神解答,关于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 m
function [D,path]=floyd(a)
) |6 W% O0 ]: M% y u
n=size(a,1);
( ?* u ~# _. {0 X, L' A# c
D=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# x
end
5 `/ 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 \
end
9 [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 y
bb1=[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* s
w1=[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 J
a1=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 3000
1 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+ K
I 1 2 3 4 5 6 7
9 q; F" T( h# e, G
Si 800 800 1000 2000 2000 2000 3000
' W- u' M, N, j: h! F L
Pi 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: S
1.请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。
7 e5 ]6 K6 I1 m+ G* h& u
2.请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。
. Q @' E5 U- s+ {8 S* L
3.如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情况给出一种解决办法,并对图二按(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