我最近写了一个用python解决背包问题的程序。它运行良好,通常遵循贪婪的算法(即找到每个步骤的最佳解决方案,直到它结束)
但我需要根据贪心算法优化它 (这是我作业的一部分)
那么请你提供一些改进它的基本想法吗?
Item Name Weight Profit
Ammunition 3.00 95.00
Bread 3.60 90.00
Firewood 2.50 56.00
Olive Oil 2.40 45.00
Water 3.70 67.00
Weapon 4.80 79.73
这是我当前项目的输出。行李容量限制在20公斤,数据无法改变,但我需要一个更好的想法来改进它。谢谢!
我不确定代码或解决方案,但我认为这都与“效率”有关
答案 0 :(得分:0)
在这里,我将同义地使用术语“空格”和“重量”。
您可以做的就是计算每个项目的比率profit/weight
。比率与某些空间的差异是该空间的最佳改进。例如,如果您有空的空间并且如果重新排列可能会挤压其他项目Z,那么您可以从该空间获得的最大利润将是(Zratio-0ratio)*重量。因此,您可以基于贪心算法生成候选解决方案,然后使用它来约束可能的改进。总的来说,虽然您希望从动态编程的角度来看待它。