运筹学3.2割平面算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
jS
i 0,1,L , m
若对所有的 i 0,1,L , m, bi均为整数 STOP ! x0已经是( IP )的最优解
XJTU
第三章 整数线性规划
OR
否则, 至少存在某一个l : 0 l m,使得bl不是整数 .
xBl aljxj bl
jS
诱导(生成)方程
bl bl fl , 0 fl 1, alj alj flj, 0 alj 1, j S
称为割平面条件)
费 用 减 小
o o
o
o
o o
ox1 o
oo ox2 o
x0
该割平面条件将(P0)的可行域割掉一部分, 且使这个非整数
向量 x0恰好在被割掉的区域内
但原( IP )的任一可行解均未被切割掉
新的 松弛问题 改进的松弛问题 ( P1 )
XJTU
第三章 整数线性规划
OR
按上述增加约束、逐步迭代的过程中, 若某步所得的松弛
令 h 1 , 1
bl
jS
alj
xj
1
bl
jS
1
al j x j
1
xBl
0
引入松弛变量 Sl 0
Sl
jS
alj
xj
bl
整数割平面
XJTU
第三章 整数线性规划
导出有效不等式的方法 :
取整方法
合并方法
同余方法
超加函数法
OR
§ 3.3 分解算法
它对应的是新松弛问题的一个原始基本解, 但不可行 .
XJTU
第三章 整数线性规划
OR
Gomory 割平面算法计算步骤 :
S 1 : (用单纯形法)求解整数规划问题( IP )的松弛问题( P0) 若( P0)没有最优解, STOP ! ( IP )也没有最优解 .
若( P0)有最优解 x0, 如果 x0是整数向量, STOP ! x0为( IP )
的最优解. 否转 S 2 .
S 2 : 任选 x0的一个非整数值分量 bl (0 l m) , 按上述方式
构造割平面方程 fljxj s fl .
jS
S 3 : 将此割平面方程加到松弛问题( P0)得新的松弛问题.
用对偶单纯形法求解这个新的松弛问题. 若其最优解为
整数向量, 则STOP, 它亦为( IP )的最优解.
问题输入长度L 的多项式
XJTU
第三章 整数线性规划
OR
分数割平面算法的缺点 :
① 涉及分数. 计算机仅能以有限精度存贮各个参数的值, 从而对无限((不)循环)小数就产生了误差 .
一次一次迭代 误差积累
很难判定一个给定的元素是否为整数
但判定一个元素是否为整数却是生成割平面所必须的 !
② 对偶性 :导致在达到最优性以前未必可找到原始可行解
否则, 用这个最优解代替 x0, 转S 2 .
XJTU
第三章 整数线性规划
OR
特点 :
割平面方程系数为分数
迭代过程中保持对偶可行性 分数对偶割平面算法
且用对偶单纯形法求解
收敛性 :
按一定的规则(如字典序)选取诱导方程 用对偶单纯形算法时避免循环
分数对偶割平面算法可在有限步内收敛(终止)
2P(L)
jS
fljxj s fl
jS
(△)
对应于生成行l 的 Gomory割平面条件
系数为分数→ 分数割平面
Th. : 将割平面(△)加到松弛问题(P0 )中并没有割掉原IP问
题的任何整数可行点. 当 bl 不是整数时, 则对应新的 松弛问题有一个原始基本不可行解和对偶可行解 .
用对偶单纯形法求解 !
§ 3.2 割平面算法
XJTU
第三章 整数线性规划
OR
1958 R.E.Gomory 提出割平面(cutting plane)的概念
理论依据 : IP与LP之间的关系, 即前述的“conv(S)”结论 基本思想 :
考虑纯IP :
min cT x
s.t. Ax b
( IP )
x0
xZn
A、b、c 均为整值
jS
将各变量的系数分离成整数部分和小数部分 :
h xBl halj xj h h xBl halj halj xj hbl hbl hbl
jS
jS
00
0
0
h xBl halj xj hbl hbl hbl
jS
0 g 1
∵要求 xBl , xj 均取整值 ∴ 上式左边必为整数
放弃该约束
min cT x s.t. Ax b
x 0 ( P0 )
称为( IP )的松弛问题
XJTU
第三章 整数线性规划
OR
用单纯形法或别的方法求解( IP )的松弛问题( P0), 得其最优解 x0,
若x0为整数向量→STOP, x0亦为( IP )的最优解.
否则, 对( P0)增加一个线性约束(几何上为超平面, 故
XJTU
第三章 整数线性规划
OR
Proof: 由上述推导过程, 割平面(△)是原( IP )的整数约束推出来
的, 所以它不会切割掉任何整数可行解 .
可选松弛变量S作为对应所增加新约束条件的基变量, 它
与原来的基变量 xB1 ,L , xBm一起必可构成新松弛问题的基变量.
当 bl 不是整数时, fl 0 , 新松弛问题的基本解中有 S fl 0
算法通常需要很多次迭代
既
可行解
若算法在中途停止, 也 得不到原始问题的 整数解
结果毫无用处 !
XJTU
第三章 整数线性规划
为克服上述不足 :
对偶 整数割平面算法 原始
OR
整数割平面方程的导出 :
诱导方程
xBl aljxj bl
jS
任意非零的h乘以上式两边 hxBl haljxj hbl
LP问题
无可行解 无界
原问题( IP )亦不可行
STOP
原问题( IP )或不可行或无界
割平面法为一种松弛方法 !
关键 : 如何生成割平面, 不同的构造方法将产生不同的算法 .
XJTU
第三章 整数线性规划
OR
Gomory 分数割平面算法
设用单纯形法求解( IP )的松弛问题( P0)所得的最优基本 可行解为 x0 :
XJTU
第三章 整数线性规划
OR
思想 : 通过对原问题作适当的转换或变形, 以便化简、甚至
消去问题的某些复杂约束和(或)复杂变量, 从而将原 复杂问题的求解变为对另一个或一系列相对简单问题 的求解 .
∵ 最后真正求解的简单问题一般是原问题某种形式的LP 或纯整数规划松弛
∴ 亦可看成是一种松弛算法
通常的分解算法与松弛技术的结合 .
n
复杂约束 简单约束
XJTU
第三章 整数线性规划
OR
Benders 分解 Lagrangian 松弛法的“对偶”形式 将变量分为复杂变量和简单变量
连续 y OR : 整数 x
整数 x 连续 y
MIP : max cT x hT y
s.t. Ax Gy b
x
Z
n
,
y
Rp
For example 固定x → LP
XJTU
第三章 整数线性规划
OR
h xBl halj xj hbl jS
诱导方程两边同乘以[h] : h xBl haljxj hbl
ቤተ መጻሕፍቲ ባይዱ中减去前一不等式
jS
halj halj xj hbl hbl (一般) Gomory 割平面
jS
h取值不同, 则可导出不同形式的割平面 h 1 分数割平面
多面体理论 Minkowski Th
转换为仅有一个连续变量的混合整数规划
XJTU 一般分解方法
第三章 整数线性规划
上述两个分解算法思想的联合使用
OR
MIP
max cT x hT y s.t. A11x A12 y b1
A21x A22 y b2 0 x E
x
Z
n
,
y
0
给定的上界向量
x0
基 B AB1 ,L , ABm
基变量 xB1 ,L , xBm
下标集合记为 S , 而非基变量下标集为 S
迭代终止时目标函数、各个约束条件对应的典式分别为 :
x0
z jxj z0
jS
xB0 z, a0j j
b0 z0
xB0 a0jxj b0
jS
xBi aijxj bi , i 1,L , m
由变量的非负性
alj xj aljxj
jS
jS
生成方程变为 :
xBl alj xj bl jS
左边取值必为整数值
xBl alj xj bl
jS
从诱导方程中减去该不等式
XJTU
第三章 整数线性规划
OR
alj alj xj bl bl
jS
c
引进松弛变量S
fljxj fl
XJTU
第三章 整数线性规划
OR
Lagrangian 松弛法 :
将约束分为简单约束和复杂约束,
再利用Lagrangian 松弛消去复杂约束 .
利用Lagrangian 乘子将复杂约束“转入”目标
min cT x
s.t. Ax b
x
Z
n
max cT x
s.t. A1x b1
A2 x b2
x
Z
i 0,1,L , m
若对所有的 i 0,1,L , m, bi均为整数 STOP ! x0已经是( IP )的最优解
XJTU
第三章 整数线性规划
OR
否则, 至少存在某一个l : 0 l m,使得bl不是整数 .
xBl aljxj bl
jS
诱导(生成)方程
bl bl fl , 0 fl 1, alj alj flj, 0 alj 1, j S
称为割平面条件)
费 用 减 小
o o
o
o
o o
ox1 o
oo ox2 o
x0
该割平面条件将(P0)的可行域割掉一部分, 且使这个非整数
向量 x0恰好在被割掉的区域内
但原( IP )的任一可行解均未被切割掉
新的 松弛问题 改进的松弛问题 ( P1 )
XJTU
第三章 整数线性规划
OR
按上述增加约束、逐步迭代的过程中, 若某步所得的松弛
令 h 1 , 1
bl
jS
alj
xj
1
bl
jS
1
al j x j
1
xBl
0
引入松弛变量 Sl 0
Sl
jS
alj
xj
bl
整数割平面
XJTU
第三章 整数线性规划
导出有效不等式的方法 :
取整方法
合并方法
同余方法
超加函数法
OR
§ 3.3 分解算法
它对应的是新松弛问题的一个原始基本解, 但不可行 .
XJTU
第三章 整数线性规划
OR
Gomory 割平面算法计算步骤 :
S 1 : (用单纯形法)求解整数规划问题( IP )的松弛问题( P0) 若( P0)没有最优解, STOP ! ( IP )也没有最优解 .
若( P0)有最优解 x0, 如果 x0是整数向量, STOP ! x0为( IP )
的最优解. 否转 S 2 .
S 2 : 任选 x0的一个非整数值分量 bl (0 l m) , 按上述方式
构造割平面方程 fljxj s fl .
jS
S 3 : 将此割平面方程加到松弛问题( P0)得新的松弛问题.
用对偶单纯形法求解这个新的松弛问题. 若其最优解为
整数向量, 则STOP, 它亦为( IP )的最优解.
问题输入长度L 的多项式
XJTU
第三章 整数线性规划
OR
分数割平面算法的缺点 :
① 涉及分数. 计算机仅能以有限精度存贮各个参数的值, 从而对无限((不)循环)小数就产生了误差 .
一次一次迭代 误差积累
很难判定一个给定的元素是否为整数
但判定一个元素是否为整数却是生成割平面所必须的 !
② 对偶性 :导致在达到最优性以前未必可找到原始可行解
否则, 用这个最优解代替 x0, 转S 2 .
XJTU
第三章 整数线性规划
OR
特点 :
割平面方程系数为分数
迭代过程中保持对偶可行性 分数对偶割平面算法
且用对偶单纯形法求解
收敛性 :
按一定的规则(如字典序)选取诱导方程 用对偶单纯形算法时避免循环
分数对偶割平面算法可在有限步内收敛(终止)
2P(L)
jS
fljxj s fl
jS
(△)
对应于生成行l 的 Gomory割平面条件
系数为分数→ 分数割平面
Th. : 将割平面(△)加到松弛问题(P0 )中并没有割掉原IP问
题的任何整数可行点. 当 bl 不是整数时, 则对应新的 松弛问题有一个原始基本不可行解和对偶可行解 .
用对偶单纯形法求解 !
§ 3.2 割平面算法
XJTU
第三章 整数线性规划
OR
1958 R.E.Gomory 提出割平面(cutting plane)的概念
理论依据 : IP与LP之间的关系, 即前述的“conv(S)”结论 基本思想 :
考虑纯IP :
min cT x
s.t. Ax b
( IP )
x0
xZn
A、b、c 均为整值
jS
将各变量的系数分离成整数部分和小数部分 :
h xBl halj xj h h xBl halj halj xj hbl hbl hbl
jS
jS
00
0
0
h xBl halj xj hbl hbl hbl
jS
0 g 1
∵要求 xBl , xj 均取整值 ∴ 上式左边必为整数
放弃该约束
min cT x s.t. Ax b
x 0 ( P0 )
称为( IP )的松弛问题
XJTU
第三章 整数线性规划
OR
用单纯形法或别的方法求解( IP )的松弛问题( P0), 得其最优解 x0,
若x0为整数向量→STOP, x0亦为( IP )的最优解.
否则, 对( P0)增加一个线性约束(几何上为超平面, 故
XJTU
第三章 整数线性规划
OR
Proof: 由上述推导过程, 割平面(△)是原( IP )的整数约束推出来
的, 所以它不会切割掉任何整数可行解 .
可选松弛变量S作为对应所增加新约束条件的基变量, 它
与原来的基变量 xB1 ,L , xBm一起必可构成新松弛问题的基变量.
当 bl 不是整数时, fl 0 , 新松弛问题的基本解中有 S fl 0
算法通常需要很多次迭代
既
可行解
若算法在中途停止, 也 得不到原始问题的 整数解
结果毫无用处 !
XJTU
第三章 整数线性规划
为克服上述不足 :
对偶 整数割平面算法 原始
OR
整数割平面方程的导出 :
诱导方程
xBl aljxj bl
jS
任意非零的h乘以上式两边 hxBl haljxj hbl
LP问题
无可行解 无界
原问题( IP )亦不可行
STOP
原问题( IP )或不可行或无界
割平面法为一种松弛方法 !
关键 : 如何生成割平面, 不同的构造方法将产生不同的算法 .
XJTU
第三章 整数线性规划
OR
Gomory 分数割平面算法
设用单纯形法求解( IP )的松弛问题( P0)所得的最优基本 可行解为 x0 :
XJTU
第三章 整数线性规划
OR
思想 : 通过对原问题作适当的转换或变形, 以便化简、甚至
消去问题的某些复杂约束和(或)复杂变量, 从而将原 复杂问题的求解变为对另一个或一系列相对简单问题 的求解 .
∵ 最后真正求解的简单问题一般是原问题某种形式的LP 或纯整数规划松弛
∴ 亦可看成是一种松弛算法
通常的分解算法与松弛技术的结合 .
n
复杂约束 简单约束
XJTU
第三章 整数线性规划
OR
Benders 分解 Lagrangian 松弛法的“对偶”形式 将变量分为复杂变量和简单变量
连续 y OR : 整数 x
整数 x 连续 y
MIP : max cT x hT y
s.t. Ax Gy b
x
Z
n
,
y
Rp
For example 固定x → LP
XJTU
第三章 整数线性规划
OR
h xBl halj xj hbl jS
诱导方程两边同乘以[h] : h xBl haljxj hbl
ቤተ መጻሕፍቲ ባይዱ中减去前一不等式
jS
halj halj xj hbl hbl (一般) Gomory 割平面
jS
h取值不同, 则可导出不同形式的割平面 h 1 分数割平面
多面体理论 Minkowski Th
转换为仅有一个连续变量的混合整数规划
XJTU 一般分解方法
第三章 整数线性规划
上述两个分解算法思想的联合使用
OR
MIP
max cT x hT y s.t. A11x A12 y b1
A21x A22 y b2 0 x E
x
Z
n
,
y
0
给定的上界向量
x0
基 B AB1 ,L , ABm
基变量 xB1 ,L , xBm
下标集合记为 S , 而非基变量下标集为 S
迭代终止时目标函数、各个约束条件对应的典式分别为 :
x0
z jxj z0
jS
xB0 z, a0j j
b0 z0
xB0 a0jxj b0
jS
xBi aijxj bi , i 1,L , m
由变量的非负性
alj xj aljxj
jS
jS
生成方程变为 :
xBl alj xj bl jS
左边取值必为整数值
xBl alj xj bl
jS
从诱导方程中减去该不等式
XJTU
第三章 整数线性规划
OR
alj alj xj bl bl
jS
c
引进松弛变量S
fljxj fl
XJTU
第三章 整数线性规划
OR
Lagrangian 松弛法 :
将约束分为简单约束和复杂约束,
再利用Lagrangian 松弛消去复杂约束 .
利用Lagrangian 乘子将复杂约束“转入”目标
min cT x
s.t. Ax b
x
Z
n
max cT x
s.t. A1x b1
A2 x b2
x
Z