整数规划方法
定界:对每一子问题的求解结果,找出最优值
最小者为新的上界 z ,从所有符合整数约束条 件的分枝中找出目标函数值最大的为新下界 z
10
二、整数规划求解方法
2.分枝定界法一般步骤
4)比较与剪枝:各分枝问题的最优值同 z 比较,如果其值 小于 z ,则这个分枝可以剪掉,以后不再考虑。
如果其值大于 z ,且又不是(A)的可行解,则继续分 枝 , 返 回 ( 3 ), 直 到 最 后 得 到 最 优 解 使 z* z , 即 x*j ( j 1,2,,n) 为最优解。
解就是(A)的最优解,计算结束;
问题(B)有最优解 X * ,但不是(A)的可行解,转下一步。
8
二、整数规划求解方法
2. 分枝定界法一般步骤
2)将 X * 代入目标函数,其值记为 z ,并用观察
法找出(A)的一个可行解(整数解,不妨可取
x j 0( j 1,2, , n) ),求得目标函数值(下界 值),记为 z ,则(A)的最优值记为 z * ,即有 z z * z ,转下一步;
整数规划中如果所有的变量都限制为(非负) 整数,称为纯整数规划;如果仅一部分变量限制 为整数,称为混合整数规划;整数规划一种特殊 的情形是0-1规划,它的变量取值仅限于0和1。
4
一、整数规划的一般模型
2. 整数规划模型的一般形式
n
max(min)z c j x j j 1
(A)
n
aij x j
若其松弛问题的最优解X*不满足整数约束,则从X*的 非整分量中选取一个,用以构造一个线性约束条件,将其 加入原松弛问题中,形成一个新的线性规划,然后求解之 。若新的最优解满足整数要求,则它就是整数规划的最优 解;否则重复上述步骤,直到获得整数最优解为止。
为最终获得整数最优解,每次增加的线性约束条件应当两 个基本性质:
利用线性规划的求解方法逐步缩小可行域,最后 找到整数规划的最优解。
12
考虑纯整数规划问题:
n
max z c j x j j 1
n
aij x j bi
i 1, , m
j 1
xj
0
j 1,2, , n
x
j
取整
数
设其中aij和bi皆为整数(若不为整数时,可乘上一个倍数化 为整数)。
割平面法是R.E.Gomory于1958年提出的一种方法,它主要 用于求解纯ILP。 割平面法是用增加新的约束来切割可行域,增加的新约束 称为割平面方程或切割方程。其基本思路为:
将原问题(A)中整数约束去掉变为问题(B), 求出(B)的最优解.
6
二、整数规划求解方法
1 .分枝定界法的基本思想
如果不是原问题(A)的可行解,则通过附加线性不 等式约束(整数),将问题(B)分枝变为若干子问题
(Bi )(i 1,2, , I ) ,即对每一个非整变量附加两个互
相排斥(不交叉)的整型约束,就得两个子问题.
分枝定界法.ppt
11
二、整数规划求解方法
3. 割平面法的思想
将原整数规划问题(A)去掉整数约束变为线性规 划问题(B),引入线性约束条件(称为Gomory约束 ,几何术语割平面)使问题(B)的可行域逐步缩小.
每次切割掉的是问题非整数解的一部分,不切掉 任何整数解,直到最后使目标函数达到最优的整数 解成为可行域的一个顶点时,即问题最优解。
4
x1, x2是整数
步骤1:标准化其松弛问题B0
max z x1 x2
x1 x2 x3 1 s.t.3x1 x2 x4 4
x1, x2 , x3 , x4 0
Cj
1
CB XB b
x1
1 x2 7/4
0
1 x1 3/4
1
cj-zj
0
1
0
0
x2
x3
x4
1
3/4 1/4
0 -1/4 1/4
k
k
令上式的右边小于等于零,得到切割方程。即:
fi fik xk 0
k
3. 将切割方程化为下列形式:
fik xk xni fi
k
xni是松驰变量
4. 将切割方程加到最终单纯形表,用对偶单纯形法 继续求解。
5. 如果求得整数解,停止计算,否则重复2—5步。
注 : 1. 切 割 方 程 真 正 进 行 了 切 割 , 至 少 将 非 整 数 最
(1)已获得的不符合整数要求的LP最优解不满足该线性约 束条件,从而不可能在以后的解中出现;
(2)凡整数可行解均满足该线性约束条件,因而整数最优 解始终被保留在每次剩余的线性规划可行域中。
例1 用割平面法求解整数规划问题
max z x1 x2
x1 x2 1
s.t.3x1x,1x2
x2
0
源的单位价格为 aj ( j 1, 2,L , m) ,该企业现有资金 M 元.
试问该企业应购买多少第 j 种资源(总量为 X j ),又
如何分配给所属的 n 个生产车间,使得总利润最大?
2
固定资源分配问题
解 设决策变量为 xij (i 1, 2,L , n; j 1, 2,L , m) 表示分
0 -1/2 -1/2
引进一个割平面来缩小可行域,割平面要切去松弛问题的非整 数最优解而又不要切去问题的的任一个整数可行解。
步骤2:求一个割平面方程
(1)在最终表上任选一个含有不满足整数条件基变量的 约束方程。如选x1,则含x1的约束方程为
11 3
x1 4 x3 4 x4 4
(3)
(2)将所选择的约束方程中非基变量的系数及常数项进行拆 分处理。具体规则是:将上述系数和常数项均拆分成一个整 数加上一个非负真分数(纯小数)之和。则(3)式变为:
a(m,1),a(m,2),…,a(m,n);
enddata
[OBJ] min=@sum(arrange(j):c(j)*x(j));
@for(row(i):@sum(arrange(j):a(i,j)*x(j))>=b(i););
@for(arrange(j):x(j)>=0;);
第十一章 整数规划方法
整数规划的一般模型; 整数规划解的求解方法; 整数规划的软件求解方法; 0-1规划的模型与求解方法; 整数规划的应用案例分析。
1
一、整数规划的一般模型
1. 问题的提出:固定资源分配问题
设某企业有 n 个生产车间需要 m 种资源,对于第 i 个 生产车间分别利用第 j 种资源 xij 进行生产,单位资源可 以获得利润为 rij (i 1,2,L ,n; j 1,2,L ,m) .若第 j 种资
很明显,(5)左端为整数,右端<1,则有其右端0,即
31
3
4 x3 4 x4 4
(6)
(4)将割平面方程加到松弛问题的约束方程中,构成新的松弛问题并求 解(对偶单纯形法)。
max z x1 x2 0x3 0x4
x1 x2 x3 1
s.t.3x431
x2 x3
1 4
x4 x4
配给第 i 个生产车间的第 j 种资源的资源量,均为非负整 数,第 j 种资源的需求总量 X j ( j 1, 2,L , m) 也都为整数.问题的目标函数为总利润求 Nhomakorabeanm
z
rij xij
i1 j1
的最大值.
nm
max z
rij xij ,
i1 j 1
n
xij X j ( j 1, 2,L
继续求解定界,重复下去,直到得到最优解为
止。
7
二、整数规划求解方法
2. 分枝定界法一般步骤
1)将原整数规划问题(A)去掉所有的整数约束变为线 性规划问题(B),用线性规划的方法求解问题(B):
• 问题(B)无可行解,则(A)也无可行解,停止;
问题(B)有最优解 X * ,并是(A)的可行解,则此
4 x5
3 4
x1, x2 , x3 , x4 , x5 0
Cj
CB XB b
1 x2 7/4 1 x1 3/4 0 x5 -3/4
cj-zj
1 x2
1
1 x1
1
0 x3
1
cj-zj
11
x1
x2
01
10
00
00
01 10 00
00
割平面方程
0 x3 3/4 -1/4 -3/4
-1/2 0 0 1
优解割掉了;(非整数最优解不满足切割方程)
2. 没有x割i 掉k整N数ik解x。k (所N有i 整f数i 解k都满fik 足xk切割方程)
二、整数规划的求解方法
4、整数规划的LINGO解法
MODEL: sets: row/1..m/:b; arrange/1..n/:c,x; link(row,arrange):a; endsets data:
n
min z c j x j j 1
n
aij x j bi (i 1, 2,, m)
j1
x
j
0,
x j为整数(
j
1, 2,, n)
b=b(1),b(2),…,b(m); c=c(1),c(2),…,c(n);
a=a(1,1),a(1,2),…,a(1,n),
... ... ... ...
n
max(min)z c j x j j 1
(A)
n
aij x j (, )bi (i 1,2,, m)
j1
x
j
0, x j为整数(
j
1,2,, n)
n
max(min)z cj xj j 1
(B)
n
aij x j
(, )bi (i 1, 2,, m)