0-1 Knapsack 的暴力破解实现
我在给定的任务上挣扎了将近一周,但没有成功找到解决方案,所以这个网站是我最后的希望。
我有 0-1 Knapsack 问题,其中有 20 个具有不同值和重量的物品,麻袋的最大重量是 524。现在我需要实施强力来找到 20 个项目的最佳解决方案子集,以便总重量 <= 524 和最大值所选择的项目。
您能否指出我或更好地给出详细的实现来分析它是如何工作的! 非常感谢
I'm struggling with the given task for almost a week without success of finding solution so this site is my last hope.
I have 0-1 Knapsack problem which has 20 items with different values and weights, maximum weight of sack is 524. Now i need to implement brute force to find optimal solution subset of 20 items so that total weights <= 524 and maximum values of chosen items.
Could you please point me out or better give detailed implementation to analyze how it work!!
Thank you very much
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
蛮力的想法很简单:
如果您想要一些伪代码,请发表评论。
编辑:嘿,这是伪代码以防万一。
请注意,即使对于强力实现,GetCandidateSubsets 函数也不是很有效。感谢阿米特指出这一点。您可以对其进行修改,以仅遍历项目集的组合,而不是排列,作为首次通过优化。
The brute-force idea is easy:
Please comment if you'd like some pseudocode.
EDIT: What the hey, here's the pseudocode just in case.
Note that the GetCandidateSubsets function is not very efficient, even for a brute force implementation. Thanks to amit for pointing that out. You could rework this to only walk the combinations, rather than the permutations, of the item set, as a first-pass optimization.