zoukankan      html  css  js  c++  java
  • 混合整数线性规划——分支限界法

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

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

    1. 将原混合整数线性规划问题改进为行的松弛问题,不断地用单纯形法求解

    2. 通过增加约束来进行分支求解

    3. 直到整数最优解出现在新的改进后的松弛问题的一个顶点。

    例如对于以下问题,

    [egin{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

  • 相关阅读:
    函数的调用-转载
    HTML常用标签-手打抄录-来自-烟雨飘零-拜谢
    CSS常用标签-手打抄录-感谢原未知博主-拜谢了
    JS函数表达的几种写法
    JS数组---转及补充--
    标准文档流特性-不含块级元素和行内元素
    块级元素和行内元素-标签收集-区别之处
    CSS盒子知识
    把应用push到/system/app上面后,出现java.lang.UnsatisfiedLinkError的问题
    Vysor:在电脑里控制你的安卓手机
  • 原文地址:https://www.cnblogs.com/yijuncheng/p/10953679.html
Copyright © 2011-2022 走看看