我在优化算法课程中发现了这个问题,完整的问题是: 如果我们可以证明所有容量限制为100的背包问题都可以在多项式时间内解决,那么所有背包问题都属于P。这句话是对还是错?证明理由。
通过我的书和一些研究,我得出了这样的结论: 首先,KP是一个NP完全问题。使用动态编程,它可以达到伪多项式时间,但这还不够。 荒谬地,如果我们可以证明容量限制为100的KP可以在多项式时间内求解,那么我们可以假定KP属于P。
您如何看待我的回答?我认为在最后一句话中这很荒谬。
答案 0 :(得分:0)
证明可以在多项式时间内解决所有容量有限的背包问题,并不能证明所有背包问题都在P中。如果问题在P中,则意味着可以在多项式时间内解决。这意味着可以在O(n ^ k)中求解,其中k是某个整数。 Big O是一个上限,这意味着,如果算法为O(n),则当n接近无穷大时,执行算法所需的时间将永远不会长于n。通过证明所有n <100的问题都可以在多项式时间内解决,因此无法保证更大的n。因此,我们不能说有一种算法可以在O(n ^ k)中运行,因此可以在P中进行。