NP-完全问题到分区问题的约简

问题描述

根据维基百科, Partition Problem(PP)是现有的伪多项式时间动态规划(DP)解决方的NP-Complete(NPC)问题。如果问题是NPC,则可以在多项式时间内将任何NP问题简化为此类问题的实例,即将推销员问题(TSP)实例移植到PP实例。现在,TSP没有比O(2^n)更好的绑定算法了,无论是DP还是其他算法。

现在,为什么我可以采用TSP实例,从中创建PP实例,在伪多项式时间内求解PP实例,然后将其减少呢? 这种减少只会让我付出代价多项式。

解决方法

这里的问题是“伪多项式的数量是多少?”对于背包问题,伪多项式时间算法在时间O(nW)内运行,其中W是任何物品的最大权重。如果您实际上尝试使用当今已知的“标准”减少法来详细说明如何将TSP(或大多数其他NP完全问题)减少为背包,那么您会发现这些项目的权重非常大,通常在这些问题的投入。例如,从包装到装箱的典型减少是通过制造重量在2 n 左右的物品来实现的,其中n是所有物品中不同物品的数量。这使得运行时首先使用此归约法,然后应用背包O(n·2 n ),这不是伪多项式时间。