免費開始練習
高考申論題 114年 [工業工程] 作業研究

第 二 題

二、請使用分枝界限(Branch-and-Bound)法求解下列背包問題(Knapsack Problem),以將所有整數變數放鬆為實數變數的方式求取搜尋樹(Search Tree)中各節點所需之上限值(Upper Bound),請畫出搜尋樹,並標示各節點所對應的完整實數解及上限值:(25 分)

Max $z = 10x_1 + 3x_2 + x_3 + 8x_4 + 5x_5 + 3x_6$
s.t. $8x_1 + x_2 + 3x_3 + 5x_4 + 2x_5 + 2x_6 \le 15$
$x_i = 0$ or $1, i = 1, 2, ..., 6$
📝 此題為申論題

思路引導 VIP

本題為標準的 0-1 背包問題,解題第一步應先計算各變數的『單位重量價值』(即目標函數係數 / 約束條件係數),並依此由高至低決定放寬為實數時的貪婪選擇順序。接著,從根節點開始透過線性放鬆(LP Relaxation)求取 Upper Bound,針對解中的分數變數向下展開 Branch-and-Bound 搜尋樹,若達到全整數解則更新 Lower Bound,若 UB 小於目前已知最大 LB 則進行剪枝。

🤖
AI 詳解 AI 專屬家教

【解題關鍵】計算物品的單位重量價值排定貪婪演算法選取順序,利用線性放鬆計算上限(Upper Bound),並依據分數變數進行分枝(Branching)逐步求得最佳整數解。 【解答】 Step 1:計算並排序各決策變數對應物品的單位重量價值(CP值:$c_i/a_i$)

▼ 還有更多解析內容
📝 分枝界限法求背包問題
💡 利用線性放鬆求上限,透過分枝與剪枝搜尋整數最佳解。

🔗 分枝界限法求解流程

  1. 1 前處理 — 按單位價值 $c_i/a_i$ 降冪排序所有變數
  2. 2 根節點計算 — 放鬆整數限制,用貪婪法求 LP 放鬆解與上限值
  3. 3 分枝 (Branching) — 選擇分數解變數拆為 $x=0$ 與 $x=1$ 兩子節點
  4. 4 剪枝 (Pruning) — 若節點 UB ≤ 當前 LB 或無可行解,則停止分枝
🔄 延伸學習:延伸學習:深度優先搜尋 vs 最佳優先搜尋對搜尋樹大小的影響
🧠 記憶技巧:一排(CP值排序)、二鬆(實數放鬆)、三枝(變數分枝)、四剪(UB小於LB就剪)
⚠️ 常見陷阱:未先按CP值排序導致貪婪法錯誤、計算UB時未按比例帶入剩餘空間、整數解出現時忘記更新LB
動態規劃法 (Dynamic Programming) 整數規劃 (Integer Programming) 貪婪演算法 (Greedy Algorithm)

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

🏷️ 相關主題

線性規劃與對偶理論分析
查看更多「[工業工程] 作業研究」的主題分類考古題

📝 同份考卷的其他題目

查看 114年[工業工程] 作業研究 全題