分支限界法|Branch and Bound Method(0-1背包问题)

分支限界法

分支限界法(BB或B&B)是一个离散和组合优化问题的算法设计范式,以及一般的实值的问题。分支限界算法是通过状态空间搜索对候选解进行系统枚举的一种算法。

分支与约束(BB或B&B)算法最早是由A. H. Land 和 A. G. Doig在1960年提出的离散规划算法。它是求解各种优化问题的最优解的一种通用算法,特别适用于离散优化和组合优化。一个分支限界算法由一个系统的所有候选解的枚举组成,其中利用被优化量的上下界估计,求出大量的无果候选解子集。

总则

基本思想

分支限界算法作为求解离散问题全局优化的一种方法,通常是NP难度的,它在给定问题的整个解空间中寻找最优解。通过求解一个轻松的问题,部分的解决方案被认为对于每个离散变量,分支和限定,创建两个新的节点,因此解决方案空间划分成一组较小的子集和获得每个节点的相对的上界和下界。由于潜在解的数量呈指数增长,显式枚举通常是不可能的,因此,对要优化的函数使用界限,并结合当前找到的最佳解的值,使得分支限界算法只能隐式地搜索解空间的一部分。

分支策略

根据Gupta和Ravindran的研究,通常有两种分支方法:

1)在具有最小边界的节点上进行分支搜索所有节点,找到最小边界的节点,并将其设置为下一个分支节

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Branch and Bound Method 是一种解决最优化问题的算法,它可以用来解决 0-1 背包问题。0-1 背包问题是指在给定的一组物品中,选择一些物品放入背包中,使得背包中物品的总价值最大,但是背包有一个容量限制,即所选物品的总重量不能超过背包的容量。 Branch and Bound Method 的基本思想是将原问题分解成若干子问题,并对每个子问题求出一个上界和一个下界,然后将子问题按照上界排序,优先考虑上界较大的子问题。接着采用深度优先搜索的策略,依次处理各个子问题,对于每个子问题,通过计算其下界和当前最优解的比较,可以剪枝掉一些不必要的搜索路径,从而加速搜索过程。 在 0-1 背包问题中,可以将每个物品看作一个节点,将物品的价值和重量作为节点的属性,在搜索过程中,每次选择一个物品放入背包中或者不放入,得到两个子问题。对于每个子问题,可以计算出一个上界和一个下界,其中上界是指将剩余物品按照单位价值从大到小排序,依次放入背包中,直到背包装满为止所得到的最大价值;下界是指将剩余物品按照单位价值从大到小排序,计算出能够放入背包中的最大价值,加上已经放入背包中的价值,得到一个下界。如果某个子问题的上界小于当前最优解,则可以剪枝掉该子问题。 通过不断进行深度优先搜索和剪枝操作,直到搜索完所有的子问题,得到的最优解即为所求的 0-1 背包问题的最优解。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值