前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >干货 | 10分钟带你掌握branch and price(分支定价)算法超详细原理解析

干货 | 10分钟带你掌握branch and price(分支定价)算法超详细原理解析

作者头像
短短的路走走停停
发布2019-08-20 11:01:49
4.8K0
发布2019-08-20 11:01:49
举报
文章被收录于专栏:程序猿声程序猿声

前言

相信大家对branch and price的神秘之处也非常好奇了。今天我们一起来揭秘该算法原理过程。

不过,在此之前,请大家确保自己的branch and bound和column generation的知识务必过关,而且是非常熟悉的那种。

因为branch and price算法就是branch and boundcolumn generation的结合体。

2

应用背景

branch and price算法就是branch and bound和column generation的结合体。具体是怎么结合的呢?先看一张BP的算法流程图,相信大家会清晰很多:

3

具体流程

我们知道branch and bound求解整数规划的过程,如果不知道看看下面这张图回顾一下:

在该过程中,定界的操作是通过求解当前问题的线性松弛(LP relaxation)得到的。对于一个变量很多的大规模整数规划问题而言,其线性松弛(LP relaxation)变量无疑也是非常多的。那么,这时候,我们上节课介绍的column generation就可以出马了。

但在每一个节点中,并不需要每一次都完完整整调用一次column generation,重新构建一次RMP再求解。分子以后子节点的RMP可以直接将父节点的RMP挪过来,只不过由于加了分支约束,此时RMP需要重新添加column,再次求解以便得到最优。

而子节点的RMP重新添加column,再次求解的过程就是节点的bound操作了。那么,将以上的元素综合起来,就形成了我们的branch and price算法。

4

代码

目前没有相关的能够公开的代码,后续可能会写一下这个算法的,嗯肯定会写。可以关注公众号【程序猿声】获取第一时间的消息。

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序猿声 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档