第三讲 整数规划和0-1规划
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2014-4-8
7
模式 1 2 3 4 5 6 7
4米钢管根数 4 3 2 1 1 0 0
6米钢管根数 0 1 0 2 1 3 0
8米钢管根数 0 0 1 0 1 0 2
余料(米) 3 1 3 3 1 1 3
为满足客户需要,按照哪些种合理模式,每种模式切 割多少根原料钢管,最为节省? 决策变量
2014-4-8i
2014-4-8
19
地址 A1 投资 与获 利
A2
A3
A4
A5
A6
A7
bi
1万
3万
3万
2万
1万
2万
1万
ci
0.2万 0.5万 0.4万 0.4万 0.3万 0.4万 0.1万
假设问题中b=10万元
2014-4-8 20
model:
Title 选址问题;
max=0.2*x1 + 0.5*x2 + 0.4*x3 + 0.4*x4 + 0.3*x5 + 0.4*x6 + 0.1*x7;
end
2014-4-8 21
2014-4-8
22
例4 混合泳接力队的选拔 5名候选人的百米成绩
蝶泳 仰泳 蛙泳 自由泳 甲 1’06”8 1’15”6 1’27” 58”6 乙 57”2 1’06” 1’06”4 53” 丙 1’18” 1’07”8 1’24”6 59”4 丁 1’10” 1’14”2 1’09”6 57”2 戊 1’07”4 1’11” 1’23”8 1’02”4
5
i=4 70 74.2 69.6 57.2
i=5 67.4 71 83.8 62.4
若选择队员i参加泳姿j 的比赛,记xij=1, 否则记xij=0
目标 函数
约束 条件
2014-4-8
Min Z cij xij
j 1 i 1
每人最多入选泳姿之一
每种泳姿有且只有1人
x
j 1
4
ij
1, i 1,5
2014-4-8
4
按照客户需要在一根原料钢管上安排切割的一种组合。 4米1根 6米1根 8米1根 余料1米
4米1根
6米1根
6米1根
余料3米
8米1根
8米1根
余料3米
合理切割模式的余料应小于客户需要钢管的最小尺寸
2014-4-8 5
model: title 搜索合理的下料方式; sets: ren:; !用一根原料可下各需求长度的最多根数定义元素个数,最多为4,这里要定义5(0—4有5个数); long(ren,ren,ren):; !有三种需求长度,定义三维数组; endsets data: ren=1..5; !为了美观输出一些题头; @text('d:renxinglong.txt')=@write(1*' ','下料方式',7*' ','余料长度',@newline(1)); @text('d:renxinglong.txt')=@write(12*'-',4*' ',8*'-',@newline(1)); !搜索所有满足过滤条件的i,j,k; @text('d:renxinglong.txt')=@writefor(long(i,j,k)| (19-8*(i-1)-6*(j-1)-4*(k-1))#ge#0 #and#(19-8*(i-1)-6*(j-1)-4*(k-1))#lt#a !一种下料方式下料长度和不超过总长度,合理模式的余料小于最短需求; !输出下料方式到文本文件renxinglong.txt,我们需要的数是0--4; :i-1,4*' ',j-1,4*' ',k-1,8*' ',19-8*(i-1)-6*(j-1)-4*(k-1),@newline(2)); !输出计算段计数过的下料方式总数; 2014-4-8 6 @text('d:renxinglong.txt')=@write(' 下料方式总数为:',2*' ',n,'种'); Enddata
整数约束: xi 为整数
10
-程序编写-
程序编写
model: Title 钢管下料; Min=3*x1 + x2 + 3*x3 + 3*x4 + x5 + x6 + 3*x7; 4*x1 + 3*x2 + 2*x3 + x4 + x5>50; x2 + x3 2*x4 + x5 + 3*x6> 20; + x5 + 2*x7>15;
15
模型求解
整数规划(Integer Programming,简记IP)
max 2*x1+3*x2+4*x3 1.5*x1+3*x2+5*x3<600 s. t. 1.5x1 3x2 5x3 600 280*x1+250*x2+400*x3<60 280x1 250x2 400x3 60000 000 end x1 , x2 , x3为非负整数 @gin (x1) @gin (x2) @gin (x3) IP 结果输出
280x1 250x2 400x3 60000
x1 , x2 , x3 0
2014-4-8
线性 规划 模型 (LP)
14
模型 求解
结果为小数, 怎么办?
OBJECTIVE FUNCTION VALUE 1) 632.2581 VARIABLE VALUE REDUCED COST X1 64.516129 0.000000 X2 167.741928 0.000000 X3 0.000000 0.946237 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 0.731183 3) 0.000000 0.003226
模型求解
最优解:x14 = x21 = x32 = x43 = 1, 其它变量为0; 成绩为253.2(秒)=4’13”2 甲~ 自由泳、乙~ 蝶泳、 丙~ 仰泳、丁~ 蛙泳.
丙 1’18” 1’07”8 1’24”6 59”4 丁 1’10” 1’14”2 1’09”6 57”2 戊 1’07”4 1’11” 1’23”8 1’02”4
如何选拔队员组成4100米混合泳接力队? 穷举法:组成接力队的方案共有5!=120种。
2014-4-8
23
0-1规划模型
cij j=1 j=2 j=3 j=4 i=1 66.8 75.6 87 58.6
cij(秒)~队员i 第j 种泳姿的百米成绩
i=2 57.2 66 66.4 53
4
i=3 78 67.8 84.6 59.4
2014-4-8
IP 的最优解x1=64,x2=168,x3=0,最优值z=632
16
0-1规划
2014-4-8
17
例3 选址问题
某公司拟定在在武昌 , 汉口, 汉阳建立专卖店 , 拟议中 有7 个地址 : 中商( A1 ), 亚贸( A2 ), 司门口 ( A3 ), 武广( A4 ), 步 行街( A5 ), 二十一世纪 ( A6 ), 汉商( A7 ), 并规定 : 武昌至多2 个 , 汉口汉阳至少 1个 , 若选Ai , 投资bi 元 , 每年可获利ci 元 , 总投资不超过 b元 , 问如何选择地址使公司 的年利润最大?
@gin(x1);@gin(x2);@gin(x3);@gin(x4); @gin(x5);@gin(x6);@gin(x7); end
2014-4-8 11
最优解:x2=12, x5=15, 其余为0; 最优值:27
按模式2切割12根,按模式5切割15根,余料27米
最优解:x2=15, x5=5, x7=5, 其余为0; 最优值:25。 按模式2切割15根,按模式5切割5根,按模式7切割5根,共25 根,余料35米
calc: a=@smin(8,6,4); b=@floor(19/a)+1; n=0; @for(long(i,j,k)| (19-8*(i-1)-6*(j-1)-4*(k-1))#ge#0 #and#(19-8*(i-1)-6*(j-1)-4*(k-1))#lt#a :n=n+1);!下料方式计数; endcalc end
当余料没有用处时,通常以总根数最少为目标
2014-4-8 12
例2 汽车厂生产计划 汽车厂生产三种类型的汽车,已知各类型每辆车对钢 材、劳动时间的需求,利润及工厂每月的现有量。
小型 钢材(吨) 劳动时间(小时) 利润(万元) 1.5 280 2 中型 3 250 3 大型 5 400 4 现有量 600 60000
2014-4-8
18
1, 选择Ai 解 : xi 0, 否则
max f ci x i
i 1
7
7 bi x i b i 1 x1 x 2 x 3 2 s .t . x4 x5 1 x6 x7 1 i 1,2,...,7 x i 0或1
• 制订月生产计划,使工厂的利润最大。
2014-4-8
13
模型建立
钢材
小型
1.5
中型
3 250
大型
5 400
现有量
600 60000
设每月生产小、中、大型 汽车的数量分别为x1, x2, x3
时间 280
பைடு நூலகம்
利润
2
3
4
Max z 2x1 3x2 4x3
s. t. 1.5x1 3x2 5x3 600
1)舍去小数:取x1=64,x2=167,算出目标函数值z=629,与 LP最优值632.2581相差不大。 2)试探:如取x1=65,x2=167;x1=64,x2=168等,计算函数 值z,通过比较可能得到更优的解。
• 但必须检验它们是否满足约束条件。
2014-4-8
3) 模型中增加条件:x1, x2, x3 均为整数,重新求解。
2014-4-8
9
模 式 1 2 3 4 5 6 7 需 求
2014-4-8
4米 根数 4 3 2 1 1 0 0 50
6米 根数 0 1 0 2 1 3 0 20
8米 根数 0 0 1 0 1 0 2 15
余 料 3 1 3 3 1 1 3
约束
4 x1 3x2 2 x3 x4 x5 50 x2 2 x4 x5 3x6 20 x3 x5 2 x7 15
x ~按第i 种模式切割的原料钢管根数(i=1,2,…7)
8
目标函数:(两种标准)
1. 原料钢管剩余总余量最小
Min Z1 3x1 x2 3x3 3x4 x5 x6 3x7
2. 所用原料钢管总根数最少
Min Z 2 x1 x2 x3 x4 x5 x6 x7
第三讲 整数规划和0-1规划
The integer programming and 0-1 planning
统计与应用数学系 张耀峰
2014-4-8 1
第三讲 整数规划和0-1规划
1.1 整数规划
1.2 0-1规划
2014-4-8
2
整数规划
2014-4-8
3
例1 钢管下料问题
某钢管加工厂有定长19米的钢管原料若 干,应某客户订单需求,该厂需提供4米、6 米、8米钢管分别不少于50、20、15根。问 该厂应如何下料?
蝶泳 仰泳 蛙泳 2014-4-8自由泳
甲 1’06”8 1’15”6 1’27” 58”6
乙 57”2 1’06” 1’06”4 53”
25
1.3 案例分析
x1 + 3*x2 + 3*x3 + 2*x4 + x5 + 2*x6 + x7 <10;
x1 + x2 + x3 < 2; x4 + x5 > 1; x6 + x7>1; @bin(x1);@bin(x2);@bin(x3);@bin(x4);
@bin(x5);@bin(x6);@bin(x7);
x
i 1
5
ij
1, j 1,424
MIN = 66.8*x11+75.6*x12+87*x13+58.6*x14 +… … +67.4*x51+71 * x52+83.8*x53+62.4*x54 SUBJECT TO x11+x12+x13+x14 <=1 …… x41+x42+x43+x44 <=1 x11+x21+x31+x41+x51 =1 …… x14+x24+x34+x44+x54 =1 END Bin(xij)
Max z 2x1 3x2 4x3
OBJECTIVE FUNCTION VALUE 1) 632.0000 VARIABLE VALUE REDUCED COST X1 64.000000 -2.000000 X2 168.000000 -3.000000 X3 0.000000 -4.000000