数学建模社区-数学中国
标题:
求大神解答,关于floyd算法
[打印本页]
作者:
Araneider
时间:
2012-8-24 16:54
标题:
求大神解答,关于floyd算法
这是2000年b题的一个floyd算法matlab程序。。。。。但是有些看不懂啊~~~那个大神指教一下~~~~
) F3 e5 G; \. n9 i; v
- `+ G" @7 T0 X* [
Floyd算法函数在matlab下的M函数文件如下:
5 i) H0 n4 E6 [. x* Y
function [D,path]=floyd(a)
. D0 b+ P" o/ K& m0 Q, C" |* ?
n=size(a,1);
( f; S6 n: k, D9 b
D=a;path=zeros(n,n);
! e, n# `4 J5 I. Z
for i=1:n
$ p1 o; q# [' E( n
for j=1:n
" ]3 B( e' P( n+ u
if D(i,j)~=inf
: c2 U; p3 J3 t: X& ^- X. c$ Z
path(i,j)=j;
/ w. Y: f5 `' h# C4 x: y/ o
end
8 Y h6 a0 e2 _% M* c4 F
end
) x6 O3 N Z# K3 `( c1 u
end
0 q7 G+ f2 e- c8 M W
for k=1:n
8 L" D1 P0 P' o$ X% _/ L
for i=1:n
4 E( r* t8 [9 N# D6 A
for j=1:n
0 o. J, [2 a. C0 R7 z
if D(i,k)+D(k,j)<D(i,j)
9 D% A0 z* M y8 t" V% ^
D(i,j)=D(i,k)+D(k,j);
- I$ u- c" `5 N. q( m: @
path(i,j)=path(i,k);
8 z1 q7 ?3 @. i% r# N
end
1 t2 T2 ^( t. D* `" e6 }! u8 t) h4 s
end
( K" I6 n- t* s
end
1 i' |9 i2 f5 w B* e P
end
3 q# B S5 r- Y. V% u+ ~: E0 R! D
上面是一个函数,这一部分可以看懂,但是下面这个求最小费的问题就看不懂了。。。。
& U& e$ D3 N: d6 c8 |1 ~
ab=[1 1 2 3 4 5 6 7 8 9 10 11 12 13 15 16 17 18 19 20 20 22 23];
9 T2 }0 q# u; P9 @
bb=[ 14 15 15 16 19 18 23 24 10 10 11 15 13 14 16 17 19 19 20 21 22 23 24];
6 w/ T; K0 P/ z: N; w. x7 r8 w- l
w=[20 202 1200 690 690 462 70 30 450 80 1150 1100 306 195 720 520 170 88 160 70 320 160 290];
6 [3 c" {4 r: s4 |& [* [ l- n/ T$ w
ab1=[1 2 4 5 6 7 8 9 10 11 14 15 16 17 18 33 34 35];
! R' \1 J" M1 g: ? [/ h& V* F
bb1=[19 20 21 22 23 24 25 26 27 28 29 30 31 31 19 24 31 32];
$ ^+ w0 N# b* S, ^4 k0 e3 P
w1=[3 2 600 10 5 10 12 42 70 10 10 62 30 20 104 31 110 20];
Y5 e9 |9 k6 r0 R. b
a=sparse(ab,bb,w);
8 a9 a9 N+ P7 W2 u u
a(24,24)=0;
! ~- R2 P) I# U
a=a+a’;
/ s! S0 A. z6 O- { w& n8 P5 Y* n+ v
a=full(a);
, k0 a8 S. `7 ?; j
for i=1:24
8 f9 ^( g4 E6 I. T
for j=1:24
6 G. Y4 Q$ m9 ^& @; i
if(a(i,j)==0&i~=j)
, B7 t/ L4 l% D, n% f+ P0 J7 N* b
a(i,j)=inf;
5 x8 j7 e8 y) o# n* h
end
/ C l' x5 K8 B
end
& n; s8 w+ g. ^. [
end
7 R0 h. Y" l& z" g. v
[D,path]=floyd(a);
) z% p0 o% Y- H0 _+ E" w) B
a1=sparse(ab1,bb1,w1);
* R: t3 ?& j7 q; {6 {" w# [
a1(35,35)=0;
9 g8 K* q% X- G7 _7 O( C
a1=a1+(a1)';
$ ]2 U" n5 y) d& {
a1=full(a1);
; r: X+ C. j9 y) n
for i=1:35
. V3 v5 i! r% x; y, Y
for j=1:35
2 V) U3 o# W' b) a
if(a1(i,j)==0&i~=j)
# i1 K/ _1 `: s; s
a1(i,j)=inf;
, I) c: M9 z" ^6 _1 \
end
( u# J1 ?/ B( _( u i/ }
end
; s4 _) o) T- E* k( v* r
end
. v# h5 {) m* y$ ~1 e. E
[D1,path1]=floyd(a1);
* H% s* _8 t6 C- _! V) O
上面这一段应该是赋值求最短路了吧,,,但是这赋值是赋得什么值额????有大神的话可以在后面注释一下。。。万分感谢。。。
作者:
Araneider
时间:
2012-8-24 17:00
管订购和运输(2000年网易杯全国大学生数学建模竞赛B题)
) }6 ?- W# Q C+ Q" d' j5 H* g9 C
要铺设一条的输送天然气的主管道,如图所示。经筛选后可以生产这种主管道钢管的钢厂有。图中粗线表示铁路,单细线表示公路,双线表示要铺设的管道(假设沿管道或者原有公路,或者建有施工公路),圆圈(点) 表示火车站,
1 K e; y. Y2 _& W) Y/ P" ]6 f
每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。
; E4 c+ R. u( q+ X/ M3 v- }- G1 \
为方便计,1km主管道钢管称为1单位钢管。
" D- U: K5 q) E* Z
一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂在指定期限内能生产该钢管的最大数量为个单位,钢管出厂销价1单位钢管为万元,如下表:
5 h. `5 k) G9 `
I 1 2 3 4 5 6 7
$ P- J8 e h6 d+ B: {9 A
800 800 1000 2000 2000 2000 3000
" ~+ [+ ?: m& p( y1 P
160 155 155 160 155 150 160
P6 S1 g: c; a [" Y
一单位钢管的铁路运价如下表:
5 _- I! ?3 u4 P0 N# O' Y
里程(km) ≤300 301~350 351~400 401~450 451~500
& I3 e9 [2 v( M2 }. S: a- @
运价(万元) 20 23 26 29 32
0 p. [. z4 r- E, O+ X6 ~* `: G3 {' u' ~* y
里程(km) 501~600 601~700 701~800 801~900 901~1000
: k* ~/ D) G9 `1 |
运价(万元) 37 44 50 55 60
* K5 o7 U* Z& |6 p
1000km以上每增加1至100km运价增加5万元。
: y8 |$ D0 ]4 j/ J
公路运输费用为1单位钢管每公里0·1万元(不足整公里部分按整公里计算)。
0 c, A. N; ~- t
钢管可由铁路、公路运往铺设地点(不只是运到点,而是管道全线)。
/ M1 h0 ^1 |1 d7 i) k
请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。
# r* k9 z5 {3 o0 ]! G5 M" s
请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。
" B. \, g9 N# K/ L: t
如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情况给出一种解决办法,并对图二按(1)的要求给出模型和结果.
( ]2 K) r4 p$ s. f T; f
/ O9 k' R) ]# I5 @ n/ {
C:\Documents and Settings\Administrator\桌面
作者:
Araneider
时间:
2012-8-24 17:03
C:\Documents and Settings\Administrator\桌面
作者:
Araneider
时间:
2012-8-24 17:05
钢管订购和运输(2000年网易杯全国大学生数学建模竞赛B题)
* T9 R$ r6 a+ Q1 s
要铺设一条的输送天然气的主管道,如图所示。经筛选后可以生产这种主管道钢管的钢厂有。图中粗线表示铁路,单细线表示公路,双线表示要铺设的管道(假设沿管道或者原有公路,或者建有施工公路),圆圈(点) 表示火车站,
/ t$ e* { g* G6 o
每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。
l) J/ Q# f0 G, C, \- B
为方便计,1km主管道钢管称为1单位钢管。
& ]( ]+ T' i' @4 d
一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂在指定期限内能生产该钢管的最大数量为个单位,钢管出厂销价1单位钢管为万元,如下表:
* |& e( I. P1 J3 @; D! V
I 1 2 3 4 5 6 7
' N3 ]. O6 }9 e7 C4 r8 I( C, |2 V
Si 800 800 1000 2000 2000 2000 3000
( H: z/ k2 L* t3 C/ o$ O7 P
Pi 160 155 155 160 155 150 160
k8 r, w, o- s3 i
一单位钢管的铁路运价如下表:
; }/ i! s8 ?2 C5 x/ u1 ^' M
里程(km) ≤300 301~350 351~400 401~450 451~500
5 v& o9 [" a1 Z1 [9 P1 H
运价(万元) 20 23 26 29 32
. e: e6 U5 \; }
里程(km) 501~600 601~700 701~800 801~900 901~1000
! Q. s7 R$ g$ ?2 x3 O
运价(万元) 37 44 50 55 60
" v/ F5 ?* k$ s8 }( i
1000km以上每增加1至100km运价增加5万元。
2 \3 Y9 p7 C X2 U0 O( W
公路运输费用为1单位钢管每公里0·1万元(不足整公里部分按整公里计算)。
% r9 V6 @% p* Q4 G
钢管可由铁路、公路运往铺设地点(不只是运到点,而是管道全线)。
/ d- j. q4 Q; X; O- y: G
1.请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。
! @- M/ p9 o& n3 D. U
2.请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。
, \$ Q& L J- Z0 h
3.如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情况给出一种解决办法,并对图二按(1)的要求给出模型和结果.
作者:
Araneider
时间:
2012-8-24 17:12
上面那就是题目,,下面是给出的图
5 u% U u! R0 Q' O
作者:
Araneider
时间:
2012-8-24 17:15
快来大神啊,快来大神啊
作者:
467857726de
时间:
2012-8-25 18:18
不错哦 谢谢楼主
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5