数学建模社区-数学中国
标题:
求大神解答,关于floyd算法
[打印本页]
作者:
Araneider
时间:
2012-8-24 16:54
标题:
求大神解答,关于floyd算法
这是2000年b题的一个floyd算法matlab程序。。。。。但是有些看不懂啊~~~那个大神指教一下~~~~
7 x7 J% r/ a$ |, Z% [ a% v& o
6 K( N8 |% o& }! C4 {% N- @
Floyd算法函数在matlab下的M函数文件如下:
/ Z& `* l7 G, ^- Z0 K+ M5 x! g
function [D,path]=floyd(a)
4 s- u0 [7 E! B3 X: C0 O
n=size(a,1);
2 y, k3 n9 G+ u$ G, p
D=a;path=zeros(n,n);
, I, K/ r0 W) L9 F
for 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- M
for k=1:n
1 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: G
end
( 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- b
bb=[ 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 `( q
w=[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; k
ab1=[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) Y
a=sparse(ab,bb,w);
% A, Y/ x3 ~3 @) s) o/ k
a(24,24)=0;
: H" f8 m" m/ H9 F
a=a+a’;
1 z" }& V. ~/ S" n" P# h4 @2 k
a=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
end
0 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" U
a1=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
end
5 @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+ D
C:\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. D
I 1 2 3 4 5 6 7
7 o( g0 K: G2 D* y, O& R' {$ R
Si 800 800 1000 2000 2000 2000 3000
6 J" A3 J/ ~# T" R/ P
Pi 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$ _: D
2.请就(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