我知道背包问题
是NP完全问题,但它可以通过DP解决。人们说DP解法是伪多项式
,因为它在“输入长度”(即编码输入所需的位数)上是指数级别的。不幸的是我还没有理解这个概念。有人能够慢慢地向我解释一下什么是伪多项式
吗?
我知道背包问题
是NP完全问题,但它可以通过DP解决。人们说DP解法是伪多项式
,因为它在“输入长度”(即编码输入所需的位数)上是指数级别的。不幸的是我还没有理解这个概念。有人能够慢慢地向我解释一下什么是伪多项式
吗?
Now The regular O(n) case
相比之下,搜索数组中的某个元素以多项式时间运行:O(n)。它最多需要n步,这里的n是输入的大小(数组的长度)。
[ 在此查看 ]
复杂性基于输入。在背包问题中,输入是大小、最大容量、利润和重量数组。我们构建dp表为size * W,因此我们感觉它的时间复杂度是多项式级别的。但是,输入W是一个整数,而不是一个数组。因此,它将是O(size*(存储给定W所需的位数)). 如果位数增加1,则运行时间加倍。因此它是指数级别的,因此是伪多项式。