Python 对所用物品总数有限制的背包

Python 对所用物品总数有限制的背包,python,algorithm,knapsack-problem,Python,Algorithm,Knapsack Problem,因此,我有一个背包,背包中可以放入的物品数量是有限制的,而物品的重量也是有限制的 因此,给定项目限制5和重量100: 我们会发现5个项目(可以重复5倍相同的项目)最适合重量100 我已经解决了动态规划中的无界和有界问题(每个项目都有限制,但使用的项目总数没有限制)。但我对如何使用这种新方法有点困惑。这会是一个多维背包问题吗,就像体积和重量一样?但相反,我们想要的是物品的使用和重量?或者它是一个0-1的背包,有改动吗 如果有人能将其分解成更小的逻辑步骤,或者给我指出一些可靠的代码阅读的方向(我的g

因此,我有一个背包,背包中可以放入的物品数量是有限制的,而物品的重量也是有限制的

因此,给定项目限制5和重量100: 我们会发现5个项目(可以重复5倍相同的项目)最适合重量100

我已经解决了动态规划中的无界和有界问题(每个项目都有限制,但使用的项目总数没有限制)。但我对如何使用这种新方法有点困惑。这会是一个多维背包问题吗,就像体积和重量一样?但相反,我们想要的是物品的使用和重量?或者它是一个0-1的背包,有改动吗

如果有人能将其分解成更小的逻辑步骤,或者给我指出一些可靠的代码阅读的方向(我的google fu正在努力寻找解决方案),我将不胜感激


谢谢你抽出时间

这是多约束背包问题。您的新约束是,项目数量的总和小于与其重量无关的某个数字

这里有一些很好的方法:


您还应该尝试使用新约束调整常规背包问题的递推关系,并查看结果。

这可以表示为多约束背包问题(也称为多维背包问题),如下所示

目标函数和第一维度与当前公式中的相同(即权重之和)

然后,可以使用第二个维度来约束选定项目的数量。使用:

  • w2,对于所有i,i=1
  • W2=允许您选择的项目数量限制(在您的示例中为5)
以下是一些参考资料:


谢谢你的参考资料,但它们太密集,太专业,我无法理解,是否有代码示例?谢谢你的参考资料,但它们太密集,太专业,我无法理解,是否有代码示例?