运筹学实例分析及lingo求解.docx
- 文档编号:30598231
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:21
- 大小:101.77KB
运筹学实例分析及lingo求解.docx
《运筹学实例分析及lingo求解.docx》由会员分享,可在线阅读,更多相关《运筹学实例分析及lingo求解.docx(21页珍藏版)》请在冰豆网上搜索。
运筹学实例分析及lingo求解
运筹学实例分析及lingo求解
一、线性规划
某公司有6个仓库,库存货物总数分别为60、55、51、43、41、52,现有8个客户各要一批货,数量分别为35,37,22,32,41,32,43,38。
各供货仓库到8个客户处的单位货物运输价见表
V1
V2
V3
V4
V5
V6
V7
V8
W1
6
2
6
7
4
2
5
8
W2
4
9
5
3
8
5
8
2
W3
5
2
1
9
7
4
3
3
W4
7
6
7
3
9
2
7
1
W5
2
3
9
5
7
2
6
5
W6
5
5
2
2
8
1
4
3
试确定各仓库到各客户处的货物调运数量,使总的运输费用最小。
解:
设
表示从第
个仓库到第
个客户的货物运量。
表示从第
个仓库到第
个客户的单位货物运价,
表示第
个仓库的最大供货量,
表示第
个客户的订货量。
目标函数是使总运输费用最少,约束条件有三个:
1、各仓库运出的货物总量不超过其库存数2、各客户收到的货物总量等于其订货数量3、非负约束
数学模型为:
编程如下:
model:
Sets:
Wh/w1..w6/:
ai;
Vd/v1..v8/:
dj;
links(wh,vd):
c,x;
endsets
Data:
ai=60,55,51,43,41,52;
dj=35,37,22,32,41,32,43,38;
c=6,2,6,7,4,2,5,9
4,9,5,3,8,5,8,2
5,2,1,9,7,4,3,3
7,6,7,3,9,2,7,1
2,3,9,5,7,2,6,5
5,5,2,2,8,1,4,3;
Enddata
Min=@sum(links(i,j):
c(i,j)*x(i,j));
@for(wh(i):
@sum(vd(j):
x(i,j))<=ai(i));
@for(vd(j):
@sum(wh(i):
x(i,j))=dj(j));
end
Globaloptimalsolutionfound.
Objectivevalue:
664.0000
Totalsolveriterations:
0
VariableValueReducedCost
AI(W1)60.000000.000000
AI(W2)55.000000.000000
AI(W3)51.000000.000000
AI(W4)43.000000.000000
AI(W5)41.000000.000000
AI(W6)52.000000.000000
DJ(V1)35.000000.000000
DJ(V2)37.000000.000000
DJ(V3)22.000000.000000
DJ(V4)32.000000.000000
DJ(V5)41.000000.000000
DJ(V6)32.000000.000000
DJ(V7)43.000000.000000
DJ(V8)38.000000.000000
C(W1,V1)6.0000000.000000
C(W1,V2)2.0000000.000000
C(W1,V3)6.0000000.000000
C(W1,V4)7.0000000.000000
C(W1,V5)4.0000000.000000
C(W1,V6)2.0000000.000000
C(W1,V7)5.0000000.000000
C(W1,V8)9.0000000.000000
C(W2,V1)4.0000000.000000
C(W2,V2)9.0000000.000000
C(W2,V3)5.0000000.000000
C(W2,V4)3.0000000.000000
C(W2,V5)8.0000000.000000
C(W2,V6)5.0000000.000000
C(W2,V7)8.0000000.000000
C(W2,V8)2.0000000.000000
C(W3,V1)5.0000000.000000
C(W3,V2)2.0000000.000000
C(W3,V3)1.0000000.000000
C(W3,V4)9.0000000.000000
C(W3,V5)7.0000000.000000
C(W3,V6)4.0000000.000000
C(W3,V7)3.0000000.000000
C(W3,V8)3.0000000.000000
C(W4,V1)7.0000000.000000
C(W4,V2)6.0000000.000000
C(W4,V3)7.0000000.000000
C(W4,V4)3.0000000.000000
C(W4,V5)9.0000000.000000
C(W4,V6)2.0000000.000000
C(W4,V7)7.0000000.000000
C(W4,V8)1.0000000.000000
C(W5,V1)2.0000000.000000
C(W5,V2)3.0000000.000000
C(W5,V3)9.0000000.000000
C(W5,V4)5.0000000.000000
C(W5,V5)7.0000000.000000
C(W5,V6)2.0000000.000000
C(W5,V7)6.0000000.000000
C(W5,V8)5.0000000.000000
C(W6,V1)5.0000000.000000
C(W6,V2)5.0000000.000000
C(W6,V3)2.0000000.000000
C(W6,V4)2.0000000.000000
C(W6,V5)8.0000000.000000
C(W6,V6)1.0000000.000000
C(W6,V7)4.0000000.000000
C(W6,V8)3.0000000.000000
X(W1,V1)0.0000005.000000
X(W1,V2)19.000000.000000
X(W1,V3)0.0000005.000000
X(W1,V4)0.0000007.000000
X(W1,V5)41.000000.000000
X(W1,V6)0.0000002.000000
X(W1,V7)0.0000002.000000
X(W1,V8)0.00000010.00000
X(W2,V1)1.0000000.000000
X(W2,V2)0.0000004.000000
X(W2,V3)0.0000001.000000
X(W2,V4)32.000000.000000
X(W2,V5)0.0000001.000000
X(W2,V6)0.0000002.000000
X(W2,V7)0.0000002.000000
X(W2,V8)0.0000000.000000
X(W3,V1)0.0000004.000000
X(W3,V2)11.000000.000000
X(W3,V3)0.0000000.000000
X(W3,V4)0.0000009.000000
X(W3,V5)0.0000003.000000
X(W3,V6)0.0000004.000000
X(W3,V7)40.000000.000000
X(W3,V8)0.0000004.000000
X(W4,V1)0.0000004.000000
X(W4,V2)0.0000002.000000
X(W4,V3)0.0000004.000000
X(W4,V4)0.0000001.000000
X(W4,V5)0.0000003.000000
X(W4,V6)5.0000000.000000
X(W4,V7)0.0000002.000000
X(W4,V8)38.000000.000000
X(W5,V1)34.000000.000000
X(W5,V2)7.0000000.000000
X(W5,V3)0.0000007.000000
X(W5,V4)0.0000004.000000
X(W5,V5)0.0000002.000000
X(W5,V6)0.0000001.000000
X(W5,V7)0.0000002.000000
X(W5,V8)0.0000005.000000
X(W6,V1)0.0000003.000000
X(W6,V2)0.0000002.000000
X(W6,V3)22.000000.000000
X(W6,V4)0.0000001.000000
X(W6,V5)0.0000003.000000
X(W6,V6)27.000000.000000
X(W6,V7)3.0000000.000000
X(W6,V8)0.0000003.000000
RowSlackorSurplusDualPrice
1664.0000-1.000000
20.0000003.000000
322.000000.000000
40.0000003.000000
50.0000001.000000
60.0000002.000000
70.0000002.000000
80.000000-4.000000
90.000000-5.000000
100.000000-4.000000
110.000000-3.000000
120.000000-7.000000
130.000000-3.000000
140.000000-6.000000
150.000000-2.000000
由以上结果可以清楚的看到由各仓库到各客户处的货物调运数量,由此得出的符合条件的最佳运货方案,而使运费最低,最低为664。
二、运输规划
重庆有三家电子厂分别是新普,隆宇和恒华,生产的笔记本电脑将要运向北京,天津,广东,上海四个城市销售,其产量和销售量见下表:
(单位:
万台)
表:
1-1
北京
天津
广东
上海
产量
新普
6
2
6
7
30
隆宇
4
9
5
3
25
恒华
8
8
1
5
21
销量
15
17
22
12
-
问:
哪种销售方案将会取得最少的运输费用,费用为多少?
针对该运输问题,为了方便计算,可以设新普(A1),隆宇(A2)和恒华(A3)分别销往北京(B1)、天津(B2)、广东(B3)和上海(B4)四个城市销售量为
.建立以下模型:
表:
1-2
B1
B2
B3
B4
产量
A1
6
2
6
7
30
A2
4
9
5
3
25
A3
8
8
1
5
21
销量
15
17
22
12
-
目标(Theobjective)最少费用:
约束条件:
供应限制(Thesupplyconstrains)指标约束(Thedamandconstrains)
LINGO模型:
model:
sets:
origin/1..3/:
a;
sale/1..4/:
b;
routes(origin,sale):
c,x;
endsets
data:
a=30,25,21;
b=15,17,22,12;
c=6,2,6,7,4,9,5,3,8,8,1,5;
enddata
[OBJ]min=@sum(routes:
c*x);
@for(origin(i):
[SUP]
@sum(sale(j):
x(i,j))<=a(i));
@for(sale(j):
[DEM]
@sum(origin(i):
x(i,j))=b(j));
end
lingo结果:
Globaloptimalsolutionfound.
Objectivevalue:
161.0000
Infeasibilities:
0.000000
Totalsolveriterations:
6
VariableValueReducedCost
X(1,1)2.0000000.000000
X(1,2)17.000000.000000
X(1,3)1.0000000.000000
X(1,4)0.0000002.000000
X(2,1)13.000000.000000
X(2,2)0.0000009.000000
X(2,3)0.0000001.000000
X(2,4)12.000000.000000
X(3,1)0.0000007.000000
X(3,2)0.00000011.00000
X(3,3)21.000000.000000
X(3,4)0.0000005.000000
RowSlackorSurplusDualPrice
OBJ161.0000-1.000000
SUP
(1)10.000000.000000
SUP
(2)0.0000002.000000
SUP(3)0.0000005.000000
DEM
(1)0.000000-6.000000
DEM
(2)0.000000-2.000000
DEM(3)0.000000-6.000000
DEM(4)0.000000-5.000000
从计算结果可以得出,新普(A1)分别销往北京(B1)、天津(B2)、广东(B3)和上海(B4)四个城市销售量为分别为2万台,17万台,1万台,0万台,剩余10万台;隆宇(A2)分别销往北京(B1)、天津(B2)、广东(B3)和上海(B4)四个城市销售量为别为13万台,0万台,0万台,12万台,剩余0万台;恒华(A3)分别销往北京(B1)、天津(B2)、广东(B3)和上海(B4)四个城市销售量为分别为0万台,0万台,21万台,0万台,剩余0万台;总费用为161个单位.
三、整数规划
某公司打算向它的3个营业区增设6个销售店,每个营业区至少增设一个。
从各区赚取的利润与增设的销售店个数有关,其数据如下表所示。
试求各区应分配几个增设的销售店,才能使总利润最大。
销售点增加数
0
1
2
3
4
A区利润/万元
100
200
280
330
340
B区利润/万元
200
210
220
225
230
C区利润/万元
150
160
170
180
200
要设置集合zone/A,B,C/,表示三个地区。
因为获得的利润与地区和各地的销售点增加数均相关,所以可以仿照运输模型,用number/1..4/表示每个地区可选的销售点增加数,然后用一个派生集links(zone,number):
c,profit,定义
profit(i,j)为在i地区新增j个销售点能获得的利润。
可写出约束条件为:
所求函数为max=@sum(links:
c*profit);
Lingo程序如下:
model:
sets:
zone/A,B,C/;!
A,B,C三个地区;
number/1..4/;!
各地区可选择新建的销售点数目,可选1~4中的一个数,通过links把zone和number联系起来;
links(zone,number):
c,profit;!
若在i地区新建j个销售点,则c(i,j)=1,否则c(i,j)=0.profit(i,j)表示在i地区新建j个销售点的利润;
endsets
data:
profit=200280330340
210220225230
160170180200;
enddata
max=@sum(links:
c*profit);
@for(zone(I):
@sum(number(J):
c(I,J))=1);!
对于每一个地区,新建销售点的数目是一定的,c的和为1;
@sum(zone(I):
@sum(number(J):
c(I,J)*J))=6;!
三个地区新建的销售点总数为6;
@for(links(i,j):
@bin(c(i,j)));!
每一个c(i,j)只能取0或1;
end
用Lingo求解,结果如下:
Globaloptimalsolutionfound.
Objectivevalue:
710.0000
Extendedsolversteps:
0
Totalsolveriterations:
0
VariableValueReducedCost
C(A,1)0.000000-200.0000
C(A,2)0.000000-280.0000
C(A,3)1.000000-330.0000
C(A,4)0.000000-340.0000
C(B,1)1.000000-210.0000
C(B,2)0.000000-220.0000
C(B,3)0.000000-225.0000
C(B,4)0.000000-230.0000
C(C,1)0.000000-160.0000
C(C,2)1.000000-170.0000
C(C,3)0.000000-180.0000
C(C,4)0.000000-200.0000
则在A,B,C区域应分别新增3,1,2个销售点,可获得的最大利润为710万元。
四、目标规划
有11件任务(A—K)分配到4个工作站(1—4),任务的优先次序如下图。
每件任务所花费的时间如下表。
任务
A
B
C
D
E
F
G
H
I
J
K
时间
45
11
9
50
15
12
12
12
12
8
9
解:
用变量
表示任务
分配给工作站
的情况,
表示分配,
表示不分配,
表示完成各项任务所需时间,则目标函数为
约束条件
(1):
每项任务只能且必须分配至一个工作站来做,可以表示为:
;
约束条件
(2):
各项任务间如果有优先关系,则排在前面的任务
对应的工作站(序号)应当小于(或等于)排在后面的任务
所对应的工作站(序号),即对所有有顺序的任务
:
;
约束条件(3):
。
这是一个非线性规划(目标函数非线性),但可以化为线性规划,增加一个变量,再增加四个约束条件:
,目标函数变为
。
LINGO程序为:
model:
sets:
task/ABCDEFGHIJK/:
t;
pred(task,task)/A,BB,CC,FC,GF,JG,JJ,KD,EE,HE,IH,JI,J/;
station/1..4/;
tsx(task,station):
x;
endsets
data:
T=4511950151212121289;
enddata
@for(task(i):
@sum(station(k):
x(i,k))=1);
@for(pred(i,j):
@sum(station(k):
k*x(j,k)-k*x(i,k))>=0);
@for(station(k):
@sum(txs(i,k):
t(i)*x(i,k))<=cyctime);
min=cyctime;
@for(txs:
@bin(x));
end
计算的部分结果为
Globaloptimalsolutionfoundatiteration:
1255
Objectivevalue:
50.00000
VariableValueReducedCost
CYCTIME50.000000.000000
X(A,1)1.0000000.000000
X(A,2)0.0000000.000000
X(A,3)0.00000045.00000
X(A,4)0.0000000.000000
X(B,1)0.0000000.000000
X(B,2)0.0000000.000000
X(B,3)1.00000011.00000
X(B,4)0.0000000.000000
X(C,1)0.0000000.000000
X(C,2)0.0000000.000000
X(C,3)0.0000009.000000
X(C,4)1.0000000.000000
X(D,1)0.0000000.000000
X(D,2)1.0000000.000000
X(D,3)0.00000050.00000
X(D,4)0.0000000.000000
X(E,1)0.0000000.000000
X(E,2)0.0000000.000000
X(E,3)1.00000015.00000
X(E,4)0.0000000.000000
X(F,1)0.0000000.000000
X(F,2)0.0000000.000000
X(F,3)0.00000012.00000
X(F,4)1.0000000.000000
X(G,1)0.0000000.000000
X(G,2)0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运筹学 实例 分析 lingo 求解