使用动态规划的值无关背包问题

Value Independent Knapsack Problems using Dynamic Programming

本文关键字:背包问题 动态规划      更新时间:2023-10-16

我已经搜索了所有的网站。但背包问题总是与重量和价值有关。

我必须为以下问题编写算法和C++实现。。

问题:

背包问题是,给定一组正整数(a1,…..,an)和一个大小为s的背包,找到(a1,..,an

为此必须使用动态编程来设计算法。还必须证明正确性,并为此计算计算时间。

你能为此提供任何有用的资源吗。有人能解释一下怎么做吗?因为在整个网络中,我只能找到带有权重和值的背包问题。

这个问题有点特殊。。

请尽快发布。。。。

这是子集和问题,它是背包的一个私有实例,其中每个项目的cost[i] = weight[i]i

DP解决方案遵循以下递归公式:

D(0,i) = true
D(x,i) = false        x < 0
D(x,0) = false        x > 0
D(x,i) = D(x-arr[i],i-1) OR D(x,i-1)

最后,x<=S的最高值,即D(x,n) = true,是最大S.的最高可能值