有没有想过优化贪心算法?

时间:2012-03-14 23:15:57

标签: python algorithm

我最近写了一个用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公斤,数据无法改变,但我需要一个更好的想法来改进它。谢谢!

我不确定代码或解决方案,但我认为这都与“效率”有关

1 个答案:

答案 0 :(得分:0)

在这里,我将同义地使用术语“空格”和“重量”。

您可以做的就是计算每个项目的比率profit/weight。比率与某些空间的差异是该空间的最佳改进。例如,如果您有空的空间并且如果重新排列可能会挤压其他项目Z,那么您可以从该空间获得的最大利润将是(Zratio-0ratio)*重量。因此,您可以基于贪心算法生成候选解决方案,然后使用它来约束可能的改进。总的来说,虽然您希望从动态编程的角度来看待它。