子集相等问题:给定非负整数值的集合 S ,问题是确定是否存在将集合S划分为两个集合X和Y 的问题,使得 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-Completeness。因此,要证明一个问题是 NP-Complete,那么证明该问题在NP 中并且任何NP-Complete 问题都可以简化为,即,如果 B 是 NP-Complete 并且 B ≤ P C那么对于 NP 中的 C,则 C是 NP 完全的。因此,可以使用以下两个命题得出子集相等问题是 NP-Complete 的结论:
- 子集相等在 NP
- 子集相等是 NP-Hard
这两个命题可以证明为子集相等问题是子集和问题的一个特例,其中 S中子集 X和Y的每个分区的和可以设置为:
由于子集和是NP-Complete ,所以子集相等问题也变成NP-Complete 。
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。