逆背包问题

发布于 2024-12-12 10:24:34 字数 408 浏览 0 评论 0原文

我正在尝试解决下一个任务: 给定一组物品,每个物品都有一个重量和一个价值,确定给定总价值的背包最小承载能力。

例如 输入:

item1: w = 3.4, v = 3
item2: w = 0.4, v = 1
total value = 7

输出:

我们应该采取:

item1 x0, item2 x7

对于使用动态规划的通用算法,我应该使用什么

minimal capacity = 0 * 3.4 + 0.4 * 7 = 2.8
total value = 7

递归公式?谁能举一个用微小的输入数据解决这个问题的例子吗?

PS 抱歉我的英语。

I'm trying to solve next task:
Given a set of items, each with a weight and a value, determine the knapsack minimal carrying capacity of the given total value.

For Example
Input:

item1: w = 3.4, v = 3
item2: w = 0.4, v = 1
total value = 7

Output:

We should take:

item1 x0, item2 x7

And

minimal capacity = 0 * 3.4 + 0.4 * 7 = 2.8
total value = 7

What recursive formulas should I use for general algorithm using dynamic programming? Can anyone show an example of solving this with tiny input data?

P.S. Sorry for my english.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白芷 2024-12-19 10:24:34

传统的(最大化)背包算法应该可以正常工作。只需将所有出现的 max 替换为 min,您就应该差不多了。另一种看待这一问题的方法是使用负成本,因此最小化变成最大化(不过,您需要特别注意空的情况)。

The traditional (maximizing) knapsack algorithm should work fine. Just swap all the occurrences of max for min and you should be almost there. Another way to see this is using negative costs so minimizing becomes maximizing (you will need to pay special attention to the empty case though).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文