混合整数线性规划

Posted yijuncheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了混合整数线性规划相关的知识,希望对你有一定的参考价值。

当上一节讲到的线性规划问题中,要求某些变量是整数的时候,就变成了混合整数线性规划问题。

其实对于某些问题来说,线性规划问题的最优解刚好是整数,那么它对应的混合整数线性规划问题的解就刚好是这个最优解了。因此分支限界法的思路是,

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。

技术图片

按照上述步骤,求另外对应的子问题。

技术图片

在分支过程中,当

1. 问题是不可满足的

2. 最优解是整数值

3. 松弛问题的最优值比当前最优值更差

无需深入探索,可以剪枝。

技术图片

技术图片

 

 

 

参考:

https://www.coursera.org/lecture/lisan-youhua-suanfapian/3-3-2-hun-he-zheng-shu-xian-xing-gui-hua-PQhnK

以上是关于混合整数线性规划的主要内容,如果未能解决你的问题,请参考以下文章

mixed-integer programming(混合整数规划)

用matlab求解整数规划双角标问题

二维剪板机下料问题(2-D Guillotine Cutting Stock Problem) 的混合整数规划精确求解——数学规划的计算智能特征

混合整数规划的机组组合(Matlab代码实现)

如何在 pyomo 中使用/选择/安装混合整数非线性求解器

Leapms + cplex解决 混合整数规划问题