(一)实验目的 1. 运输问题求解的编程实现 2.掌握使用matlab、Lingo、Excel的求解功能求解运输问题,并对结果进行分析。 (二)实验内容 《运筹学》清华三版P98页 3.3题 Lingo程序代码及运行结果(选取部分): <1>3.3(1): 程序代码: model: sets: xiao/1..4/:s; chan/1..3/:h; link(chan,xiao):x,y; endsets data: y=3 7 6 4 2 4 3 2 4 3 8 5; h=5 2 3; s=3 3 2 2; enddata min=@sum(link:x*y); @for(xiao(j)  sum(chan(i):x(i,j))=s(j)); @for(chan(i)  sum(xiao(j):x(i,j))=h(i)); 运行结果及结果分析: 见附件: Objective value: 32.00000 产地1分别将数量为3和2的产品运往销地甲和丁;产地2将数量为2的产品运往销地丙;产地3将数量为3的产品运往销地乙;该运输问题的最小费用为32. <2>3.3(2): 程序代码: model: sets: xiao/1..4/:s; chan/1..3/:h; link(chan,xiao):x,y; endsets data: y=10 6 7 12 16 10 5 9 5 4 10 10; h=4 9 4; s=5 2 4 6; enddata min=@sum(link:x*y); @for(xiao(j)  sum(chan(i):x(i,j))=s(j)); @for(chan(i)  sum(xiao(j):x(i,j))=h(i)); 运行结果及结果分析: 见附件 Objective value: 118.0000 产地1将数量为1、2、1的产品分别运往销地甲、乙、丙;产地将数量为3、6的产品运往销地丙、丁;产地3将数量为4的产品运往销地甲。最小费用为118. <3>3.3(3): 程序代码: model: sets: xiao/1..5/:s; chan/1..4/:h; link(chan,xiao):x,y; endsets data: y=10 20 5 9 10 2 10 8 30 6 1 20 7 10 4 8 6 3 7 5; h=5 6 2 9; s=4 4 6 2 4; enddata min=@sum(link:x*y); @for(xiao(j)  sum(chan(i):x(i,j))=s(j)); @for(chan(i)  sum(xiao(j):x(i,j))<=h(i)); 运行结果及结果分析: 见附件: Objective value: 90.00000 产地1分别将数量为1、2的产品运往销地丙、丁;产地2分别将数量为4、2的产品运往销地甲、戊;产地3将数量为2的产品运往销地戊;产地4分别将数量为4、5的产品运往销地乙、丙;最小运费为90. <4>3.3(4): 程序代码: model: sets: xiao/1..5/:s; chan/1..5/:h; link(chan,xiao):x,y; endsets data: y=10 18 29 13 22 13 10000 21 14 16 0 6 11 3 10000 9 11 23 18 19 24 28 36 30 34; h=100 120 140 80 60; s=100 120 100 60 80; enddata min=@sum(link:x*y); @for(xiao(j)  sum(chan(i):x(i,j))=s(j)); @for(chan(i)  sum(xiao(j):x(i,j))<=h(i)); 运行结果及结果分析: 见附件
. W+ o- Q6 {" v6 s" C
5 i+ W3 F( d6 o% ]4 z+ A: A8 T- [: c
p4 i( {" a4 n( k) [4 ], g$ I
) N& [3 ^; G$ R1 C# A, p- f5 W! u
1 a0 `. f5 o$ r+ h% B- i o( `$ @* a! \8 w# ^
2 t! k0 w6 L! E$ U- h! k+ ^3 \2 d- J5 D4 B0 [3 x
|