数学建模社区-数学中国
标题:
求大神解答,关于floyd算法
[打印本页]
作者:
Araneider
时间:
2012-8-24 16:54
标题:
求大神解答,关于floyd算法
这是2000年b题的一个floyd算法matlab程序。。。。。但是有些看不懂啊~~~那个大神指教一下~~~~
5 K3 Y2 T; [6 [/ g4 E
' G5 a5 p6 o" |, Y4 V. l
Floyd算法函数在matlab下的M函数文件如下:
3 t% b# A% d- K F" q: I" b1 g4 \
function [D,path]=floyd(a)
$ W. D) R8 d- x; d" `- W2 y. c+ n
n=size(a,1);
( J8 ^. t g% o0 q2 z
D=a;path=zeros(n,n);
" \) g. O |9 n' R# I
for i=1:n
$ `7 M, Z g' j3 R; C
for j=1:n
7 u! R/ n& P9 C0 Q+ K: {6 E! T) |+ b
if D(i,j)~=inf
. a% R& u1 ~( A9 [
path(i,j)=j;
9 a Z0 x" w4 l* F
end
( r" n) |- t9 W% { _
end
! |& |2 \" Q7 i/ F% W
end
2 E, I3 A: K$ ?4 E1 O# B
for k=1:n
( b' L" B+ A+ i& g/ [* G
for i=1:n
2 B1 R# E; x& |& k9 n
for j=1:n
$ H3 S5 H2 P1 @7 C9 x/ C3 U% e
if D(i,k)+D(k,j)<D(i,j)
2 F: M* |9 H! h( U0 C5 ^" U, U* x
D(i,j)=D(i,k)+D(k,j);
' `+ S7 t, n9 }* t5 a
path(i,j)=path(i,k);
6 Z& t0 v- E' i( G- V
end
' O4 w1 y1 E# i1 _% c* u
end
( \$ m7 l; b3 h5 \2 s5 K0 a
end
; r' G) x3 {6 K$ a6 H$ ^
end
5 `$ Q1 ^9 f0 M3 Z
上面是一个函数,这一部分可以看懂,但是下面这个求最小费的问题就看不懂了。。。。
9 `+ T' r( T$ N: E. p# I1 \
ab=[1 1 2 3 4 5 6 7 8 9 10 11 12 13 15 16 17 18 19 20 20 22 23];
$ ?6 C2 a' T1 ^" y
bb=[ 14 15 15 16 19 18 23 24 10 10 11 15 13 14 16 17 19 19 20 21 22 23 24];
0 d- z4 _* v3 k1 [4 j* N* @+ D
w=[20 202 1200 690 690 462 70 30 450 80 1150 1100 306 195 720 520 170 88 160 70 320 160 290];
! w& p: b9 y$ L3 M' r4 f" Y
ab1=[1 2 4 5 6 7 8 9 10 11 14 15 16 17 18 33 34 35];
( C( z# W) Q1 l
bb1=[19 20 21 22 23 24 25 26 27 28 29 30 31 31 19 24 31 32];
4 J, [' X* @; A2 t( r% W0 `( n$ x; L
w1=[3 2 600 10 5 10 12 42 70 10 10 62 30 20 104 31 110 20];
( h7 U: ^3 p' Q3 t. @6 M9 }) g# |
a=sparse(ab,bb,w);
: \. g1 |4 S0 t. O6 b6 Z
a(24,24)=0;
( A2 a$ u/ v5 ]* h/ c- x
a=a+a’;
" H) ~, _2 \6 a5 [9 w, ?1 G/ W
a=full(a);
# t1 ]; O3 U, ]6 B
for i=1:24
. }" [" \) i, J
for j=1:24
: a3 b/ l+ z% ? i* g) D, A
if(a(i,j)==0&i~=j)
* W: I+ N5 Q' j0 \) f' B, u
a(i,j)=inf;
- X& r. q9 B% i5 g
end
/ B3 V, {* X* E/ U3 \5 u
end
% q% M1 K/ U' x0 g
end
6 A3 J3 [- s& p* A b( \
[D,path]=floyd(a);
) \+ j! Z. e+ N) B! k
a1=sparse(ab1,bb1,w1);
) _' W9 Y3 t: N$ M
a1(35,35)=0;
9 P$ q( _) O w- Y, I
a1=a1+(a1)';
9 ?0 Q( B4 w* c0 s
a1=full(a1);
6 @) t" b7 w: a/ \! \2 C1 M
for i=1:35
' N2 M' ?9 @. z9 h! Y* J# v
for j=1:35
9 ~4 ]3 F% k, V! E* C
if(a1(i,j)==0&i~=j)
( U7 a0 l/ v1 | s
a1(i,j)=inf;
" L2 Z9 H# U0 ?) J& A" \4 |: X* I) y
end
! v3 C# Y6 ^0 }/ `; s# j# O& k
end
8 t) m8 T3 T" {* i& _9 S
end
4 _' Z: _ e: P
[D1,path1]=floyd(a1);
) A! s% h* l! h
上面这一段应该是赋值求最短路了吧,,,但是这赋值是赋得什么值额????有大神的话可以在后面注释一下。。。万分感谢。。。
作者:
Araneider
时间:
2012-8-24 17:00
管订购和运输(2000年网易杯全国大学生数学建模竞赛B题)
! e, I$ s1 `3 R4 C
要铺设一条的输送天然气的主管道,如图所示。经筛选后可以生产这种主管道钢管的钢厂有。图中粗线表示铁路,单细线表示公路,双线表示要铺设的管道(假设沿管道或者原有公路,或者建有施工公路),圆圈(点) 表示火车站,
& }. [) p) O' e' q' I
每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。
& m4 |. F; ]' H- u" r6 D2 S
为方便计,1km主管道钢管称为1单位钢管。
1 R+ z4 O' _) _4 X" F2 D
一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂在指定期限内能生产该钢管的最大数量为个单位,钢管出厂销价1单位钢管为万元,如下表:
! u% C+ J& e+ z1 M5 {- L' I5 g
I 1 2 3 4 5 6 7
# d- K# P, f0 b/ D: x. n- R
800 800 1000 2000 2000 2000 3000
- n& D6 Z) z$ m
160 155 155 160 155 150 160
I, L% h! s5 `; J( v4 J2 _
一单位钢管的铁路运价如下表:
" Y' E, z1 M0 K3 e( t
里程(km) ≤300 301~350 351~400 401~450 451~500
$ K2 e& r& i) `, d. t8 x& B
运价(万元) 20 23 26 29 32
1 {! |9 m9 L6 S$ l
里程(km) 501~600 601~700 701~800 801~900 901~1000
# E* z( ?: ~& R
运价(万元) 37 44 50 55 60
! c7 c1 ?+ M4 P8 t4 U5 x
1000km以上每增加1至100km运价增加5万元。
$ ?# M% a4 e* T& a% R; |9 C
公路运输费用为1单位钢管每公里0·1万元(不足整公里部分按整公里计算)。
; |0 u; P# l. u3 l2 a$ H
钢管可由铁路、公路运往铺设地点(不只是运到点,而是管道全线)。
7 M2 a$ S- \$ }, V! p5 ^
请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。
/ |, C9 t e8 B% b+ l
请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。
& }2 q5 f: s. K8 I2 {
如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情况给出一种解决办法,并对图二按(1)的要求给出模型和结果.
: w1 Z6 ^' m9 k& Y( m/ l7 q
8 m* i) e0 f! h2 s W
C:\Documents and Settings\Administrator\桌面
作者:
Araneider
时间:
2012-8-24 17:03
C:\Documents and Settings\Administrator\桌面
作者:
Araneider
时间:
2012-8-24 17:05
钢管订购和运输(2000年网易杯全国大学生数学建模竞赛B题)
1 k% g! M0 D. L/ t- y4 G1 b
要铺设一条的输送天然气的主管道,如图所示。经筛选后可以生产这种主管道钢管的钢厂有。图中粗线表示铁路,单细线表示公路,双线表示要铺设的管道(假设沿管道或者原有公路,或者建有施工公路),圆圈(点) 表示火车站,
; C# w9 G# ~; R; u% L
每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。
: b+ ?" J4 r4 U) n) j! J. O
为方便计,1km主管道钢管称为1单位钢管。
2 x W# W2 m) q+ |) @
一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂在指定期限内能生产该钢管的最大数量为个单位,钢管出厂销价1单位钢管为万元,如下表:
8 D- K* R7 [1 F9 y3 q/ [% {
I 1 2 3 4 5 6 7
, v' ]8 v4 O" A, C
Si 800 800 1000 2000 2000 2000 3000
+ U0 L3 E5 W) r1 Z, }5 ^9 I
Pi 160 155 155 160 155 150 160
8 r+ m! c3 u6 C. J
一单位钢管的铁路运价如下表:
- u7 `! m9 z1 p
里程(km) ≤300 301~350 351~400 401~450 451~500
3 N( T. ]$ X, J) P0 d
运价(万元) 20 23 26 29 32
8 y$ q8 }- F0 S1 p
里程(km) 501~600 601~700 701~800 801~900 901~1000
1 j2 T! N0 t* @# o9 l
运价(万元) 37 44 50 55 60
) g+ N) e& V1 O8 |$ E
1000km以上每增加1至100km运价增加5万元。
1 z1 j% \: X: C4 _# x; h* P
公路运输费用为1单位钢管每公里0·1万元(不足整公里部分按整公里计算)。
* ?! ?- g% t2 P
钢管可由铁路、公路运往铺设地点(不只是运到点,而是管道全线)。
; R# h( v3 V# A
1.请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。
+ c! _3 J" n5 M: N" [. c
2.请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。
3 {) K+ u/ y) h# L
3.如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情况给出一种解决办法,并对图二按(1)的要求给出模型和结果.
作者:
Araneider
时间:
2012-8-24 17:12
上面那就是题目,,下面是给出的图
, q1 p$ `: ~$ g7 p; {
作者:
Araneider
时间:
2012-8-24 17:15
快来大神啊,快来大神啊
作者:
467857726de
时间:
2012-8-25 18:18
不错哦 谢谢楼主
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5