分支限界法:基本思想、方法、与回溯法的比较

分支限界法

如果还没有了解回溯法,建议先了解回溯法后再看分支限界法,相对会更加容易学习和理解
点击此处可以查看回溯法的基本内容

定义

(以下概念来自百度百科)
在阅读理解定义的时候可以回忆一下回溯法的定义,想想两者有什么区别

分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。

在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所需的解或活结点表为空时为止。

常用方法

  1. 队列式分支限界法
    按照队列先进先出(FIFO,First In First Out)原则选取下一个节点为扩展节点
  2. 优先队列式分支限界法
    按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点

基本思想

引用自百度百科
分支限界法首先确定一个合理的限界函数,并根据限界函数确定目标函数的界[down, up];然后按照广度优先策略遍历问题的解空间树,在某一分支上,依次搜索该结点的所有孩子结点,分别估算这些孩子结点的目标函数的可能取值(对最小化问题,估算结点的down,对最大化问题,估算结点的up)。如果某孩子结点的目标函数值超出目标函数的界,则将其丢弃(从此结点生成的解不会比如今已得的更好),否则入待处理表

与回溯法比较

  • 相同点
    都是建立解空间树来求解
    都需要设置限界函数
  • 不同点
    回溯法是用深度优先方式进行搜索,但分支限界法是通过广度优先进行搜索
    在回溯法中,每个结点可以有1次及以上的机会成为活结点,但是在分支限界法中只有一次机会成为活结点
    回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值