如何将3-SAT缩减为独立集?

时间:2017-12-05 15:49:45

标签: algorithm graph np sat independent-set

我正在阅读来自here的NP硬度(第8,9页),并且在笔记中,作者将3-SAT形式的问题简化为可用于解决最大独立集问题的图。

在该示例中,作者将以下3-SAT问题转换为图形。 3-SAT问题是:

(a ∨ b ∨ c) ∧ (b ∨ ~c ∨ ~d) ∧ (~a ∨ c ∨ d) ∧ (a ∨ ~b ∨ ~d)

生成的等效图表是:

graph

作者指出,如果出现以下情况,则两个节点通过边连接:

  1. 它们对应于同一条款中的文字
  2. 它们对应于一个变量及其倒数。
  3. 我无法理解作者是如何制定这些规则的。

    • 为什么我们需要在变量和逆变量之间绘制边?
    • 假设有两个条款,第1条有(a,b,~c),第2条有(~a,b,c)将第1条连接到第2条,为什么我们必须连接a和~a ?为什么我们不能将(第1条)与c(第2条)连接起来呢?

1 个答案:

答案 0 :(得分:3)

我认为可以解决问题的是reduction概念。假设你熟悉问题X(即3-SAT)[它意味着什么?你知道解决X 的难度。此外,您目前正在分析另一个新问题,如Y(即独立集)......

关于X的知识怎样才能帮助你想出Y?如果你能找到它们之间的关系(即减少),那么你可以使用关于X到Y的知识。像“Y比X更难”“Y就像X“。那么解决方案想要做的就是找到两个问题之间的关系。

  

在可计算性理论和计算复杂性理论中,简化是一种将一个问题转化为另一个问题的算法。可以使用从一个问题到另一个问题的减少来表明第二个问题至少与第一个问题一样困难。

你在这里提到的两条规则就是所有这些规则(即关系)。

  1. 您不能同时选择边的两个顶点。此外,您无法同时设置变量及其否定。
  2. 您必须在子句中拥有TRUE变量。另外,为了最大化所选顶点的数量,您必须从每个子句中选择一个节点。
  3. 这显示了这些规则的来源。

    PS:此处提到的是不准确作为解决3-SAT到独立集问题的证明。这个解释只是为了让您更深入地了解证明想要做什么程序。证据留给学术笔记。

    减少的另一个重要因素是它自己的时间。另一方面,缩短时间(即将X实例转换为Y实例所需的时间)必须小于X问题时间(o.w它主导X解决方案时间)。

    此外,还有一些表示法将X < Y与其他时间顺序一起显示为<的索引。此外,如果您显示X < YY < X。这意味着这些问题具有相同的硬度。

    在最后一点注意到引用说明的内容是关于减少 ...减少是算法 ......