用lingo解决运输问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用lingo解决运输问题
Lingo程序代码及运行结果(选取部分):
程序代码:
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.
程序代码:
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.
程序代码:
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.
程序代码:
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));
运行结果及结果分析:
Objective value: 5520.000
产地1将数量为100的产品运往销地甲;产地2分别将数量为40、80的产品运往销地丙、戊;产地3分别将数量为的产品运往销地乙、丙、丁;产地4将数量为80的产品运往销地乙;产地5将数量为20的产品运往销地乙。最小运费为5520.