整数规划之分支定界法

原文链接:整数规划之分支定界法

整数规划问题和一般的线性规划问题很类似,唯一的不同点在于可行解必须是整数。这是因为对于某些实际问题,必须要求全部解或者至少部分解为整数。比如,所求的解是人数,机器台数或工厂个数等。

整数规划问题一般被分成如下四个子问题:

1.分支定界法
2.割平面法
3.01规划及隐枚举法
4.指派问题

这篇文章先讲一下分支定界法。分支定界法是用于求解整数规划问题的,但由于其复杂性太大所以一般用计算机进行计算,因此若为了应付考试只需要了解即可,不必进行大量练习。

分支定界法的核心思想就是分枝和剪枝。当我们不考虑所求解必须是整数这个条件时,用单纯形法可求出最优解,但是这个解往往不全是整数,因此我们采用剪枝的方式一点一点缩小范围,直到所求解为整数解。

剪枝:如果某一个子问题无可行解或者最优值小于原来的下界,则称这个分支已经查清,将该支剪掉,不再计算。

下面我们直接进行实战,在解题过程中会有详细的讲解。

我们以下图A为例

整数规划之分支定界法_第1张图片
暂时不考虑解为整数的条件(图B),因为我们是在小数解上不断进行改良才能最终能够得到整数解。

通过单纯形法可以得到图B的最优解为(单纯形法在这里不是重点,所以不详细计算):
x1=2.25,x2=3.75,S0=41.25

因此A式的解上界为41.25,这是因为A式的解必定为B式解的子解。

因为x1和x2都为小数,因此我们可以任选一个进行分支,也就是运用解必须是整数这一条件加以约束。这里选用x2进行分支,即分别添加x2<=3和x2>=4,这是因为不确定整数解到底在那个方向能取到最优值,因此需要考虑两种情况。因此有如下两式:

整数规划之分支定界法_第2张图片
分别对两式用单纯形法进行求解得:

B1:x1=3,x2=3且S1=39
B2:x1=1.8,x2=4且S2=41

可以看到,B1式的解为39,并且可行解为整数解,所以最差最差也是39了,因此原式的下界暂时为39,而41<41.25作为原式的新上界。

但是B2的解中仍然有小数,所以不能确定最终解是否是39,所以我们要继续对B2中的x2进行分支,即x2<=1和x2>=2。将其代入式子条件中进一步进行求解,这里要特别注意不要忘记将之前分支的条件也加进来,如下式,仍然要加入x2>=4这一前提条件:

整数规划之分支定界法_第3张图片
仍然对其使用单纯形法求解(这里已经可以看出分支定界法是多么的麻烦了,单纯形法已经用了太多次了),得出如下解:

B3:x1=1,x2= 409,S3=3659

B4:无可行解

因为B3的解中仍然有分数,所以不能作为新的下界,但由于3659 < 41所以可以将其作为新的上界。

然后按照之前的方法依旧将x2进行分支并带入原式中得,并且得出如下解:

整数规划之分支定界法_第4张图片
可以看出两个解都是整数可行解,对比之前的下界39和上界3659,发现都满足条件,因此可以得出最优解为40。

你可能感兴趣的:(运筹学,动态规划,剪枝,线性规划)