背负数量限制

我试图解决一些与背​​包问题类似的问题,但有一个转折点。 至少这就是我所认为的无论如何。 在背包问题中,我们有背包的重量能力,物品的重量和价值。 我对此的一个补充是添加一定数量的可用于填充项目的插槽。 像这样:我们有一个最大重量为30的背包,不管重量如何,它只能容纳6件物品。 允许重复。

我设法做了一个递归函数,它需要一个包含相同数量列表的可用插槽的列表

List<List<Item>> workingList
// Example of a list of items.
{"items" : 
    ["name":"item1","value":2,"weight"4],
    ["name":"item2","value":3,"weight"5],
    ["name":"item3","value":4,"weight"6],
    ["name":"item4","value":5,"weight"8]
}

并返回最适合重量和价值的建议物品清单。 这个功能的问题在于它非常贪婪。 如果我有超过4个插槽和10个项目,它将永远耗尽(或者耗尽内存)。 我需要能够容纳约50件或更多,大约3-8个插槽。 我已经看过背包问题的一些例子,但不能很好地控制它是否适合我的问题。 是否有可能使用背包还是完全的其他方法?

链接地址: http://www.djcxy.com/p/59945.html

上一篇: Knapsack with an amount limitation

下一篇: Knapsack restore solution complexity