当上一节讲到的线性规划问题中,要求某些变量是整数的时候,就变成了混合整数线性规划问题。
其实对于某些问题来说,线性规划问题的最优解刚好是整数,那么它对应的混合整数线性规划问题的解就刚好是这个最优解了。因此分支限界法的思路是,
1. 将原混合整数线性规划问题改进为行的松弛问题,不断地用单纯形法求解
2. 通过增加约束来进行分支求解
3. 直到整数最优解出现在新的改进后的松弛问题的一个顶点。
例如对于以下问题,
\[\begin{array}{*{20}{l}}
{\max 3x + y + 3z}\\
{2x + 2y + z \le 30}\\
{1.5x + 2y + 3z \le 25}\\
{2x + y + z \le 20}\\
{x \ge 0,y \ge 0,z \ge 0,}
\end{array}\]
最优解obj=36.6667,x=7.7778,y=0,z=4.4444,怎么求它的整数最优解呢?
针对该线性松弛问题得到的最优解,选取非整数解的整数变量x,将原线性松弛问题分成两个子问题,其中一个子问题加上x≤7的约束,另一个子问题加上x≥8的约束。
针对x≤7的这个子问题,求得最优解为obj=35.5,x=7,y=0,z=4.8333。选取非整数解的整数变量z,将该问题拆成z≤4和z≥5的两个子问题。
针对z≤4的这个子问题,求得最优解为obj=34.25,x=7,y=1.25,z=4。选取非整数解的整数变量y,将该问题拆成y≤1和z≥2的两个子问题。
针对y≤1的这个子问题,求得最优解为obj=34,x=7,y=1,z=4。