运筹学课件第三节分支定界法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Z12 = 61/14
B121:解 (3,1 )
Z121 = 4
B12 B121 B122
Max Z = X1 + X2
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
X1
≥2
X2 ≤ 2 X1 , X2 ≥ 0
Max Z = X1 + X2
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
(示意图),并设最优解位于
C。如果这个最优解中所有的
变量都是整数,则已经得到整 数规划的最优解。如果其中某 一个变量Xr不是整数,则在可 X2
分枝
行域中除去一块包含这个最优
解但不包含任何整数解的区域 E
DC
Ir<Xr<Ir+1(其中Ir是变量Xr
的整数部分),线性规划的可
B
行域被划分成不相交的两部分,
X 0
由于这两个子问题的可行域都是原线性规划问题可行域的
子集,这两个子问题的最优解的目标函数值都不会比原线
性规划问题的最优解的目标函数值更大。如果这两个问题
的最优解仍不是整数解,则继续选择一个非整数的变量,
继续将这个子问题分解为两个更下一级的子问题。这个过
程称为“分支(Branch)”。
每一次分支得到的子问题最优解的目标函数值,都小于 或等于分支前问题的最优解的目标函数值。非整数解的 最大值作为新的上界。
x2 ≤2
D X1=33/14,X2=2
Z=61/14
B X1=2,X2=23/9
Z=41/9
x2 ≥ 3
无可行解
x1 ≤2
x1 ≥ 3
E X1=3,X2=1
Z=4
F X1=2,X2=2
Z=4
不同的搜索策略会导致不同的搜索树,一般 情况下,同一层的两个子问题,先搜索目标 函数比较大的较有利(如果是极小问题,则 应先搜索目标函数值小的较为有利)。这样 可能得到数值比较大的下界,下界越大被剪 去的分支越多。
x3 M 3y3 x j 0 且为整数
y j 1或 0
M
为
j
x
的上界
j
, 例如根据第三个约束条
如果不生产第j种产品, xj=0.
约束条件xj≤Mjyj,
yj=1或0。当yj=1不利于目 标函数的最大化,因此在最 优解必然是yj=0。
件, M 1 100 ,
M 2 50 , M 3 34
求极小问题时,LP问题的解是IP问题的下界。每次分支后的子 问题最优解的目标函数值都大于或等于分支前的最优值。如分 支中得到整数解,则最小的整数解为上界。如分支的目标函数 值大于上界,则停止分支。
A X1=3/2,X2=10/3
Z=29/6
x1 ≤1
x1 ≥ 2
C X1=1,X2=7/3
Z=10/3
如果某一个子问题的最优解是整数解,就作为整数规划 最优目标函数值的下界。多个时取最大值。最后的下界 为整数规划的最优解。
如果某一个子问题的解还不是整数解,但这个非整数解 的目标函数值已经小于这个下界,那么这个子问题就不 必再进行分支。不然需重复进行分支。
确定整数解目标函数值上下界并不断更新 ,“剪除”目 标函数值小于下界的分支的过程,称为定界(Bound)。
(a )
st
.
p
Myi (i
条件,凡取值=1的yi对应的约束 条件将自然满足,因而为多余.
1,2,...,p)
yi pq
i1
例 工件排序问题
使用4台机床加工3件产品.各个产品的机床加工顺序以及产品i在机床j 上的加工时间 aij见表.由于某种原因,产品2的加工总工时不得超过d.现 在要求各件产品在机床上的加工方案,使在最段时间内加工完全部产品.
Z12 = 61/14
B1 Max Z = X1 + X2
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
X1
≥2Fra Baidu bibliotek
X1 , X2 ≥ 0
B11 Max Z = X1 + X2
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
X1
≥2
X2 ≥ 3
X1 , X2 ≥ 0
B12 Max Z = X1 + X2
(3/2 ,10/3) Z1 = 29/6
B1:解 (2,23/9 )
Z11 = 41/9
1
2
松弛问题 Max Z = X1 + X2 14X1 + 9X2 ≤ 51 - 6X1 + 3X2 ≤ 1 X1 , X2 ≥ 0
B1 Max Z = X1 + X2
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
分别以这两部分区域作为可行
域,用原来的目标函数,构造
两个子问题Sub1和Sub2:
O
Sub1
Sub2
Ir Xr Ir+1
X1 A
Sub1
max Z CX
Sub2 max Z CX
AX b st . x r I r
X 0
AX b st . x r I r 1
产品1 a11
机床1 产品2 a21
机床1 产品3
a23
机床2 a32
机床2
a13 机床3
a33 机床3
a14
机床4 a24
机床4
解 设xij表示产品i在机床j 上开始加工的时间(i=1,2,3;j=1,2,3,4) 1.同一件产品在不同机床上的加工顺序约束 同一件产品在下一台机床上的加工的开始时间不早于在上一台机床上加工 的结束时间,故应有 产品1:x11+a11≤x12 ; x13+a13≤x14 产品2:x21+a21≤x22 ; x23+a23≤x24 产品3:x32+a32≤x33 ;
有限要素 E1, E 2,... En , 每项 E j有两种选择 A j , A j
xj
1, E j选择 A j
0,
E
选择
j
A
j
( x1,... xn )T
(1,1,...,
1)T
,
选择( :
A1,...
An)T
(1,1,..., 0)T , 选择( A1,... An)T
2.每一台机床对不同产品的加工顺序约束 一台机床在工作中,如果已经开始加工还没有结束,则不能开始加工另一件产 品.对于机床1,先加工1不能加工2. 为了容纳两种相互排斥的约束条件,对于每台机床,分别引入0-1变量:
yj 10, ,先先加加工工某另种 (外 j产1产 ,2品 ,3品 ,4) 机床1:x11+a11≤x21+My1 ; x21+a21≤x11+M(1-y1) 机床2:x22+a22≤x32+My2 ; x32+a32≤x22+M(1-y2) 机床3:x13+a13≤x33 +My3 ; x33+a33≤x13+M(1-y3) 机床4:x14+a14≤x24 +My4 ; x24+a24≤x14+M(1-y4) 当y1=0,表示机床1先加工产品1,后加工产品2;当y1=1,表示机床1先 加工产品2,后加工产品1.
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
X1
≥2
X2 ≤ 2
X1 , X2 ≥ 0
7
(3/2 ,10/3) Z1 = 29/6
B2:解 (1,7/3 )
Z21 = 10/3
B122:解 (2,2 ) Z122 = 4
B1:解 (2,23/9 )
Z11 = 41/9
B12:解 (33/14,2 )
3.产品2的加工总时间约束 产品2的开始加工时间x21,结束加工时间为x24+a24,所以 x24+a24-x21≤d 4.目标函数的建立 由于三件产品的加工时间分别为x14+a14,x24+a24,x33+a33,全部产品的实际 加工时间为:w=max(x14+a14,x24+a24,x33+a33) Minz=W st. W≥x14+a14, W≥ x24+a24, W≥ x33+a33…………….
第三节 分支定界法
(Branch and Bound, 简称B&B)
基本思想如下:
首先不考虑变量的整数约束,求解相应的线性规 划问题,得到线性规划的最优解。
设线性规划问题: max Z CX
AX b
st .
X
0
最优解为Z。则Z为IP问题解Z*的上界,Z*≤Z。
它的可行域为图中OABCDE
例 含有相互排斥的约束条件的问题
设工序B的每周工时约束条件为0.3x1+0.5x2≤150,式(1) 现有一新的加工方式,相应的每周工时约束条件为0.2x1+0.4x2≤120 ,式(2) 如果工序B只能选择一种,那么(1)和(2)变成相互排斥的约束条件.
0, B采用原加工方式 y1 1, B不采用原加工方 多余式 的约束
X1
≥2
X1 , X2 ≥ 0
B2 Max Z = X1 + X2
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
X1
≤1
X1 , X2 ≥ 0
6
B2:解 (1,7/3 )
Z21 = 17/3
(3/2 ,10/3) Z1 = 29/6
B1:解 (2,23/9 )
Z11 = 41/9
B12:解 (33/14,2 )
二、0-1型整数规划的解法
求解思路:
检测可行解的目标函数值,根据其目标函数值可以产生一个 过滤条件,对于目标函数数值比它差的变量组合删除,这样 有效减少运算次数,使最优解快速找到。
例:求解 0 1整数规划
max Z 3 x 1 2 x 2 5 x 3
x1 2 x2 x3 2
选择q个约束条件,引p个入01变量
0,选择第i个约束条(件 i 1,2,...,p) yi1,不选择第 i个约束条(件 i 1,2,...,p)
在约束条件中保证了在P个0-1
约束条件组
变量中有p-q个1,q个0;凡取值
=0的yi对应的约束条件为原约束
n
st. j1
ai jx j bi
一、0—1规划数学模型
例:固定费用问题 有三种资源被用于生产三种产品,资源量、产品单件费用、 资源消耗量以及生产产品的固定费用。要求制定一个生产计 划,总收益最大。
消耗 产品 产品1
资源
A
2
产品2 4
产品3 8
资源量 500
B
2
3
4
300
C
1
2
3
100
单件费用 4
5
6
固定费用 100
150
200
单件售价 8
分支定界算法对于混合整数规划特别有效, 对没有整数要求的变量就不必分支,这将大 大减少分支的数量。
第四节 0—1型整数规划
一、0-1变量及其应用
某些特殊问题,只做是非选择,故变量设置简化为0或1,
1代表选择,0代表不选择。
选取某个特定方案
1,当决策选取方案 x 0,当决策不选取方案 问题含有较多的要素, 每项要素有 2种选择,用 0 1变量描述。
0, B采用新加工方式 y2 1, B不采用新加工方式
当y1=1,y2=0;采用
0.3x1 0.5x2 150My1 新工艺,(2)式成立; st.0.2x1 0.4x2 120My2
y1 y2 1
p
p个约束条件aijxj bi(i 1,2,...,p) j1
X1
≥3
X2 ≤ 2 X1 , X2 ≥ 0
Max Z = X1 + X2
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
2≤ X1
≤2
X2 ≤ 2 X1 , X2 ≥ 0
8
说明:
1、在B121,B122 的可行域中不可能存在比以上所求解 的2个最优解更好的解。
2、目标函数值maxZ=4作为IP规划的最优解的目标 函数的一个界限(MAX,下界;MIN,上界);
xj>0.
max Z 4 x 1 5 x 2 6 x 3 100 y 1 150 y 2 200 y 3 约束条件xj ≤ Mjyj,yj=1;
2 x 1 4 x 2 8 x 3 500
2
x1
3
x2
4
x3
300
st .
x1
2 x 2 3 x 3 100 x1 M 1 y1 x2 M 2y2
10
12
解:xj是生产第j种产品的产量。
总收益等于销售减去所生产的产品的总费用。建立数学模型时,无法确
定某种产品是否生产,不能确定相应的固定费用是否发生,用0-1变量解
决此问题。
分析:如果生产第j种产品,
1, 生产第
y
j
0
,
不生产第
j 种产品( j 种产品(
x j 0) x j 0)
整数规划问题的求解方法 分支定界法图解整数规划
松弛问题 Max Z = X1 + X2 14X1 + 9X2 ≤ 51 - 6X1 + 3X2 ≤ 1 X1 , X2 ≥ 0
该整数规划松弛问题的解为: (X1 ,X2 )= (3/2 ,10/3)
Z1 = 29/6
5
B2:解 (1,7/3 )
Z21 = 10/3
B121:解 (3,1 )
Z121 = 4
B12 B121 B122
Max Z = X1 + X2
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
X1
≥2
X2 ≤ 2 X1 , X2 ≥ 0
Max Z = X1 + X2
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
(示意图),并设最优解位于
C。如果这个最优解中所有的
变量都是整数,则已经得到整 数规划的最优解。如果其中某 一个变量Xr不是整数,则在可 X2
分枝
行域中除去一块包含这个最优
解但不包含任何整数解的区域 E
DC
Ir<Xr<Ir+1(其中Ir是变量Xr
的整数部分),线性规划的可
B
行域被划分成不相交的两部分,
X 0
由于这两个子问题的可行域都是原线性规划问题可行域的
子集,这两个子问题的最优解的目标函数值都不会比原线
性规划问题的最优解的目标函数值更大。如果这两个问题
的最优解仍不是整数解,则继续选择一个非整数的变量,
继续将这个子问题分解为两个更下一级的子问题。这个过
程称为“分支(Branch)”。
每一次分支得到的子问题最优解的目标函数值,都小于 或等于分支前问题的最优解的目标函数值。非整数解的 最大值作为新的上界。
x2 ≤2
D X1=33/14,X2=2
Z=61/14
B X1=2,X2=23/9
Z=41/9
x2 ≥ 3
无可行解
x1 ≤2
x1 ≥ 3
E X1=3,X2=1
Z=4
F X1=2,X2=2
Z=4
不同的搜索策略会导致不同的搜索树,一般 情况下,同一层的两个子问题,先搜索目标 函数比较大的较有利(如果是极小问题,则 应先搜索目标函数值小的较为有利)。这样 可能得到数值比较大的下界,下界越大被剪 去的分支越多。
x3 M 3y3 x j 0 且为整数
y j 1或 0
M
为
j
x
的上界
j
, 例如根据第三个约束条
如果不生产第j种产品, xj=0.
约束条件xj≤Mjyj,
yj=1或0。当yj=1不利于目 标函数的最大化,因此在最 优解必然是yj=0。
件, M 1 100 ,
M 2 50 , M 3 34
求极小问题时,LP问题的解是IP问题的下界。每次分支后的子 问题最优解的目标函数值都大于或等于分支前的最优值。如分 支中得到整数解,则最小的整数解为上界。如分支的目标函数 值大于上界,则停止分支。
A X1=3/2,X2=10/3
Z=29/6
x1 ≤1
x1 ≥ 2
C X1=1,X2=7/3
Z=10/3
如果某一个子问题的最优解是整数解,就作为整数规划 最优目标函数值的下界。多个时取最大值。最后的下界 为整数规划的最优解。
如果某一个子问题的解还不是整数解,但这个非整数解 的目标函数值已经小于这个下界,那么这个子问题就不 必再进行分支。不然需重复进行分支。
确定整数解目标函数值上下界并不断更新 ,“剪除”目 标函数值小于下界的分支的过程,称为定界(Bound)。
(a )
st
.
p
Myi (i
条件,凡取值=1的yi对应的约束 条件将自然满足,因而为多余.
1,2,...,p)
yi pq
i1
例 工件排序问题
使用4台机床加工3件产品.各个产品的机床加工顺序以及产品i在机床j 上的加工时间 aij见表.由于某种原因,产品2的加工总工时不得超过d.现 在要求各件产品在机床上的加工方案,使在最段时间内加工完全部产品.
Z12 = 61/14
B1 Max Z = X1 + X2
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
X1
≥2Fra Baidu bibliotek
X1 , X2 ≥ 0
B11 Max Z = X1 + X2
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
X1
≥2
X2 ≥ 3
X1 , X2 ≥ 0
B12 Max Z = X1 + X2
(3/2 ,10/3) Z1 = 29/6
B1:解 (2,23/9 )
Z11 = 41/9
1
2
松弛问题 Max Z = X1 + X2 14X1 + 9X2 ≤ 51 - 6X1 + 3X2 ≤ 1 X1 , X2 ≥ 0
B1 Max Z = X1 + X2
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
分别以这两部分区域作为可行
域,用原来的目标函数,构造
两个子问题Sub1和Sub2:
O
Sub1
Sub2
Ir Xr Ir+1
X1 A
Sub1
max Z CX
Sub2 max Z CX
AX b st . x r I r
X 0
AX b st . x r I r 1
产品1 a11
机床1 产品2 a21
机床1 产品3
a23
机床2 a32
机床2
a13 机床3
a33 机床3
a14
机床4 a24
机床4
解 设xij表示产品i在机床j 上开始加工的时间(i=1,2,3;j=1,2,3,4) 1.同一件产品在不同机床上的加工顺序约束 同一件产品在下一台机床上的加工的开始时间不早于在上一台机床上加工 的结束时间,故应有 产品1:x11+a11≤x12 ; x13+a13≤x14 产品2:x21+a21≤x22 ; x23+a23≤x24 产品3:x32+a32≤x33 ;
有限要素 E1, E 2,... En , 每项 E j有两种选择 A j , A j
xj
1, E j选择 A j
0,
E
选择
j
A
j
( x1,... xn )T
(1,1,...,
1)T
,
选择( :
A1,...
An)T
(1,1,..., 0)T , 选择( A1,... An)T
2.每一台机床对不同产品的加工顺序约束 一台机床在工作中,如果已经开始加工还没有结束,则不能开始加工另一件产 品.对于机床1,先加工1不能加工2. 为了容纳两种相互排斥的约束条件,对于每台机床,分别引入0-1变量:
yj 10, ,先先加加工工某另种 (外 j产1产 ,2品 ,3品 ,4) 机床1:x11+a11≤x21+My1 ; x21+a21≤x11+M(1-y1) 机床2:x22+a22≤x32+My2 ; x32+a32≤x22+M(1-y2) 机床3:x13+a13≤x33 +My3 ; x33+a33≤x13+M(1-y3) 机床4:x14+a14≤x24 +My4 ; x24+a24≤x14+M(1-y4) 当y1=0,表示机床1先加工产品1,后加工产品2;当y1=1,表示机床1先 加工产品2,后加工产品1.
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
X1
≥2
X2 ≤ 2
X1 , X2 ≥ 0
7
(3/2 ,10/3) Z1 = 29/6
B2:解 (1,7/3 )
Z21 = 10/3
B122:解 (2,2 ) Z122 = 4
B1:解 (2,23/9 )
Z11 = 41/9
B12:解 (33/14,2 )
3.产品2的加工总时间约束 产品2的开始加工时间x21,结束加工时间为x24+a24,所以 x24+a24-x21≤d 4.目标函数的建立 由于三件产品的加工时间分别为x14+a14,x24+a24,x33+a33,全部产品的实际 加工时间为:w=max(x14+a14,x24+a24,x33+a33) Minz=W st. W≥x14+a14, W≥ x24+a24, W≥ x33+a33…………….
第三节 分支定界法
(Branch and Bound, 简称B&B)
基本思想如下:
首先不考虑变量的整数约束,求解相应的线性规 划问题,得到线性规划的最优解。
设线性规划问题: max Z CX
AX b
st .
X
0
最优解为Z。则Z为IP问题解Z*的上界,Z*≤Z。
它的可行域为图中OABCDE
例 含有相互排斥的约束条件的问题
设工序B的每周工时约束条件为0.3x1+0.5x2≤150,式(1) 现有一新的加工方式,相应的每周工时约束条件为0.2x1+0.4x2≤120 ,式(2) 如果工序B只能选择一种,那么(1)和(2)变成相互排斥的约束条件.
0, B采用原加工方式 y1 1, B不采用原加工方 多余式 的约束
X1
≥2
X1 , X2 ≥ 0
B2 Max Z = X1 + X2
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
X1
≤1
X1 , X2 ≥ 0
6
B2:解 (1,7/3 )
Z21 = 17/3
(3/2 ,10/3) Z1 = 29/6
B1:解 (2,23/9 )
Z11 = 41/9
B12:解 (33/14,2 )
二、0-1型整数规划的解法
求解思路:
检测可行解的目标函数值,根据其目标函数值可以产生一个 过滤条件,对于目标函数数值比它差的变量组合删除,这样 有效减少运算次数,使最优解快速找到。
例:求解 0 1整数规划
max Z 3 x 1 2 x 2 5 x 3
x1 2 x2 x3 2
选择q个约束条件,引p个入01变量
0,选择第i个约束条(件 i 1,2,...,p) yi1,不选择第 i个约束条(件 i 1,2,...,p)
在约束条件中保证了在P个0-1
约束条件组
变量中有p-q个1,q个0;凡取值
=0的yi对应的约束条件为原约束
n
st. j1
ai jx j bi
一、0—1规划数学模型
例:固定费用问题 有三种资源被用于生产三种产品,资源量、产品单件费用、 资源消耗量以及生产产品的固定费用。要求制定一个生产计 划,总收益最大。
消耗 产品 产品1
资源
A
2
产品2 4
产品3 8
资源量 500
B
2
3
4
300
C
1
2
3
100
单件费用 4
5
6
固定费用 100
150
200
单件售价 8
分支定界算法对于混合整数规划特别有效, 对没有整数要求的变量就不必分支,这将大 大减少分支的数量。
第四节 0—1型整数规划
一、0-1变量及其应用
某些特殊问题,只做是非选择,故变量设置简化为0或1,
1代表选择,0代表不选择。
选取某个特定方案
1,当决策选取方案 x 0,当决策不选取方案 问题含有较多的要素, 每项要素有 2种选择,用 0 1变量描述。
0, B采用新加工方式 y2 1, B不采用新加工方式
当y1=1,y2=0;采用
0.3x1 0.5x2 150My1 新工艺,(2)式成立; st.0.2x1 0.4x2 120My2
y1 y2 1
p
p个约束条件aijxj bi(i 1,2,...,p) j1
X1
≥3
X2 ≤ 2 X1 , X2 ≥ 0
Max Z = X1 + X2
14X1 + 9X2 ≤ 51
- 6X1 + 3X2 ≤ 1
2≤ X1
≤2
X2 ≤ 2 X1 , X2 ≥ 0
8
说明:
1、在B121,B122 的可行域中不可能存在比以上所求解 的2个最优解更好的解。
2、目标函数值maxZ=4作为IP规划的最优解的目标 函数的一个界限(MAX,下界;MIN,上界);
xj>0.
max Z 4 x 1 5 x 2 6 x 3 100 y 1 150 y 2 200 y 3 约束条件xj ≤ Mjyj,yj=1;
2 x 1 4 x 2 8 x 3 500
2
x1
3
x2
4
x3
300
st .
x1
2 x 2 3 x 3 100 x1 M 1 y1 x2 M 2y2
10
12
解:xj是生产第j种产品的产量。
总收益等于销售减去所生产的产品的总费用。建立数学模型时,无法确
定某种产品是否生产,不能确定相应的固定费用是否发生,用0-1变量解
决此问题。
分析:如果生产第j种产品,
1, 生产第
y
j
0
,
不生产第
j 种产品( j 种产品(
x j 0) x j 0)
整数规划问题的求解方法 分支定界法图解整数规划
松弛问题 Max Z = X1 + X2 14X1 + 9X2 ≤ 51 - 6X1 + 3X2 ≤ 1 X1 , X2 ≥ 0
该整数规划松弛问题的解为: (X1 ,X2 )= (3/2 ,10/3)
Z1 = 29/6
5
B2:解 (1,7/3 )
Z21 = 10/3