用python求解01背包问题_用python几乎解决了0/1二维背包问题

我试图从这个列表中选择最多10个项目,以获得更高的利润。在Item name | Item "Weight" | Item "Profit"

[A, 1084, 424],

[B, 1143, 391],

[C, 1205, 351],

[D, 1088, 328],

[E, 5, 21],

[F, 996, 241],

[G, 13, 23],

[H, 2, 9],

[I, 5, 13],

[J, 14, 21],

[K, 11, 18],

[L, 4, 12],

[M, 121, 59],

...

Total length: 249

我发现我的问题可以定义为0/1 Bidimensional Knapsack problem。重量将是第一个维度,10个项目的限制将是第二个维度。所以我用python尝试了不同的解决方案来优化选择。在

在搜索了不同的源代码后,我无法找到解决我的特定问题的python解决方案:规定重量限制(介于100-10000之间)

每个项目只能选择一次

总共只能选择10个项目

最大化“利润”!在

最后,我找到了我试图翻译的thisjava解决方案,但是a在某个地方犯了一个错误,该函数几乎可以正常工作,但却找不到正确的解决方案。我花了几天时间试图找出代码失败的地方,但这有点令人困惑。在

^{pr2}$

这就是输出,有时它会显示出更好的结果,但永远不会是正确的解决方案:Final size 0 / 800

Final volume 0 / 10

Final value 0

上下文:Windows 8.1 32位。Ipython笔记本。Python 2。在

有什么建议可以让代码生效吗?提前谢谢你!在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值