当前位置:文档之家› 分支定界法知识

分支定界法知识

分支定界(branch and bound) 算法是一种在问题的解空间树上搜索问题的解
的方法。

但与回溯算法不同,分支定界算法采用广度优先或最小耗费优先的方法搜索解空间树,并且,在分支定界算法中,每一个活结点只有一次机会成为扩展结点。

利用分支定界算法对问题的解空间树进行搜索,它的搜索策略是:
1 .产生当前扩展结点的所有子结点;
2 .在产生的子结点中,抛弃那些不可能产生可行解(或最优解)的结点;
3 .将其余的子结点加入活结点表;
4 .从活结点表中选择下一个活结点作为新的扩展结点。

如此循环,直到找到问题的可行解(最优解)或活结点表为空。

分支定界法本质还是一种枚举法,但是是隐枚举法。

它是整数规划领域中非常重要的一类算法思想。

是很多重要算法的源头。

它能解决的实际问题很多,最著名的一个应该就是求解背包问题。

定义
分支定界法(branch and bound)是一种求解整数规划问题的最常用算法。

这种方法不但可以求解纯整数规划,还可以求解混合整数规划问题。

算法步骤
第1步:放宽或取消原问题的某些约束条件,如求整数解的条件。

如果这时求出的最优解是原问题的可行解,那么这个解就是原问题的最优解,计算结束。

否则这个解的目标函数值是原问题的最优解的上界。

第2步:将放宽了某些约束条件的替代问题分成若干子问题,要求各子问题的解集合的并集要包含原问题的所有可行解,然后对每个子问题求最优解。

这些子问题的最优解中的最优者若是原问题的可行解,则它就是原问题的最优解,计算结束。

否则它的目标函数值就是原问题的一个新的上界。

另外,各子问题的最优解中,若有原问题的可行解的,选这些可行解的最大目标函数值,它就是原问题的最优解的一个下界。

第3步:对最优解的目标函数值已小于这个下界的问题,其可行解中必无原问题的最优解,可以放弃。

对最优解的目标函数值大于这个下界的子问题,都先保留下来,进入第4步。

第4步:在保留下的所有子问题中,选出最优解的目标函数值最大的一个,重复第1步和第2步。

如果已经找到该子问题的最优可行解,那么其目标函数值与前面保留的其他问题在内的所有子问题的可行解中目标函数值最大者,将它作为新的下界,重复第3步,直到求出最优解。

相关主题