由于子集问题是NP完全的,如果你能找到问题的多项式时间解,那么你可以在多项式时间内解决NP中的所有问题,并且P = NP。
现在,如果不了解什么是 NP 和 NP 完全性,上述陈述当然是没有意义的。定义 NP 问题的方法有很多种,但最简单的方法是当且仅当存在可以在多项式时间内检查其解的正确性的验证者时,问题才属于 NP。在子集和问题的情况下,显然您可以在多项式时间内验证其解。因此,这是一个NP问题。
NP-complete 类是 NP 中的一组特殊问题,因此 NP 中的所有问题都可以在多项式时间内简化为 NP-complete 中的任何问题。例如,Cook 证明的第一个 NP 完全问题是 SAT 问题,您尝试确定是否存在对一组布尔变量的可能分配,以便布尔公式评估为真。通过正确的过程,您可以在多项式时间内将 NP 中的所有决策问题转换为 SAT,这使得 SAT NP 完全。您可以在此处找到有关原始证明的更多详细信息,但这需要对图灵机有所了解。
为了证明新问题的 NP 完全性,您可以尝试将现有的 NP 完全问题简化为新问题。例如,我们知道 SAT 问题可以很容易地简化为 3-SAT 问题。这意味着给定一个 SAT 问题,我们可以将其转换为 3-SAT 版本,这样解决等效的 3-SAT 问题就可以得到原始 SAT 问题的结果。由于 NP 中的所有问题都可以归结为 SAT,并且 SAT 可以归结为 3-SAT,这使得 3-SAT 问题 NP-complete。
这是一个很好的证明,说明如何将 3-SAT 简化为子集和问题。作为证明的结果,子集和问题是NP完全的。因此,如果您可以找到子集和问题的多项式时间解,那么您可以在多项式时间内解决所有 NP 问题(是的,包括旅行商、图形着色、背包等问题)(因为所有归约都是在多项式时间内完成)。