先决条件: NP-完全性
团是图的一个子图,使得该子图中的所有顶点都相互连接,即该子图是一个完整图。最大团问题是找到给定图 G 的最大大小团,即一个完全图,它是 G 的子图并包含最大顶点数。这是一个优化问题。相应地,团决策问题是寻找给定图中是否存在大小为 k 的团。
为了证明一个问题是 NP-Complete,我们必须证明它属于 NP 和 NP-Hard 类。 (因为 NP-Complete 问题是 NP-Hard 问题,也属于 NP)
Clique Decision Problem属于NP——如果一个问题属于NP类,那么它应该具有多项式时间可验证性,即给定证书,我们应该能够在多项式时间内验证它是否是问题的解决方案。
证明:
- 证书——令证书是由集团中的节点组成的集合 S,S 是 G 的子图。
- 验证——我们必须检查图中是否存在大小为 k 的团。因此,验证 S 中的节点数是否等于 k,需要 O(1) 时间。验证每个顶点是否具有 (k-1) 的出度需要 O(k 2 ) 时间。 (因为在一个完整图中,每个顶点都通过一条边与其他每个顶点相连。因此,一个完整图中的边总数 = k C 2 = k*(k-1)/2 )。因此,要检查 S 中 k 个节点形成的图是否完整,需要 O(k 2 ) = O(n 2 ) 时间(因为 k<=n,其中 n 是 G 中的顶点数)。
因此,集团决策问题具有多项式时间可验证性,因此属于 NP 类。
Clique Decision Problem 属于 NP-Hard – 如果每个 NP 问题都可以在多项式时间内简化为 L,则问题 L 属于 NP-Hard。现在,让 C 解决集团决策问题。为了证明 C 是 NP-Hard 问题,我们采用一个已知的 NP-Hard 问题,比如 S,并将其简化为特定实例的 C。如果这种减少可以在多项式时间内完成,那么 C 也是一个 NP-Hard 问题。正如库克定理所证明的那样,布尔可满足性问题 (S) 是一个 NP 完全问题。因此,NP 中的每一个问题都可以在多项式时间内简化为 S。因此,如果 S 在多项式时间内可归约为 C,则每个 NP 问题都可以在多项式时间内归约为 C,从而证明 C 是 NP-Hard。
证明布尔可满足性问题归结为集团决策问题
令布尔表达式为 – F = (x 1 vx 2 ) ^ (x 1 ‘ vx 2 ‘) ^ (x 1 vx 3 ) 其中 x 1 , x 2 , x 3是变量,’^’ 表示逻辑’和’, ‘v’ 表示逻辑“或”,x’ 表示 x 的补码。让每个括号内的表达式是一个子句。因此,我们有三个子句 – C 1 、C 2和 C 3 。将顶点视为 –
- 属于同一子句的两个顶点不相连。
- 没有变量与其补码相关联。
因此,图 G (V, E) 的构造使得 – V = { | a 属于 C i } 并且 E = { ( , ) | i 不等于 j ; b 不等于 a’ } 考虑 G 的子图,顶点为
因此,集团决策问题是 NP-Hard 问题。
结论
Clique 决策问题是 NP 和 NP-Hard。因此,Clique 决策问题是 NP-Complete 问题。
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。