Lingo解目标规划1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
有关部门在研究调运方案时依次考虑以下七项目标, 并规定其相应的优先等级: P1-B4是重点保证单位,必须全部满足其需求; P2-A3向B1提供的产量不少于100; P3-每个销地供应量不小于其需要的80%; P4-所订调运方案的总运费不超过最小运费的10%; P5-因路段问题,尽量避免安排将A2产品往B4; P6-给B1,B2的供应率要相同; P7-力求总运费最省。 试求满意的调运方案?
+ 5 11
− 12
+ 12
+ 7 13
Lingo代码
sets: cd/1..3/:a; xd/1..4/:b; links(cd,xd):c,x; px/1..13/:d1,d2; endsets data: a=300 200 400; b=200 100 450 250; c=5 2 6 7 3546 4 5 2 3; enddata min=d2(13); @for(cd(i):@sum(xd(j):x(i,j))=a(i)); @for(xd(j):@sum(cd(i):x(i,j))<=b(j)); x(1,4)+x(2,4)+x(3,4)+d1(4)-d2(4)=250; x(3,1)+d1(5)-d2(5)=100; @for(xd(j):@sum(cd(i):x(i,j))+d1(j+5)-d2(j+5)=b(j)*0.8); @sum(links(i,j):c(i,j)*x(i,j))+d1(10)-d2(10)=2950*1.1; x(2,4)+d1(11)-d2(11)=0; (x(1,1)+x(2,1)+x(3,1))-(200/450)*(x(1,3)+x(2,3)+x(3,3))+d1(12)-d2(12)=0; @sum(links(i,j):c(i,j)*x(i,j))+d1(13)-d2(13)=2950; y=@sum(links(i,j):c(i,j)*x(i,j)); d1(4)=0; d1(5)=0; d1(6)+d1(7)+d1(8)+d1(9)=0; d2(10)=115; d2(11)=0; d1(12)+d2(12)=30; d1(1)+d1(2)+d1(3)+d2(1)+d2(2)+d2(3)=0;
Lingo代码:
min=d21; 0.5*x1+0.3*x2<=300; 0.1*x1+0.3*x2<=180; 2.5*x1+3.2*x2+d11-d12=1755; x1+d21-d22=650; d11=0;
例4:已知有三个产地给四个销地供应某种产品,产销 地之间的供需量和单位运价如下表: 销地 B1 产地 A1 A2 A3 销量 5 3 4 200 B2 2 5 5 100 B3 6 4 2 450 B4 7 6 3 250 产量 300 200 400 900/1000
注:
关于算法的复杂性问题:P112? 度量方法: 当问题的规模为n时,利用该算法求解此 问题需要做的加减乘除四则运算的次数。
整数规划
1.整数规划的数学模型及解的特点 2.分支定界法、割平面法 3.0-1整数规划 4.指派问题
1.整数规划问题的提出
整数规划数学模型的一般形式 一部分或全部决策变量取整数值的规划问题 ——整数规划 整数规划中不考虑整数条件是对应的规划问题 ——该整数规划的松弛问题 松弛问题为线性规划的整数规划问题 ——整数线性规划
整数线性规划的几种类型
纯整数线性规划 混合整数线性规划 0-1型整数线性规划
例:
max z = 20 x1 + 10 x 2 5 x1 + 4 x 2 ≤ 24 2 x1 + 5 x 2 ≤ 13 s.t. x1, x 2 ≥ 0 x1, x 2取整数
不考虑整数约束时求解
− 1 − 2 + 1 + 2 − 1 1 + 2 − 3 − 4
Lingo代码
min=2*d31+d41; x1+x2+d11-d12=40; x1+x2+d21-d22=50; x1+d31-d32=24; x2+d41-d42=30; d11=0; d22=0;
例3:某棉纺车间用甲乙两种棉花混纺生产A、B两种 棉纱,其相关数据如下表:
B 4的需求量必须全部满足:
− + x14 + x 24 + x34 + dwk.baidu.com4 − d 4 = 250
A3向B1提供的产品不少于100 x31 + d 5− − d 5+ = 100
每个销地的供应量不小于其需求量的80%: x11 + x 21 + x31 + d 6− − d 6+ = 200 * 0.8 x12 + x 22 + x32 + d 7− − d 7+ = 100 * 0.8 x13 + x 23 + x33 + d8− − d8+ = 450 * 0.8 x14 + x 24 + x34 + d 9− − d 9+ = 250 * 0.8
max=20*x1+10*x2; 5*x1+4*x4<=24; 2*x1+5*x2<=13; 可以解得: X1=4.8 x2=0 最优解为z=96 X1的取值不是整数?!怎么办???
对x1 化整: 取x1=5,x2=0:无可行解。 取x1=4,x2=0:可行解,z=80; 是最优解吗? x1=4,x2=1:可行解,z=90; 因此简单对决策变量化整是不能解决整数问题 的,有必要讨论整数规划的解决方法。
Lingo代码
min=d31; 2*x1+x2<=11; x1-x2+d11-d12=0; x1+2*x2+d21-d22=10; 8*x1+10*x2+d31-d32=56; d12=0; d21+d22=0;
例2:
min z = p d + p2 d + p3 (2d + d ) x1 + x 2 + d − d = 40 x1 + x 2 + d − d = 50 s.t. x1 + d 3− − d 3+ = 24 x3 + d − − d + = 30 4 4 x1, x 2, d i+ − ≥ 0
产品 资源 单耗 (kg/km) )
A 0.5 0.1 2.5
B 0.3 0.3 3.2
棉花库存量 300 180
甲绵(kg) 甲绵 乙绵(kg) 乙绵
利润( 利润(元/km) )
若利润指标为1755元,A种棉花要生产650km,问 A,B两种棉纱各应该生产多少?
目标规划模型:
设分别生产A、B两种棉纱x1, x 2km,则: min z = p d + p2 d
考虑目标规划:
供应约束: x11 + x12 + x13 + x14 ≤ 300 x 21 + x 22 + x 23 + x 24 ≤ 200 x31 + x32 + x33 + x34 ≤ 400
需求约束: x11 + x 21 + x31 ≤ 200 x12 + x 22 + x32 ≤ 100 x13 + x 23 + x33 ≤ 450
− 1 1 − 2
0.5 x1 + 0.3 x 2 ≤ 300 0.1x1 + 0.3 x 2 ≤ 180 − + 2.5 x1 + 3.2 x 2 + d1 − d1 = 1755 − x1 + d 2 − d 2+ = 650 x1, x 2, d i± ≥ 0
不考虑目标,运输问题的数学模型为:
设xij 表示从第i个产地向第j个销地的运量。则: min z = ∑∑ cij xij
i =1 j =1 3 4
∑x
j =1 3
4
ij
= ai , i = 1,2,3 ≤ b j , j = 1,2,3,4
∑x
i =1
ij
xij ≥ 0
Lingo代码:
sets: cd/1..3/:a; xd/1..4/:b; links(cd,xd):c,x; endsets data: a=300 200 400; b=200 100 450 250; c=5 2 6 7 3546 4 5 2 3; enddata min=@sum(links(i,j):c(i,j)*x(i,j)); @for(cd(i):@sum(xd(j):x(i,j))<=a(i)); @for(xd(j):@sum(cd(i):x(i,j))>=b(j));
调运方案的总运费不超过最小费用的10%
− + cij xij +d10 − d10 = 2950 * (1 + 10%) ∑∑ i =1 j =1 3 4
因路段原因,尽量避免将A2的产品往B 4 x 24 + d − d = 0
给B1和B 2的供应率要相同
− + x11 + x 21 + x31 − (200 / 450)( x13 + x 23 + x33) + d12 − d12 = 0
− 11
+ 11
力求运费最省:
− + cij xij + d13 + d13 = 2950 ∑∑ i =1 j =1 3 4
目标函数:
− + min z = P d 4 + P2 d 5− + P3 (d 5− + d 6− + d 7− + d 8− ) + P4 d10 1
+ P d + P6 (d + d ) + P d
整数线性规划一般形式: 整数线性规划一般形式:
max(min)
n
z =
∑
n
j =1
c jx
j
L L (a )
L L (b ) ∑ a ij x j ≤ ( = , ≥ ) b i j =1 L L (c ) xj ≥ 0 x , x , L , x 中部分或全部取整数L L ( d ) n 1 2
Lingo解目标规划
方法:按目标的优先级次序,依次用lingo 求解。每次求得的值再作为下一次的约束条 件。
例1:求解下列目标规划
− + min z = p1d1+ + p2 (d 2 + d 2 ) + p3 d 3−
2 x1 + x 2 ≤ 11 x1 − x 2 + d − − d + = 0 1 1 − + s.t. x1 + 2 x 2 + d 2 − d 2 = 10 8 x1 + 10 x 2 + d − − d + = 56 3 3 x1, x 2, d i+ − ≥ 0