說我揹包裏有3個隔間:紅色,綠色,藍色和3套物品:紅色物品,綠色物品和藍色物品,都有重量和好處。我還要求在揹包的每個隔間中必須放置的總物品總數。紅色隔間必須有2個紅色物品,綠色隔間必須有3個綠色物品,藍色隔間必須有3個藍色物品。我的揹包可以承受某種最大重量。我需要針對給定重量的最大值進行優化。複雜0/1揹包有多個隔層
爲了解決這個問題,我試圖使用分支和綁定技術來解決0/1回退。這種技術可以快速計算,但挑選的物品會留下太多空間,並且不會返回最佳物品。
什麼技術可以用來在合理的時間內解決這個問題(又不是強制每種可能的組合)?我對動態編程不熟悉,但是這更適合於這個,或者我可以使用其他技術嗎?
你有多少紅色物品可供選擇? – user3386109
紅色,綠色,藍色物品的數量可以在1 ... 10,000之間(基本上足以使蠻力永久佔用) – Mikeb
您可以使用動態編程爲每個重量找到最佳值的列表,顏色。例如,如果揹包的最大總重量爲100,則可以使用動態編程爲兩個紅色物品找到最佳值,組合重量爲1到100.對於藍色和綠色也是如此。一旦你有這些列表,那麼你可以創建一個列表,結合兩種顏色,然後將雙色列表與第三種顏色組合。換句話說,是的,你需要熟悉動態編程。 – user3386109