LINGO求解运输问题
- 格式:doc
- 大小:68.00 KB
- 文档页数:3
一.实验目的
1、学会使用LINGO 软件求解运输问题的步骤与方法。
2、掌握使用LINGO 对运输问题的求解功能,并对结果进行分析。
二.实验内容
1.已知某企业有甲、乙、丙三个分厂生产一种产品,其产量分别为7、9、7个单位,需运往A 、B 、C 、D 四个门市部,各门市部需要量分别为3、5、7、8个单位。已知单位运价如下表。试确定运输计划使总运费最少。
2.现在要在五个工人中确定四个人来分别完成四项工作中的一项工作。由于每个工人的技术特长不同,他们完成各项工作所需的工时也不同。每个工人完成各项工作所需工时如下表所示,试找出一个工作分配方案,使总工时最小。
三. 模型建立
1.由题设知,总产量为:7+9+7=23个单位,总销量为:3+5+7+8=23个单位,所以这是一个产销平衡的运输问题。
设)4,3,2,1;3,2,1(==j i x ij 代表从第i 个产地运往第j 个销地的数量,z 为总运费。i a 表示第i 个产地的产量,j b 表示第j 个销地的销量ij c 表示从第i 个产地运往第j 个销地的单位产
品运输费用。则该问题的数学模型为:
3
4
1
1
4
13
1
max 0,1,2,3;1,2,3,4ij ij
i j ij i j ij j i ij Z c x x a x b x i j =====⎧=⎪⎪⎪=⎨⎪⎪≥==⎪⎩∑
∑
∑∑
2. 设0-1变量,1,0ij i x i ⎧=⎨⎩当第个人完成某j 项工作
,当第个人不完成某j 项工作
则该问题的数学模型为:
5
4
115
141
min 1,1,01ij ij
i j ij i ij j ij Z c x x j x i x i j =====⎧= =1,2,3,4⎪⎪⎪
= = 1,2,3,4,5⎨⎪⎪= =1,2,3,4,5;=1,2,3,4⎪⎩
∑∑∑∑或,
四. 模型求解(含经调试后正确的源程序)
1、编写程序1-1.m 如下:
model : sets :
warehouses/wh1..wh3/: capacity; vendors/v1..v4/: demand;
links(warehouses,vendors): cost, volume; endsets data :
capacity=7 9 7; demand=3 5 7 8; cost= 12 13 10 11 10 12 14 10 14 11 15 12; enddata
min =@sum (links(I,J): cost(I,J)*volume(I,J));
@for(vendors(J):
@sum(warehouses(I): volume(I,J))=demand(J));
@for(warehouses(I):
@sum(vendors(J): volume(I,J))<=capacity(I));
end
2、编写程序2-1.m如下:
model:
sets:
workers/w1..w5/;
jobs/j1..j4/;
links(workers,jobs): cost,volume;
Endsets
data:
cost=9 4 3 7
4 6
5 6
5 4 7 5
7 5 2 3
10 6 7 4;
enddata
min=@sum(links: cost*volume);
@for(workers(I): @sum(jobs(J): volume(I,J))<=1);
@for(jobs(J): @sum(workers(I): volume(I,J))=1);
@for(links(i,j): @bin(volume(i,j)));
End
五.结果分析
最优调运方案为:甲→C:7单位;甲→D:0单位;乙→A:3单位;
乙→D:6单位;丙→B:5单位;丙→D:2单位。最少总运费为:239。
最优指派方案为:Ⅰ→C;Ⅱ→A;Ⅲ→B;Ⅳ→D。
最小总共时为:14。
六.实验总结