纯整数规划的求解

Download Report

Transcript 纯整数规划的求解

Ch6 整数规划
Integer Programming
6.2 纯整数规划的求解(续)
Solving Pure Integer Programming
6.2 纯整数规划的求解
Solving Pure Integer Programming
Ch6 整数规划
Integer Programming
6.2.2 求解IP的割平面法
设纯整数规划
n
n
max Z   c j x j
a x
j 1
j 1
ij j
 bi
x j  0且为整数,j  1,, n
松弛问题
n
max Z   c j x j
j 1
的最优解
n
a x
j 1
X=( B1b,0)T
ij j
 bi
x j  0,j  1,, n
b  B1b  (b1 , b2 ,, bm )T
设xi不为整数,
xi   aik xk  bi , 即xi  bi   aik xk
k
k
xk 为非基变量
6.2 纯整数规划的求解
Solving Pure Integer Programming
Ch6 整数规划
Integer Programming
将 bi 及aik 分离成一个整数与一个非负真分数之和:
aik  aik   fik , 0  fi  1, 0  fik  1
bi  [bi ]  fi ,
则有
xi  [bi ]  f i   [aij ]xk   f ik xk
k
k
xi  [bi ]  [aij ]xk  fi   fik xk
k
k
等式(6.5)两边都为整数并且有
f i   f ik xk  f i  1
k
(3. 5)
6.2 纯整数规划的求解
Solving Pure Integer Programming
则
fi   fik xk  0
Ch6 整数规划
Integer Programming
(3. 6)
k
加入松弛变量si得
si   fik xk   fi
(3. 7)
k
此式称为以xi行为源行(来源行)的割平面,或分数切割式,或
R.E.Gomory(高莫雷)约束方程。
将Gomory约束方程加入到松弛问题的最优表中,用对偶
单纯形法计算,若最优解中还有非整数解,再继续切割,直
到全部为整数解。
6.2 纯整数规划的求解
Solving Pure Integer Programming
 x1  56 x3  16 x4  53

2
1
2
x

x

x

 2 3 3 3 4 3
例如,
x1行:
移项:
令
x1  56 x3  (1  56 ) x4  1  23
x1  x4  1  23  56 x3  56 x4
2
3
 56 x3  56 x4  0
s1  56 x3  56 x4   23
加入松弛变量s1得
同理,对于x2行有:
s2  13 x3  13 x4   23
Ch6 整数规划
Integer Programming
6.2 纯整数规划的求解
Solving Pure Integer Programming
【例6.6】 用割平面法求解下列IP问题
max Z  4 x1  3 x 2
6 x1  4 x 2  30

 x1  2 x 2  10
 x , x  0且为整数
 1 2
【解】 放宽变量约束,对应的松弛问题是
max Z  4 x1  3x 2
6 x1  4 x 2  30

 x1  2 x 2  10
x , x  0
 1 2
Ch6 整数规划
Integer Programming
6.2 纯整数规划的求解
Solving Pure Integer Programming
Ch6 整数规划
Integer Programming
加入松弛变量x3及x4后,用单纯形法求解,得到最优表6-3:
表6-3
Cj
CB
4
3
XB
x1
x2
λj
4
x1
1
0
3
x2
0
1
0
x3
1/4
-1/8
0
x4
b
-1/2
3/4
5/2
15/4
0
0
-5/8
-1/4
最优解X(0)=(5/2,15/4),不是IP的最优解。选择表6-3的
第一行(也可以选第二行)为源行
1
1
5
x1  x3  x 4 
4
2
2
6.2 纯整数规划的求解
Solving Pure Integer Programming
Ch6 整数规划
Integer Programming
分离系数后改写成
1
1
1
x1  x3  (1  ) x 4  2 
4
2
2
1 1
1
x1  x 4  2   x3  x 4  0
2 4
2
加入松弛变量x5得到高莫雷约束方程
 x3  2x4  x5  2
(3. 8)
将式(6.8)作为约束条件添加到表6-3中,用对偶单纯形
法计算,如表6-4所示:
3.2 纯整数规划的求解
Solving Pure Integer Programming
Ch6 整数规划
Integer Programming
表6-4
Cj
4
3
0
0
0
x4
x5
CB
XB
x1
x2
x3
4
3
0
x1
x2
x5
1
0
0
0
1
0
1/4
-1/8
-1
0
0
1
0
0
-5/8
0
1
0
0
0
1
0
1/2
-1/2
1/2
-1/4
3/8
-1/2
0
0
-1/2
-1/8
λj
4
3
0
x1
x2
x4
λj
b
5/2
15/4
-2→
3
3
1
最优解X(1)=(3,3),最优值Z=21。所有变量为整数,X(1)就是IP的最优解。
如果不是整数解,需要继续切割,重复上述计算过程。
如果在对偶单纯形法中原切割方程的松弛变量仍为基变量,则此松弛
变量所在列化为单位向量后就可以去掉该行该列,再切割。
6.3 0-1规划的求解
Solving BIP
Ch6 整数规划
Integer Programming
6.3 0-1规划的求解
Solving BIP
6.3.1 求解0-1整数规划的隐枚举法
隐枚举法的步骤:
1.找出任意一可行解,目标函数值为Z0 ;
2. 原问题求最大值时,则增加一个约束
c1 x1  c2 x2 
 cn xn  Z0
(*)
当求最小值时,上式改为小于等于约束;
3. 列出所有可能解,对每个可能解先检验式(*),若满足再检
验其它约束,若不满足式(*),则认为不可行,若所有约束都满
足,则认为此解是可行解,求出目标值 ;
4. 目标函数值最大(最小)的解就是最优解。
6.3 0-1规划的求解
Solving BIP
Ch6 整数规划
Integer Programming
【例6.7】用隐枚举法求解下列BIP问题
max Z  6 x1  2 x2  3x3  5 x4
4 x1  2 x 2  x3  3x4  10

3x1  5 x2  x3  6 x4  4

2 x1  x2  x3  x4  3
 x  2 x  4 x  5 x  10
2
3
4
 1
 x j  0或1,j  1,2,3,4
【解】(1) 不难看出,当所有变量等于0或1的任意组合时,第一个约束满
足,说明第一个约束没有约束力,是多余的,从约束条件中去掉。还能通
过观察得到X0 =(1,0,0,1)是一个可行解,目标值Z0 =11是BIP问题的
下界,构造一个约束:6 x1  2 x2  3x3  5x4  11 ,原BIP问题变为
6.3 0-1规划的求解
Solving BIP
Ch6 整数规划
Integer Programming
max Z  6 x1  2 x2  3x3  5 x4
6 x1  2 x 2 3x3  5 x4  11

3x1  5 x2  x3  6 x4  4

2 x1  x2  x3  x4  3
 x  2 x  4 x  5 x  10
2
3
4
 1
 x j  0或1,j  1,2,3,4
(3.9a)
(3.9b)
(3.9c)
(3.9d )
(2) 列出变量取值0和1的组合,共24=16个,分别代入约束条件判断是否可行。
首先判断式(6.9a)是否满足,如果满足,接下来判断其它约束,否则认为不
可行,计算过程见表6-5所示。
Ch6 整数规划
Integer Programming
6.3 0-1规划的求解
Solving BIP
表6-5
j
Xj
3.9a 3.9b 3.9c 3.9d Zj
j
Xj
3.9a 3.9b 3.9c 3.9d
1 (0,0,0,0)
×
9
(1,0,0,0)
×
2 (0,0,0,1)
×
10 (1,0,0,1)
√
3 (0,0,1,0)
×
11 (1,0,1,0)
×
4 (0,0,1,1)
×
12 (1,0,1,1)
√
5 (0,1,0,0)
×
13 (1,1,0,0)
×
6 (0,1,0,1)
×
14 (1,1,0,1)
7 (0,1,1,0)
×
8 (0,1,1,1)
×
Zj
√
√
√
11
√
√
√
14
√
√
√
√
13
15 (1,1,1,0)
√
×
16 (1,1,1,1)
√
√
√
×
(3) 由表6-5知,BIP问题的最优解:X=(1,0,1,1),最优值Z=14。
6.3 0-1规划的求解
Solving BIP
Ch6 整数规划
Integer Programming
注: (1) 选择不同的初始可行解,计算量会不一样。一般地,
当目标函数求最大值时,首先考虑目标函数系数最大的变量
等于1,如例6.7。当目标函数求最小值时,先考虑目标函数
系数最大的变量等于0;
(2) 在表6-5的计算过程中,当目标值等于14时,将其下界
11改为14,可以减少计算量。
6.3 0-1规划的求解
Solving BIP
Ch6 整数规划
Integer Programming
1. 领会割平面法的基本原理;
2. 分离源行,求出Gomory约束;
3. 在最优表中增加Gomory约束,用 对偶单纯形法迭代。
4. 用隐枚举法求0-1规划的最优解;
作业:教材P76
T 8(2)
The End of Chapter 6