分支定界算法(Branch and Bound, 簡稱B&B)是一種用於求解最最佳化問題的算法,它特別適用於求解整數規劃、旅行商問題等組合最佳化問題。該算法的基本思路是將問題分解成一個搜尋樹,通過逐步縮小搜尋空間來找到最優解。以下是其操作流程:
放鬆或刪除原問題的某些約束條件,例如忽略整數解的條件。如果由此找到的最優解是原問題的可行解,則該解即為原問題的最優解;否則,該解的目標函式值成為原問題最優解的上界。
將放鬆約束條件後的替代問題分解為若乾子問題,確保這些子問題的解集合包含原問題的所有可行解。對每個子問題求解,找到最優解。如果這些最優解中包含原問題的可行解,則該可行解即為原問題的最優解;否則,該最優解的目標函式值成為原問題的一個新的上界。
在所有子問題中,選出目標函式值最大的一個問題,重複上述步驟。如果某個子問題的最優解的目標函式值小於已知的最優下界(即所有可行解中的最小目標函式值),則該子問題不可能包含最優解,可以被捨棄。
通過不斷疊代和剪枝(排除不可能產生最優解的子問題),分支定界算法能夠在有限的時間內找到問題的最優解或近似最優解。
此外,分支定界算法通常與特定領域的知識相結合,以更有效地解決特定類型的問題。