第5章整数规划
j
x2 x1 x3
j
-1/3 -2/3
例2:用割平面法求解整数规划
max z 3x1 x2 3x1 2 x2 3 5 x1 4 x2 10 st. 2 x1 x2 5 x1 , x2 0 且为整数
解:引入松驰变量x3,x4,x5,将问题化为标准 形式,用单纯形法解其松驰问题,得最优单纯形 表如下:
第五章
整数规划
1
§1 整数规划的数学模型
一、整数规划的数学模型 1.整数规划(Integer Programming 简记IP) 要求一部分或全部决策变量必须取整数的规划问题
2. 松驰问题(Slack Problem)
不考虑整数约束,由余下的目标函数和约束条件构 成的规划问题(也称伴随规划) 3. 整数线性规划(ILP) 若松驰问题是一个线性规划问题
3 x1 1 0 0 0 0
-1 x2 0 1 0 0 0
0 x3 0 -1/2 -2 1/2 -5/7
0 x4 0 0 1 0 0
0 x5 0 0 0 1 -3/7
0 X6 1 3/2 11 -7/2 0
30
j
cj CB 3 -1 0 0 XB x1 x2 x3 x5 b 1 5/4 5/2 7/4
25
cj CB 1 1 0 1 1 0 XB x2 x1 x5 b 7/4 3/4 -3/4 1 1 1
1 x1 0 1 0 0 0 1 0 0
1 x2 1 0 0 0 1 0 0 0
0
0
0 x5 0 0 1 0 1 -1/3 -4/3
26
x3 x4 3/4 1/4 -1/4 1/4 -3/4 -1/4 -1/2 -1/2 0 0 1 0 0 1/3 1/3
16
max z x1 x2 x1 x2 1 st .3 x1 x2 4 x1 , x2 0 且为整数
p (3/4,7/4) q (1,1)
x2 1
* *
*
*
17
二、割平面法步骤 1. 解松驰问题的最优解; 2. 若X*的所有分量均为整数,则满足整数约束,X* 即为整数规划的最优解。若存在X*的某个分量为小 数,则选取分数部分最大的分量,构造新的约束条 件; 3. 将新的约束条件加入松驰问题中,形成一个新的 线性规划,对这个新的线性规划求解; 4. 若新的解满足整数约束,则此解为整数规划的最 优解,否则重复第2,3步,直到获得最优解为止。
max Z 20x1 10x2
5 x1 4 x2 24 s.t 2 x1 5 x2 13 x , x 0, 整数 1 2
(1)
10
若暂且不考虑 x1 , x2 取整数这一条件。则(1)就变为下列线 性规划 :
max Z 20x1 10x2
5 x1 4 x2 24 s.t 2 x1 5 x2 13 x ,x 0 1 2
(2)
将式(2)称为(1)的松驰问题,解(2)得到最优解:
* x1 4.8, * x2 0,
Z * 96
(3)
但它不满足(1)的整数要求。因此它不是(1)的最优解。
11
若取X1=(5,0)T,它不满足 (1) 中的约束条件1。
若取X2=(4,0)T,X2是 (1) 的可行解, 但它却不是(1) 的最优 解。 因为当X2=(4,0)T 时,Z = 80,
4
§1 整数规划的数学模型
二、整数规划举例
例1:某厂生产A1和A2两种产品,需要经过B1,B2, B3三道工序加工,单件工时和利润以及各工序每周 工时限额见下表,问工厂应如何安排生产,才能使 总利润最大?
B1 B2 B3 利润
A1
A2
0.3
0.7
0.2
0.1 100
0.3
0.5 150
25
40
5
工时限制 250
8
例1:某厂拟用集装箱托运甲乙两种货物,每箱的体积、 重量、可获利润以及托运所受限制见表.问每集装箱 中两种货物各装多少箱,可使所获利润最大?
货物/箱 甲 乙 托运限制/ 集装箱 体积/米3 5 4 重量/百斤 2 5 利润/百元 20 10
24
13
9
解:设 x1 , x2 分别为甲、乙两种货物的托运箱数. 则这是一个纯整数规划问题。其数学模型为:
6
§1 整数规划的数学模型
二、整数规划举例
例2:见书P130 例1
7
§1 整数规划的数学模型
三、整数规划解的特点
1.整数规划问题的可行解集合是它的松驰问题可行解 集合的一个 子集 。
2.整数规划问题最优解的目标函数值不优于 松驰问题 最优解的目标函数值。 3.对松驰问题最优解中非零分量取整,所得到的解不 一定是整数规划问题的最优解,甚至也不一定是整数 规划问题的可行解。
构造新的约束条件为:
( f
jK
割平面约束
i0 j
) x j fi0
21
四、新增约束条件的性质 性质1:原松驰问题的非整数最优解不满足新增约 束条件。
性质2:原松驰问题的整数可行解均满足新增的约 束条件,也就是说,整数可行解始终保留在每次形 成的线性规划的可行域中。
22
下面说明新增约束:
当X3=(4,1)T时,Z′=90>Z,即松驰问题的最优解通过“舍零取 整”得到的X1,X2都不是(1)的最优解。因此通过松驰问题最 优解的“舍零取整”的办法 , 一般得不到原整数规划问题 的最优解。
12
x2
松驰问题(2)的可行域K如图, 则原整数规划(1)的可行域 K0应 是K中有限个格点(整数点)的集 合。图中“*”为整数点(格点)。
23
例1:用割平面法求解整数规划
max z x1 x2 x1 x2 1 st .3 x1 x2 4 x1 , x2 0 且为整数
解:引入松驰变量x3,x4,将问题化为标准形式, 用单纯形法解其松驰问题,得最优单纯形表如下:
24
cj CB 1 1 XB x2 x1 b 7/4 3/4
2
§1 整数规划的数学模型
一、整数规划的数学模型
整数线性规划数学模型的一般形式为:
max(min) z cj xj
j 1 n
a x ( )b i 1,2,, m ij j i j1 st. x j 0 j 1,2,, n x j 中部分或全部取整数
1 1 3 x4 x6 x7 4 4 4
31
cj CB 3 -1 0 0 0
( f
jK
i0 j
) x j fi0
能够“割掉”松驰问题中的非整数可行解。
证明:设X*为松驰问题的最优解,将其代入新增 约束有: 0 fi ,(因非基变量取值为0) 这与 0 fi 1 矛盾,即X*不满足新增约束。
0
0
注:经验表明若从最优单纯形表上选择具有最大小 数部分的非整数分量所在行构造割平面约束,往往 可以提高“切割”效果,减少“切割”次数。
n
3
§1 整数规划的数学模型
一、整数规划的数学模型
整数线性规划分为:
纯整数LP——Pure Integer Linear Programming
混合整数LP——Mixed Integer Linear Programming
0-1型整数LP——Zero-One Integer Linear Programming
jK
分解 ai0 j 和 bi0 成两部分,一部分是不超过该数的 最大整数,另一部分是余下的正小数。即:
20
三、新约束条件的构造
ai0 j N i0 j f i0 j N i0 j ai0 j 且为整数 0 fi0 j 1 ( j K ) bi0 N i0 f i0 N i0 bi0 且为整数 0 fi0 1
引入松驰变量x6,得割平面方程:
1 2 6 x3 x5 x6 7 7 7
28
1 2 6 x3 x5 x6 7 7 7
cj CB 3 -1 0 0 XB x1 x2 x4 x6 b 13/7 9/7 31/7 -6/7
3 x1 1 0 0 0 0
-1 x2 0 1 0 0 0
18
三、新约束条件的构造 在松驰问题的最优单纯形表中,m个约束方程可表 示为:
xi aij x j bi
jK
i Q
其中Q为m个基变量的下标集合,K为n-m个非 基变量的下标集合。
19
Hale Waihona Puke 、新约束条件的构造 若 bi (i0 Q) 不是整数,其对应的约束方程:
0
xi0 ai0 j x j bi0
13
由于整数规划问题(1)可行解的个数较少,故可用“穷举法”来 求解,即将 K0 中所有整数点的目标函数值都计算出来,然后 逐一比较找出最优解。 取 x1 =0,1,2,3,4
x2 =0,1,2
其组合最多为15个(其中有不可行的点)。 但对大型问题,这种组合数的个数可能大得惊人! 如在指派 问题中,有n项任务指派n个人去完成,不同的指派方案共有 n!种。当n=20时,这个数超过2×1018。如果用穷举法每一个 方案都计算一遍,就是用每秒亿次的计算机,也要几十年。
0 x3 1/7 -2/7 -3/7 -1/7 -5/7
0 x4 0 0 1 0 0
0 x5 2/7 3/7 22/7 -2/7 -3/7
0 X6 0 0 0 1 0
29
j
1 2 6 x3 x5 x6 7 7 7
cj CB 3 -1 0 0 XB x1 x2 x4 x5 b 1 0 -5 3