首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么交换背包的物品顺序会导致相同的解决方案?

为什么交换背包的物品顺序会导致相同的解决方案?
EN

Stack Overflow用户
提问于 2017-05-24 10:40:47
回答 1查看 472关注 0票数 3

据我所知,背包问题使用动态规划来找到每个项目的最优解,这取决于它之前的项目。这个假设假设解决方案取决于项目的顺序。为什么最终的解决方案不依赖于顺序?

EN

回答 1

Stack Overflow用户

发布于 2017-05-24 12:56:04

不是的。背包问题的动态规划解决方案不依赖于前面的项目。

在考虑是否将物品放入背包时,我们只需要考虑背包在选择物品之前和之后的剩余容量。因此,我们循环所有可能的剩余容量,并选择最好的一个。

代码语言:javascript
复制
dp[i][c] = max(dp[i-1][c+w[i]] + v[i], dp[i-1][c])

其中,dpi表示考虑第i项之后的最大可能值,背包的剩余容量等于c。wi表示第i项的重量(或体积),vi表示第i项的值。

没有必要按顺序考虑项目。考虑项目的顺序只是为了方便。您还可以考虑以相反的顺序或随机顺序选择项目。

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

https://stackoverflow.com/questions/44148051

复制
相关文章

相似问题

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