首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >寻求0-1多维背包的最大容量利用率

寻求0-1多维背包的最大容量利用率
EN

Stack Overflow用户
提问于 2016-04-08 06:35:31
回答 1查看 122关注 0票数 0

0-1多维背包的典型目标函数是使背包中所有物品的价值最大化。Stackexchange链接中提供了一个很好的算法:0-1 Multidimensional Knapsack

但是,如果我的目标函数是在背包中装入尽可能多的物品呢?所有的部分都有相同的价值。Stackexchange post (Knapsack problem with all profits equal to 1)声称等值的一维背包可以用贪心算法求解。这是真的吗?我认为01背包问题是NP难的,因此贪婪算法可能不会给出最优解。

所以我的问题分为两部分: 1)在这种情况下,贪婪算法能给出最优解吗? 01等值背包2)如何实现多维贪婪算法?vi/wi是一个值除以一个向量...

EN

回答 1

Stack Overflow用户

发布于 2016-04-08 06:44:24

1.)背包问题是一个NP难问题。所以简而言之,不,你不能使用贪婪算法以最优的方式解决它。取而代之的是,启发式方法可以让你非常接近。

2.)在等利润背包的情况下,这可能会退化为一个简单的装箱问题。在这种情况下,如果所有选择在利润方面都是平等的,那么您可能需要关注问题的另一个方面,可能是类似于“大小”的东西。如果是这样的话,你会希望每次都选择你能选择的最小的项目-在这种情况下,贪婪的算法可能就足够了,并且可以通过简单地查看你的选择并选择最小的元素来实现。

应该注意的是,如果线性搜索被重复了很多次,那么它会给你的程序增加令人恼火的开销。相反,您可能希望考虑使用MIN-Heap,因为这将以较低的计算成本获得最小的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36488412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档