📜  证明 Clique Decision 问题是 NP-Complete

📅  最后修改于: 2021-10-25 05:01:57             🧑  作者: Mango

先决条件: NP-完全性

团是图的一个子图,使得该子图中的所有顶点都相互连接,即该子图是一个完整图。最大团问题是找到给定图 G 的最大大小团,即一个完全图,它是 G 的子图并包含最大顶点数。这是一个优化问题。相应地,团决策问题是寻找给定图中是否存在大小为 k 的团。

为了证明一个问题是 NP-Complete,我们必须证明它属于 NP 和 NP-Hard 类。 (因为 NP-Complete 问题是 NP-Hard 问题,也属于 NP)

Clique Decision Problem属于NP——如果一个问题属于NP类,那么它应该具有多项式时间可验证性,即给定证书,我们应该能够在多项式时间内验证它是否是问题的解决方案。

证明:

  1. 证书——令证书是由集团中的节点组成的集合 S,S 是 G 的子图。
  2. 验证——我们必须检查图中是否存在大小为 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 。将顶点视为 – 1 , 1>; 2 , 1>; 1 ‘, 2>; 2 ‘, 2>; 1 , 3>; 3 , 3> 其中每个顶点中的第二项表示它们所属的子句编号。我们连接这些顶点,使得 –

  1. 属于同一子句的两个顶点不相连。
  2. 没有变量与其补码相关联。

因此,图 G (V, E) 的构造使得 – V = { | a 属于 C i } 并且 E = { ( , ) | i 不等于 j ; b 不等于 a’ } 考虑 G 的子图,顶点为 2 , 1>; 1 ‘, 2>; 3 , 3>。它形成了一个大小为 3 的集团(由上图中的虚线表示)。与此相对应,对于赋值 – 1 , x 2 , x 3 > = <0, 1, 1> F 评估为真。因此,如果我们的可满足性表达式中有 k 个子句,我们会得到一个大小为 k 的最大集团,并且对于相应的值分配,可满足性表达式的计算结果为真。因此,对于特定实例,可满足性问题被简化为集团决策问题。

因此,集团决策问题是 NP-Hard 问题。

结论
Clique 决策问题是 NP 和 NP-Hard。因此,Clique 决策问题是 NP-Complete 问题。

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程。