[算法分析]分支限界法


分支限界法:以广度优先方式系统搜索问题的解

  • 在问题的解空间树中,按广度优先策略,从根节点出发搜索解空间树
  • 求解目标:找出满足约束条件的解
    • 可行解最优解
  • 搜索策略
    • 根据限界函数值,剔除那些导致不可行解或非最优解的子结点,使搜索过程仅限制在剩余的分支内进行
    • 适用于组合优化问题

分支限界法的基本思想

分支限界法 VS 回溯法

  • 相同点

    • 两者在进行问题求解前,都需要完成解空间的定义和组织
    • 都是通过在解空间搜索来寻找问题的解
  • 不同点

    • 搜索方式:
      • 回溯法->深度优先,
      • 分支限界法->广度优先
    • 搜索策略:
      • 回溯法:根据剪枝函数,选择下一个扩展结点并按深度优先方式进行搜索
      • 分支限界法:在扩展结点处,先产生其所有的子结点(分支)(所有结点只有一次机会成为当前扩展结点),然后根据限界函数,确定哪些子结点将导致不可行解或非最优解,将这些子结点剔除,用剩下的子结点构造当前的活结点表,然后从该表中取一个结点作为当前扩展结点,并重复上述过程。

分支限界法的主要分类

  • 根据从活结点表中选择下一个扩展结点的方式分类
    • 队列式FIFO分支限界法
    • 优先队列分支限界法


实例分析

背包问题

  • 实例分析:

n=4的背包问题

重量w = [2, 3, 4,7]

价值p = [1, 3, 5,9]

限制重量b = 10

  • 代价函数的设定(代价函数的设定仅会影响分支限界法的效率)

    vk+1/wk+1 是选择后下一个单位重量价值最大的物品,代价函数即为计算最大有可能得到的价值。

    即为当前最优的解,与代价函数进行比较进行裁剪

    image-20210110131645871

    image-20210110132613505

    预处理,先将物品按单位重量的价格从小到大依次排序

    image-20210110131935207



小结

  1. 分支限界法的基本思想

    1. 与回溯法的联系与区别
    2. 两种主要的分支限界法:队列式、优先队列式
    3. 代价函数与界的概念
  2. 利用分支限界法求解问题的方法

     

    PS: 本节内容偏于设计,于《算法导论》中无本章节,用于补充


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM