子集相等问题:给定一组非负整数值S ,问题在于确定是否存在将组S分为两个集合X和Y的分区,这样, X中的整数和等于X的和。 Y中的整数。
说明:
问题的一个实例是为问题指定的输入。子集相等问题的一个实例是集合S。由于NP-Complete问题是NP和NP-hard都存在的问题,因此证明问题为NP-Complete的陈述的证明包括两部分:
- The problem itself is in NP class.
- All other problems in NP class can be polynomial-time reducible to that.(B is polynomial-time reducible to C is denoted as B ≤ PC)
如果仅满足第二个条件,则该问题称为NP-Hard 。
但是不可能将每个NP问题都简化为另一个NP问题以始终显示其NP完整性。因此,要证明问题是NP-Complete,则证明问题出在NP上,并且可以将任何NP-Complete问题还原为该问题,即,如果B是NP-Complete且B≤P C,那么对于NP中的C,则C是NP-Complete。因此,可以得出结论,使用以下两个命题,子集相等问题是NP-完全的:
- 子集相等性在NP中
- 子集相等是NP-Hard
这两个命题可以证明为:子集相等问题是子集和问题的特例,其中子集X和Y在S中的每个分区的总和可以设置为:
由于子集和为NP-Complete ,因此子集相等问题也变为NP-Complete 。