
【計】 branch-and-bound search
ramification
【化】 bifurcation
【醫】 arborization
delimitation; demarcation
【醫】 limes; limitation
search; beat; cast about; ferret; grabble; hunt; rake; scout; seek
【計】 look in; search; search in
【經】 rake; search
分枝限界搜索(Branch and Bound Search)詳解
分枝限界搜索(Branch and Bound,簡稱B&B)是一種用于解決組合優化問題的系統化搜索算法,特别適用于求解離散、組合問題的最優解(如最小化或最大化目标函數)。其核心思想是通過“分枝”策略枚舉可能的解空間,并利用“限界”策略剪除無法産生更優解的子樹,從而大幅減少搜索量。
分枝(Branching)
将當前問題分解為若幹子問題(子集),形成樹狀搜索結構。每個子節點代表一個更小的解空間區域。例如,在旅行商問題(TSP)中,分枝可能基于是否選擇某條路徑劃分解空間。
限界(Bounding)
為每個子問題計算目标函數的上下界(如最小化問題中的下界)。若某子問題的下界已劣于當前已知最優解,則直接剪枝(Pruning),避免無效搜索。限界函數的設計直接影響算法效率。
優勢:通過剪枝避免窮舉,顯著提升搜索效率,尤其適用于NP難問題(如整數規劃、調度問題)。
分枝限界的最壞時間複雜度仍為指數級($O(2^n)$),但實際效率取決于:
權威參考文獻
分枝限界搜索(Branch and Bound,簡稱B&B)是一種用于求解組合優化問題的高效算法,尤其適用于NP難問題(如旅行商問題、0-1背包問題等)。它通過系統性地生成候選解的分支,并結合界限計算來剪除不可能達到最優解的分支,從而減少搜索空間。
分枝(Branch)
将問題分解為若幹子問題(分支),形成樹狀結構。例如,在0-1背包問題中,每個分支對應是否選擇某個物品的兩種決策。
限界(Bound)
為每個分支計算一個上界(對于最大化問題)或下界(對于最小化問題),若某個分支的界限無法優于當前已知的最優解,則直接剪除該分支。
初始化
維護一個優先隊列(通常按界限值排序)和一個記錄當前最優解的變量。
節點選擇
從隊列中取出最有潛力的節點(例如界限最優的節點)進行擴展。
生成子節點
将當前節點分解為更小的子問題(分支),并計算每個子節點的界限值。
剪枝條件
終止條件
當隊列為空時,返回當前最優解。
假設背包容量為10,物品重量和價值分别為:
通過分支限界法:
該方法通過智能剪枝在複雜問題中實現高效搜索,是運籌學和算法設計中的經典工具。
阿美糖苷保持按下制表鍵變負荷試驗部件控制文件電負荷多項式函數反射排擠非法法庭負相序岡下窩幹式逆流高位冷凝器共點力系廣義賓漢體化學去皮質術解散法人接收程絕熱冷卻曲線可繼續的空氣壓力計冒險的投資美學歐鼠尾草淺白色的前釉質輕輕地青少年教養所生殖道實際取得成本基礎投影式