第 8.10 節的背包問題(Knapsack Problem)與實作練習 13。
建立 0/1 決策模型,理解容量限制與效益最大化,並比較解析/枚舉與遺傳演算法(Genetic Algorithm, GA)解法。
過夜健行時有 7 個物品,每件只能帶 0 或 1 個;背包最多可承重 22 磅,目標是最大化總效益。
| 物品 | 效益 | 重量(磅) |
|---|---|---|
| 1 | 5 | 7 |
| 2 | 8 | 8 |
| 3 | 3 | 4 |
| 4 | 2 | 10 |
| 5 | 7 | 4 |
| 6 | 9 | 6 |
| 7 | 4 | 4 |
令每個物品的決策變數只能為 0 或 1;最大化總效益,限制總重量 ≤ 22。原書示範可用遺傳演算法 Excel 增益集 Evolver;亦可直接枚舉 2^7=128 種組合驗證。
依原書資料完整枚舉,最佳組合為物品 2、5、6、7,編碼為 0100111;總重量 8+4+6+4=22,總效益 8+7+9+4=28。
原書示例字串 1010100 的效益為 15,只是候選解,不是最優解。此小型問題可直接驗證最佳解;大規模組合問題才更能凸顯 GA 的搜尋價值。
使用 7 個物品的效益與重量,檢查 0100111 是否符合容量限制,並比較它與原書示例 1010100 的總效益;不得更改原書數字。
問題: 若容量降為 18 磅,原 0100111 是否仍可行?
參考解答: 不可行,因其重量為 22 磅;必須重新求解。