? ? ? ?
項目背景:某鋼管廠的鋼筋原材料為 55米,工作需要需切割 40 米(1段)、11 米(15 段)等 4 種規格 ,現用貪心算法和遺傳算法兩種算法進行計算:
第一局:{ 40, 1 }, ?{ 11, 15 },{ 10, 1 }, { 5,1},如何切割最省原材料?
運行結果如下:
貪心算法切割方案:
原材料 1: [40, 11 ]剩余: 4 米
原材料 2: [11, 11, 11, 11, 11 ]剩余: 0 米
原材料 3: [11, 11, 11, 11, 11 ]剩余: 0 米
原材料 4: [11, 11, 11, 11, 10 ]剩余: 1 米
原材料 5: [5 ]剩余: 50 米
共需要5個原材料,總剩余: 55 米,貪心算法利用率: 80.00%
部分長度未切割完畢。
遺傳算法切割方案:
原材料 1: [11, 11, 11, 11, 11] 剩余 0 米
原材料 2: [11, 11, 11, 11, 11] 剩余 0 米
原材料 3: [11, 11, 11, 11, 11] 剩余 0 米
原材料 4: [40, 10, 5] 剩余 0 米
遺傳算法共需要4個原材料,總剩余: 0 米,遺傳算法利用率: 100.00%
============ 方案對比 ============
貪心算法: 使用原材料 5 個,總剩余 55 米,利用率 80.00%
遺傳算法: 使用原材料 4 個,總剩余 0 米,利用率 100.00%
最佳方案:遺傳算法,利用率更高 100.00% > 80.00%
第一局,遺傳算法獲勝。
第二局,修改需求如下:?工作需要需切割 40 米(11段)、11 米(15 段)等 4 種規格? { 40, 11 }, ?{ 11, 15 },{ 10, 11}, { 5,11}
運算結果:
貪心算法切割方案:
原材料 1: [40, 11 ]剩余: 4 米
原材料 2: [40, 11 ]剩余: 4 米
原材料 3: [40, 11 ]剩余: 4 米
原材料 4: [40, 11 ]剩余: 4 米
原材料 5: [40, 11 ]剩余: 4 米
原材料 6: [40, 11 ]剩余: 4 米
原材料 7: [40, 11 ]剩余: 4 米
原材料 8: [40, 11 ]剩余: 4 米
原材料 9: [40, 11 ]剩余: 4 米
原材料 10: [40, 11 ]剩余: 4 米
原材料 11: [40, 11 ]剩余: 4 米
原材料 12: [11, 11, 11, 11, 10 ]剩余: 1 米
原材料 13: [10, 10, 10, 10, 10, 5 ]剩余: 0 米
原材料 14: [10, 10, 10, 10, 10, 5 ]剩余: 0 米
原材料 15: [5, 5, 5, 5, 5, 5, 5, 5, 5 ]剩余: 10 米
共需要15個原材料,總剩余: 55 米,貪心算法利用率: 93.33%
部分長度未切割完畢。
遺傳算法切割方案:
原材料 1: [40] 剩余 15 米
原材料 2: [40] 剩余 15 米
原材料 3: [40] 剩余 15 米
原材料 4: [40] 剩余 15 米
原材料 5: [40] 剩余 15 米
原材料 6: [40] 剩余 15 米
原材料 7: [40] 剩余 15 米
原材料 8: [40] 剩余 15 米
原材料 9: [40] 剩余 15 米
原材料 10: [40] 剩余 15 米
原材料 11: [40, 11] 剩余 4 米
原材料 12: [11, 11, 11, 11, 11] 剩余 0 米
原材料 13: [11, 11, 11, 11, 11] 剩余 0 米
原材料 14: [11, 11, 11, 11, 10] 剩余 1 米
原材料 15: [10, 10, 10, 10, 10] 剩余 5 米
原材料 16: [10, 10, 10, 10, 10, 5] 剩余 0 米
原材料 17: [5, 5, 5, 5, 5, 5, 5, 5, 5, 5] 剩余 5 米
遺傳算法共需要17個原材料,總剩余: 165 米,遺傳算法利用率: 82.35%
============ 方案對比 ============
貪心算法: 使用原材料 15 個,總剩余 55 米,利用率 93.33%
遺傳算法: 使用原材料 17 個,總剩余 165 米,利用率 82.35%
最佳方案:貪心算法,利用率更高 93.33% > 82.35%
第二局,貪心算法獲勝
然而,最佳答案為 40米 +10米 +5 米分一組,需要11根原材料。11米的單獨一組,11*15/55=3根原材料。11+3=14,共需14個原材料,利用率100%。由此可見,每種算法各有優缺點,不一定是最優解。