|
(一)实验目的 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)); 运行结果及结果分析: 见附件 1 h3 Z4 T! |7 [! ?: H& u% `& O
8 q# j" c7 ]* b1 m& ?$ e1 F
( u8 f* C$ u% r- s4 t u7 B$ r& B3 b$ _ e9 `4 ~% g5 [, a2 X8 N* P
( z4 }4 ^3 q! z2 d0 k: h, }# z1 V) Q
]2 k" p" r" G' G# [) m" h$ b M
7 {( k1 B' M2 k$ m6 @5 X
/ G9 w6 N# L$ L3 j2 |) F |