1定義
分支定界法(branch and bound)是一種求解整數規劃問題的最常用演算法。這種方法不但可以求解純
整數規劃
,還可以求解混合整數規劃問題。
設最大化的整數規劃問題為a, 相應的不含整數約束的線性規劃為b, 若b 的最優解不符合a 的整數條件, 那麼b 的最優目標函式值必為a 的最優目標函式值z* 的乙個上界, 記作z; 而a 的任意可行解的目標函式值將是z* 的乙個下界, 記作z。對b 的非整數解的相鄰整數作附加條件, 從而形成兩個分枝, 即兩個子問題, 兩個子問題的可行域中包含原整數規劃問題的所有可行解。不斷分枝, 逐步減小z, 增大z, 最終求得z* 。
第1步:放寬或取消原問題的某些約束條件,如求
整數 解的條件。如果這時求出的最優解是原問題的
可行解 ,那麼這個解就是原問題的最優解,計算結束。否則這個解的目標函式值是原問題的最優解的上界。
第2步:將放寬了某些約束條件的替代問題分成若干子問題,要求各子問題的解集合的並集要包含原問題的所有
可行解 ,然後對每個子問題求
最優解 。這些子問題的
最優解 中的最優者若是原問題的
可行解 ,則它就是原問題的
最優解 ,計算結束。否則它的目標函式值就是原問題的乙個新的上界。另外,各子問題的最優解中,若有原問題的
可行解 的,選這些可行解的最大目標函式值,它就是原問題的最優解的乙個下界。
第3步:對
最優解 的
目標函式
值已小於這個下界的子問題,其
可行解 中必無原問題的最優解,可以放棄。對最優解(不是原問題的可行解)的目標函式值大於這個下界的子問題,都先保留下來,進入第4步。
第4步:在保留下的所有子問題中,選出
最優解 的
目標函式
值最大的乙個,重複第1步和第2步。如果已經找到該子問題的最優
可行解 ,那麼其目標函式值與前面保留的其他問題在內的所有子問題的可行解中目標函式值最大者,將它作為新的下界,重複第3步,直到求出最優解。
還有一篇部落格文章,寫的很好,感謝原創作者
1044 用分枝定界法求解TSP問題
用分枝定界法求解tsp問題 time limit 1000ms memory limit 65536k total submit 15 accepted 7 description 已知n個城市之間的相互距離,現有一推銷員必須遍訪這n個城市,並且每個城市只能訪問一次,最後又必須返回出發城市。如何安排...
分枝定界法的一般步驟
分枝定界法的一般步驟 設有最大化的整數規劃問題a 與它相對應的鬆弛問題為b。1 先不考慮原問題的整數約束,求解相應的鬆弛問題。用 法或單純形法求得最優解,記為 2 若求得的最優解 剛好就是整數解,則該整數解就是原整數規劃問題的最優解 否則,對原問題進行分枝尋求整數最優解。3 分枝。根據對變數重要性的...
分枝定界法解0 1揹包問題
分枝定界法按照樹形結構來組織解空間,展開節點後,有兩種策略 策略 一 把節點加入 fifo 佇列當中 策略 二 把節點加入到堆中,按照最小消耗或者最大消耗來選擇下乙個展開節點。分枝定界法是一類能確保搜尋到全部可行解的解空間的一類方法。得到全部的解以後,再由後續程式自行覺得。分枝定界法 回溯法搜尋解空...