Java 限量背包

Java 限量背包,java,algorithm,knapsack-problem,Java,Algorithm,Knapsack Problem,我试图解决一个类似于背包问题的问题,但有点扭曲。至少我已经开始这么想了。 在背包问题中,我们有背包的重量容量,物品的重量和价值。 我对这一点的扭曲是添加一定数量的可用插槽,以填充项目。这样地: 我们有一个背包,最大重量为30件,不考虑重量,它只能装6件物品。允许重复 我设法创建了一个递归函数,它接受一个列表,该列表包含与可用插槽数量相同的列表 List<List<Item>> workingList // Example of a list of items. {"ite

我试图解决一个类似于背包问题的问题,但有点扭曲。至少我已经开始这么想了。 在背包问题中,我们有背包的重量容量,物品的重量和价值。 我对这一点的扭曲是添加一定数量的可用插槽,以填充项目。这样地: 我们有一个背包,最大重量为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]
}
列表工作列表
//项目列表的示例。
{“项目”:
[“名称”:“项目1”,“值”:2,“重量”4],
[“名称”:“项目2”,“价值”:3,“重量”5],
[“名称”:“项目3”,“值”:4,“重量”6],
[“名称”:“项目4”,“价值”:5,“重量”8]
}

并返回建议的最适合权重和值的项目列表。这个函数的问题是它非常贪婪。如果我有超过4个插槽和10个项目,则需要花费很长时间(或内存不足)。我需要能够容纳约50个项目或更多,约3-8插槽。我看了一些背包问题的例子,但不能很好地掌握它是否能解决我的问题。是否可以使用背包,或者完全是另一种方法?

如果您发布代码,可能会有所帮助:)这有帮助吗?如果您发布代码,可能会有所帮助:)这有帮助吗