Lingo解目标规划

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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
1 1 2
0.5 x1 0.3x 2 300 0.1x1 0.3x 2 180 2.5 x1 3.2 x 2 d1 d1 1755 x1 d 2 d 2 650 x1, x 2, d i 0
整数线性规划的几种类型
纯整数线性规划 混合整数线性规划
0-1型整数线性规划
例:
max z 20x1 10x 2 5 x1 4 x 2 24 2 x1 5 x 2 13 s.t. x1, x 2 0 x1, x 2取整数
不考虑整数约束时求解
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:已知有三个产地给四个销地供应某种产品,产销 地之间的供需量和单 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;
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
注:
关于算法的复杂性问题:P112? 度量方法: 当问题的规模为n时,利用该算法求解此 问题需要做的加减乘除四则运算的次数。
第五章
整数规划
1.整数规划的数学模型及解的特点 2.分支定界法、割平面法 3.0-1整数规划 4.指派问题
1.整数规划问题的提出
整数规划数学模型的一般形式 一部分或全部决策变量取整数值的规划问题 ——整数规划 整数规划中不考虑整数条件是对应的规划问题 ——该整数规划的松弛问题 松弛问题为线性规划的整数规划问题 ——整数线性规划
Lingo解目标规划
方法:按目标的优先级次序,依次用lingo 求解。每次求得的值再作为下一次的约束条 件。
例1:求解下列目标规划
min z p1d1 p2 (d 2 d 2 ) p3d 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 10x 2 d d 56 3 3 x1, x 2, d i 0
B 4的需求量必须全部满足 : x14 x 24 x34 d d 250
A3向B1提供的产品不少于 100 x31 d 5 d5 100
4 4
每个销地的供应量不小 于其需求量的 %: 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
考虑目标规划:
供应约束: x11 x12 x13 x14 300 x 21 x 22 x 23 x 24 200 x31 x32 x33 x34 400
需求约束: x11 x21 x31 200 x12 x22 x32 100 x13 x23 x33 450
销地 B1 B2 2 5 5 100 B3 6 4 2 450 B4 7 6 3 250 产量 300 200 400 900/1000
产地 A1
A2 A3 销量
5 3 4 200
有关部门在研究调运方案时依次考虑以下七项目标, 并规定其相应的优先等级: P1-B4是重点保证单位,必须全部满足其需求; P2-A3向B1提供的产量不少于100; P3-每个销地供应量不小于其需要的80%; P4-所订调运方案的总运费不超过最小运费的10%; P5-因路段问题,尽量避免安排将A2产品往B4; P6-给B1,B2的供应率要相同; P7-力求总运费最省。 试求满意的调运方案?
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 p1d1 p2 d 2 p3 (2d 3 d 4 )
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两种 棉纱,其相关数据如下表:
产品 资源 单耗(kg/km)
A
0.5 0.1 2.5
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; 因此简单对决策变量化整是不能解决整数问题 的,有必要讨论整数规划的解决方法。
整数线性规划一般形式:
max(min) z c j x j
j 1
n
( a )
n (b) aij x j ( , )bi j 1 (c ) xj 0 x , x , , x 中部分或全部取整数 ( d ) n 1 2
调运方案的总运费不超 过最小费用的 % 10
cij xij d10 d10 2950* (1 10%) i 1 j 1 3 4
因路段原因,尽量避免 A2的产品往B4 将 x24 d d 0
给B1和B2的供应率要相同
x11 x21 x31 (200/ 450)(x13 x23 x33) d12 d12 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));
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
1 2 1 2
Lingo代码
相关文档
最新文档