算法知识点整理——第6章 分支限界法

第 6 章 分支限界法

1.分支限界 VS 回溯

回溯:求出满足问题的所有解,深度优先

分支限界:求出满足问题的一个解(或者是找出问题中的一个最优解),广度优先

都要先定义解空间结构

 

两者对当前扩展节点所采取的扩展方式不同。

2.分支限界法常见方式

队列式分支限界法(FIFO)

优先队列式分支限界法(可以理解为OS中的优先级,一般是代价越低、或者是收益越多)

3.0-1背包

队列式FIFO分支限界法

就是数构中的广度优先算法

优先队列式分支限界法

用一个极大堆来存储结果(也就是价值越多且重量不超过的放在最上面,可以被优先扩展)

4.TSP问题

队列式FIFO分支限界法

依次拓展,当求出一个解后,其他分支中的当前结果都比这个大时,就忽略(其实复杂度是一样的)

优先队列分支限界法:

优先拓展当前费用最小的路径(用一个极小堆存储)

5.单源最短路径

求一个地点到另外一个地点的最短路径

优先队列式分支限界法

将可行解放入到一个极小堆中,优先拓展当前路径最小的节点(可以提前剪枝)

6.装载问题

两艘船装n个集装箱

方法:先一艘船装尽可能多的集装箱,然后判断剩下的集装箱第二艘船能否装下

子集树

队列式FIFO分支限界法

遍历所有的节点,然后求出最大的解

改进:提前剪枝,当前装载+剩余 与 当前最优解进行比较判断

优先队列式分治限界法

不懂?????!!!

7.布线问题

往距离缩短的方向拓展

8.八码难题

方法一:不在位最少优先扩展

方法二:优先拓展需要移动步数少的(差的绝对值最小)

9.分配问题

先分配,从未分配中的挑最好的作为优先函数

    原文作者:分支限界法
    原文地址: https://blog.csdn.net/haitaolang/article/details/55210996
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞