整数线性规划
- 格式:pdf
- 大小:819.65 KB
- 文档页数:16
第三章 整数线性规划
【教学内容】
整数线性规划问题举例、整数线性规划模型及其求解的困难性、可用线性规划求解的整
数线性规划问题、求解整数线性规划问题的Gomory割平面法、求解整数线性规划问题的分
枝定界方法、0-1规划问题举例、0-1规划问题的解法、整数线性规划问题的一些例子、
用LINGO软件包求解整数线性规划问题。
【教学要求】
要求学生熟悉整数线性规划模型,能熟练地掌握求解整数线性规划问题的Gomory割平
面法和分枝定界方法;熟悉并会求解0-1规划问题,能够建立整数线性规划模型并用软件
求解整数线性规划问题。
【教学重点】
整数线性规划模型,Gomory割平面法,分枝定界方法,0-1规划问题。
【教学难点】
Gomory割平面法,分枝定界方法,0-1规划问题的求解。
【教材内容及教学过程】
整数线性规划(Integer Linear Programming,简记为ILP)问题研究的是要求变量取整数
值时,在一组线性约束条件下一个线性函数最优问题,是应用非常广泛的运筹学的一个重要
分支。其中变量只取0或1的整数线性规划问题称为0-1规划。只要求部分变量取整数值
的线性规划称为混合整数线性规划。
整数线性规划与线性规划有着密不可分的关系,它的一些基本算法的设计都是以相应
的线性规划的最优解为出发点的。但是变量取整数值的要求本质上是一种非线性约束,因此
解整数线性规划的“困难度”大大超过线性规划,一些著名的“困难”问题都是整数线性规
划问题。
本章主要介绍整数线性规划一些基本概念、基本理论、实际背景及常用算法。
第一节 整数线性规划模型
§1.1 整数线性规划问题举例
例3.1.1[2] 工地上需要长度为mlll,,,
21的钢材数分别为mbbb,,,
21根,取长为l的
原材料进行截取。已知有n种截取方案:
12iiimiAaaa,1,2,,in
其中,jia表示一根原料用第i种方案可截得长为jl的钢材的根数(1,2,,in,1,2,,jm),因此
1122iimmilalalal,1,2,,in
下料问题就是在满足要求:截取长度为mlll,,,
21的钢材数分别为mbbb,,,
21根时,
用的原料材根数最少的方案。假定ix表示按方案iA截取用的原钢材数目,于是问题表示为:
12
11112211
21122222
1122min
..
0,1,,n
nn
nn
mmmnnm
izxxx
axaxaxb
axaxaxb
st
axaxaxb
xin
整数, (3.1.1)
在许多实际问题中,我们所研究的量具有不可分割的性质,如人数、机器数、项目数等;
而开与关、取与舍、真与假等逻辑现象都需要用取值仅为0或1的变量来进行数量化的描述。
涉及这些量的线性规划问题,非整数的解答显然不合乎要求。
§1.2 整数线性规划模型及其求解的困难性
考虑如下形式的整数线性规划问题ILP
min
..0Tcx
Axb
stx
x
为整数向量 (3.1.2)
其中
ijmnAa
,
12,,,T
ncccc,
12,,,T
mbbbb以及
12,,,T
nxxxx,A,
b,c中的元素皆为整数。在(3.1.2)中除去x为整数向量这一约束后,就得到对应的标准线
性规划问题
min
..
0Tcx
Axb
st
x
(3.1.3)
称(3.1.3)是(3.1.2)的松弛问题。如果(3.1.2)对应的标准线性规划问题(3.1.3)的最优解是整数,
则它也是(3.1.2)的最优解。对于标准线性规划问题,已有有效的算法。那么能不能通过求解
对应的线性规划问题,然后将其解舍入到最靠近的整数解呢?
考察图3.1.1所示的情况,可以看出舍入方法是不可取的。
既然ILP的可行域是一些离散的整数点(图3.1.1),如果其可行域有界,那么所包含的
整数点的数目就是有限的,可否用枚举法来解ILP问题呢?对一般ILP问题,枚举法是无能
为力的。如50个城市的旅行售货员问题(见例3.4.4),所有可能的旅行路线个数为
2)!49(
,
这是一个天文数字。
由上可见,求解整数线性规划问题ILP比求解对应的线性规划问题LP要困难得多。事
实上,整数线性规划模型并不是线性模型。仅以0-1规划而言,决策变量取值为0或1这
个约束是可以用一个等价的非线性约束
njxx
jj,,1,0)1( (3.1.4)
来代替的。因而变量限制为整数本质上是一个非线性约束。
第二节 求解整数线性规划问题的常用方法
从1959年R.E.Gomory提出解整数线性规划的割平面算法至今,经过几十年的努力,
已经发展起来了一些常用算法,如各种类型的割平面算法、分枝定界算法、解0-1规划的
隐枚举法、分解方法、群论方法、动态规划方法等等,本节主要介绍求解整数线性规划问题
的几个常用算法。
§2.1 可用线性规划求解的整数线性规划问题
可用线性规划问题求解的整数线性规划问题,实际上是这样的一类问题,它的解就是
线性规划解,即可以通过单纯形法来求整数规划的解。
定义3.2.1矩阵Anmija
)(,若它的任一子行列式的值均为0,1或者1,则称这样
的矩阵为幺模矩阵。
幺模矩阵的所有元素都是0,1或者1。
定理3.2.1 若Anmija
)(是幺模矩阵,B是由A中的m个列向量组成的矩阵,若B可
x的最优解LP的最优解ILP的可行区域LP
费用下降方向
01x2x
图 3.1.1 逆,则1B的所有元素都是0,1或者1。
定理3.2.2 若Anmija
)(是幺模矩阵,B是由A中的m个列向量组成的可逆矩阵,
bBx
B1,若b是整数,则Bx是整数。
因此,对于规划问题(3.1.2),若系数矩阵Anmija
)(为幺模矩阵,且右端项b是整数,
则可以用单纯形方法直接求解对应的标准线性规划问题(3.1.3),就可以得到它本身的最优整
数解。
§2.2 求解整数线性规划问题的Gomory割平面法
1、 整数线性规划问题与其对应的松弛问题的关系
解整数线性规划问题的割平面法有多种类型,但它们的基本思想是相同的。以下我们
介绍Gomory割平面法。它在理论上是重要的,被认为是整数线性规划的核心部分。
设(3.1.2)的可行域为D,对应的松弛问题(3.1.3)的可行域为0D(多面凸集),当D
时它是由有限个或可数的整数点构成的集合。问题(3.1.2)和问题(3.1.3)之间具有如下明显的
关系:
⑴.0DD;
⑵.若问题(3.1.3)无可行解,则问题(3.1.2)无可行解;
⑶.问题(3.1.3)的最优值是问题(3.1.2)的最优值的一个下界;
⑷.若问题(3.1.3)的最优解0x是整数向量,则0x是问题(3.1.2)的最优解。
2、 割平面法的基本思想
用单纯形法先解松弛问题(3.1.3),若问题(3.1.3)的最优解0x是整数向量,则0x是ILP
问题(3.1.2)的最优解;若问题(3.1.3)的最优解0x的分量不全是整数,设法构造一个线性约束
条件(称它为割平面条件),新增加的这个割平面条件将问题(3.1.3)的可行区域0D割掉一块,
且这个非整数解0x恰好在被割掉的区域内,而原ILP问题(3.1.2)的任何一个可行解(整数点)
都没有被割去。给问题(3.1.3)增加这个约束条件,用得到的问题替换问题(3.1.3),继续以上
过程。
3、 Gomory割平面法的割平面条件
用单纯形方法求解问题(3.1.2)的松弛问题(3.1.3),得到最优基本可行解0x,设它对应的
基为),,(
1mBBAAB,
mBBxx,,
1为基变量,基变量的下标集合为S,非基变量的下标集合为S。最优解所对应的问题(3.1.3)是
0min
jj
jSzxz
..,1,,
iBijji
jSstxaxbim
(3.2.1)
为使符号简便计,令zx
B
0,jja
0,00zb。如果,0,1,,
ibim,全是整数,已经得到了问题(3.1.2)的最优解0x;否则至少有一个lb不是整数)0(ml,设lb所对应的
约束方程是
SjljljBbxax
l (3.2.2)
我们用][a表示不超过a的最大整数,则有
[],
[]ljljlj
lllaafjS
bbf
(3.2.3)
其中ljf(01,
ljfjS)是lja的分数部分;lf(10
lf)是lb的分数部分。由于
方程(3.2.2)中的变量是非负的,因此有
Sjjlj
Sjjljxaxa][ (3.2.4)
从而方程(3.2.2)变为
SjljljBbxax
l][ (3.2.5)
因为x为整数向量,故(3.2.5)式左端为整数,所以右端用lb的整数部分去代替后,(3.2.5)式
的不等式关系仍成立,即有
SjljljBbxax
l][][ (3.2.6)
(3.2.2)减去(3.2.6),得
][])[(
ll
Sjjljljbbxaa
(3.2.7)
注意到(3.2.3)关系式,我们得到线性约束
l
sjjljfxf
(3.2.8)
称它为对应于生成行l的Gomory割平面条件。
将(3.2.8)改写为(引进松弛变量s)超平面方程(3.2.9)
l
sjjljfsxf
(3.2.9)
称它为割平面。将割平面(3.2.9)加到问题(3.2.1),就得到了一个新的线性规划问题,且已经
具有满足最优性条件的基本不可行解。
定理3.2.3 如果把割平面(3.2.9)加到问题(3.2.1)中,那么没有割掉问题(3.1.2)的任何整数可行点,当lb不是整数时,新问题是一个满足最优性条件的不可行基本解。
4、 Gomory割平面法计算步骤
第1步 求解问题(3.1.3)。若问题(3.1.3)没有最优解(包括无可行解和无有限最优解),
则问题(3.1.2)也没有最优解;若问题(3.1.3)有最优解0x,且0x是整数向量,则0x是问题(3.1.2)