分枝定界法



下面摘自百度百科:


1定义

分支定界法(branch and bound)是一种求解整数规划问题的最常用算法。这种方法不但可以求解纯
整数规划
,还可以求解混合整数规划问题。


2基本思路

设最大化的整数规划问题为A, 相应的不含整数约束的线性规划为B, 若B 的最优解不符合A 的整数条件, 那么B 的最优目标函数值必为A 的最优目标函数值Z* 的一个上界, 记作Z; 而A 的任意可行解的目标函数值将是Z* 的一个下界, 记作Z。对B 的非整数解的相邻整数作附加条件, 从而形成两个分枝, 即两个子问题, 两个子问题的可行域中包含原整数规划问题的所有可行解。不断分枝, 逐步减小Z, 增大Z, 最终求得Z* 。


3算法步骤

第1步:放宽或取消原问题的某些约束条件,如求
整数
解的条件。如果这时求出的最优解是原问题的
可行解
,那么这个解就是原问题的最优解,计算结束。否则这个解的目标函数值是原问题的最优解的上界。
第2步:将放宽了某些约束条件的替代问题分成若干子问题,要求各子问题的解集合的并集要包含原问题的所有
可行解
,然后对每个子问题求
最优解
。这些子问题的
最优解
中的最优者若是原问题的
可行解
,则它就是原问题的
最优解
,计算结束。否则它的目标函数值就是原问题的一个新的上界。另外,各子问题的最优解中,若有原问题的
可行解
的,选这些可行解的最大目标函数值,它就是原问题的最优解的一个下界。
第3步:
最优解

目标函数
值已小于这个下界的子问题,其
可行解
中必无原问题的最优解,可以放弃。对最优解(不是原问题的可行解)的目标函数值大于这个下界的子问题,都先保留下来,进入第4步。
第4步:在保留下的所有子问题中,选出
最优解

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


还有一篇博客文章,写的很好,感谢原创作者   
http://dec3.jlu.edu.cn/webcourse/t000048/yun/ch4_02.htm

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