分支切割法

分支切割法是用於解決整數線性問題(ILPs),即部分或全部未知數為整數值的線性規劃(LP)的問題的組合最佳化方法。該方法在分支定界法的基礎上,使用切割平面以收緊線性規劃鬆弛。如果切割平面僅用來收緊初始的 LP 鬆弛,則改稱為切割分支法。

算法描述

以下假設 ILP 問題為最大化問題。

該方法首先使用單純形法解決無整數約束的線性問題。獲得最優解後,如果有約束為整數的變數取了非整數值,該算法會使用切割平面法以尋找進一步的線性約束:所有可行的整數點滿足該約束,但目前的最優解不滿足該約束。隨後這些約束不等式可以加入線性問題中,使得下次求解可以獲得“更接近整數”的結果。

在此基礎上,算法使用分支定界法,將該問題分割為多個(通常為兩個)子問題。隨後使用單純形法求解新的子問題,重複該過程。在分支定界的過程中,LP 鬆弛問題的非整數解為解的上限,整數解為解的下限。如果一個子問題的上限低於當前的全局下限,則可以除去該子問題。此外,在求解 LP 鬆弛問題時,可能產生其他切割平面。這些平面既可能是 全局切割,即適用於所有可行的整數解的切割;或 局部切割,即適用於當前分支定界子樹下所有滿足邊界約束的解的切割

分支策略

分支切割法 分支切割法
分支切割法 分支切割法
分支切割法 分支切割法

分支策略是分支切割算法中的重要一步。在這一步中,可以使用多種啟發式分支策略。下述分支策略都包含 在變數上分支。在變數上分支的大致過程為:如果變數 在當前的 LP 鬆弛問題的最優解中為分數 ,則向鬆弛問題中加入約束 。

最不可行分支

該策略優先選擇小數部分最接近 0.5 的變數。

偽成本分支

分支切割法 分支切割法

該策略的基本思想是當變數 被選作分支變數時,追蹤目標函式的變化。基於過去的變化情況,該策略會選擇預計對目標函式產生最大變化的變數作為分支變數。注意,在最初分支時,只有幾個變數進行過分支,該策略會面臨所需信息不足的情況。

強健分支

該策略在實際分支前將對變數進行測試,以確定哪個變數對目標函式的變化影響最大。 完全強健分支會測試所有候選變數,計算成本很高。可以通過只考慮一部分候選變數,並不完全解出所有對應的 LP 鬆弛,來降低計算成本 。

除了以上幾種策略外,還存在大量其他的分支策略,比如偽成本分支所需的信息不足時先採用強壯分支,在獲得足夠的分支歷史後切換到偽成本分支。

相關詞條

熱門詞條

聯絡我們