分支定界(branch-and-bound),分支切割(branch-and-cut),分支定价(branch-and-price)

组合优化问题、混合整数规划模型的相关论文中经常接触这 3 个名词:分支定界(branch-and-bound),分支切割(branch-and-cut),分支定价(branch-and-price),有时候会混淆。写这篇博客总结一下:

1. 分支定界 (branch-and-bound)

分支定界是最常见的,国内的运筹学教学中,在整数规划章节都会讲到这个方法,其基本思想也比较容易理解,重点包括分支 (branch)、定界 (bound)、剪枝 (prune) 这三个主要步骤。

对于一个目标为最大化的混合整数规划问题:

  • step 1:将整数解约束松弛,即求解该问题的线性规划问题,得到一个解 x \bf x x,对应的目标函数值为原问题的一个上界,初始化原问题的一个下界负无穷 − ∞ -\infty 。(若该线性规划问题无解,则原问题也无解)
  • step 2—— 算法终止条件:若没有任何可以分支的方向,则当前的下界即为最优解;否则:
  • step 3——分支(branch): 在解 x \bf x x 中,选取某个非整数求解变量 x i x_i xi,分别构建大于等于其向上取整值、小于其向下取整值的两个约束条件,从而构建两个子线性规划模型。
  • step 4——定界(bound):求解子线性规划模型,若其刚好得到整数解,则该整数解为原问题的一个可行解,即得到原问题的一个下界,若比当前下界大,则更新下界;若不为整数解,
    • step 4.1——剪枝(prune):若子线性规划模型不可行或者得到的解比已知下界还小,则将分支方向剪掉,不再对其解继续分支。
    • step 4.2——继续分支(branch),若子线性规划问题得到的解比已知下界大,返回 step 2 继续循环。

对于一些简单的问题,分支定界的步骤非常形象,例如:

在这里插入图片描述

2. 分支切割 (branch-and-bound)

分支切割的思想是:在分支定界的步骤 step 4.2 中,在继续分支之前,添加切平面 (cut) 约束,使得该子线性规划问题得到解更小,即能得到原问题更加紧 (tight) 的上界。

3. 分支定价 (branch-and-price)

在列生成算法中,若结合分支定界,则该方法称为分支定价。

  • 19
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心态与习惯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值