CS170 · 作业 12

作业 12

规约与 NP 完全性进阶:顶点覆盖到集合覆盖的规约、3-SAT 到 3-着色的规约、k-XOR 问题(Max-Cut 到 2-XOR、3-XOR 到 4-XOR)、支配集(Dominating Set)的 NP 完全性证明,以及正交向量(Orthogonal Vectors)问题与 SETH 下 3-SAT 的精细复杂度规约。

知识焦点

先建立概念地图

  • reduction
  • NP-completeness
  • vertex cover
  • set cover
  • 3-coloring
  • 3-SAT
  • k-XOR
  • Max-Cut

建议顺序

题面 → 提示 → 答案

先完整作答,再按需展开提示;最后才展开官方参考解答并逐步核对证明与计算。

本地来源

可离线完成

题面与解答均由本地一手资料整理:hw12.pdf、hw12-sol.pdf

本地一手资料完整提取 · 作业

完整题目、提示与答案

本节按本地一手资料完整整理,共 6 道大题。本地官方解答已收录 5/6 道并默认折叠;其余题目会明确标注无本地官方解答。

使用说明

  • 所有题面均已本土化,并补足网页离线作答所需的数值、代码、表格与约束。
  • 题目与答案分层展示,展开答案前可先查看提示。
  • 本地来源:hw12.pdf、hw12-sol.pdf
1学习小组(Study Group)题目 · 提示 · 答案
官方题面翻译可离线作答无本地官方解答

完整题面

列出你的学习小组中所有成员的姓名与 SID(学号)。如果你没有合作者,必须明确写出 "none"。

查看解题提示

这是课程行政要求:只需据实填写合作成员信息即可;无合作者时切记显式写 "none",不要留空。

答案状态

本地资料未提供这道题的官方解答;页面只保留题面与非答案式提示。

题面来源:hw12.pdf · 1 · confidence: high

2顶点覆盖到集合覆盖(Vertex Cover to Set Cover)题目 · 提示 · 答案
官方题面翻译可离线作答官方解答已收录

完整题面

为帮助你回忆,先给出以下定义:

顶点覆盖(Vertex Cover):给定一个无向无权图 \(G = (V, E)\),图 \(G\) 的一个顶点覆盖 \(C_V\) 是顶点的子集,使得对每条边 \(e = (u, v) \in E\),\(u\) 或 \(v\) 中至少有一个属于顶点覆盖 \(C_V\)。

集合覆盖(Set Cover):给定一个元素全集 \(U\) 以及集合的集合 \(\mathcal{S} = \{S_1, \ldots, S_m\}\),一个集合覆盖是任意(子)集合族 \(C_\mathcal{S}\),其并集等于 \(U\)。

在最小顶点覆盖问题中,给定无向无权图 \(G = (V, E)\),要求找出最小的顶点覆盖。例如,在下图中,\(\{A, E, C, D\}\) 是一个顶点覆盖,但不是最小顶点覆盖;最小顶点覆盖为 \(\{B, E, C\}\) 和 \(\{A, E, C\}\)。

[图:顶点 A B C D E F 构成的无向图]

回顾最小集合覆盖问题:给定集合 \(U\) 和 \(U\) 的子集的集合 \(\mathcal{S} = \{S_1, \ldots, S_m\}\),要求找出最小的集合覆盖。例如,给定 \(U := \{a, b, c, d\}\),\(S_1 := \{a, b, c\}\),\(S_2 := \{b, c\}\),\(S_3 := \{c, d\}\),该问题的一个解为 \(C_\mathcal{S} = \{S_1, S_3\}\)。

给出一个从最小顶点覆盖问题到最小集合覆盖问题的高效规约(reduction)。对你的规约的正确性给出简要证明(即 1-2 句话)。

图表条件 · Vertex Cover 示例无向图:顶点 A B C D E F,其中 {B,E,C} 和 {A,E,C} 为最小顶点覆盖,{A,E,C,D} 为非最小的顶点覆盖。

顶点:A, B, C, D, E, F 边:需从原图重画;已知最小覆盖为 {B,E,C} 和 {A,E,C},说明 A 与 B 对称,E、C 为覆盖核心;D 被加入后仍覆盖但非最小。

来源:hw12.pdf · 1

查看解题提示

考虑如何让顶点覆盖中的每条边都被某个顶点覆盖这一条件,对应到集合覆盖中的每个元素都被某个集合覆盖。一个自然的思路是:让全集 \(U\) 对应图中的边集 \(E\),让每个顶点 \(u\) 对应一个由与 \(u\) 关联的所有边构成的集合。

自检:你构造的实例中,一个集合覆盖是否对应原图的一个顶点覆盖?反过来是否也成立?两者的最小性是否一致?

展开官方参考解答

算法描述:设 \(G = (V, E)\) 为最小顶点覆盖(MVC)问题的一个实例。构造一个最小集合覆盖(MSC)问题的实例,其中全集 \(U = E\),且对每个 \(u \in V\),集合 \(S_u\) 包含所有与 \(u\) 关联的边。

设 \(C_\mathcal{S} = \{S_{u_1}, S_{u_2}, \ldots, S_{u_k}\}\) 为一个集合覆盖,其中 \(k = |C_\mathcal{S}|\)。则我们对应的顶点覆盖为 \(C_V = \{u_1, u_2, \ldots, u_k\}\)。

正确性证明:为说明 \(C_V\) 是一个顶点覆盖,任取 \((u, v) \in E\)。由于 \((u, v) \in U\),存在某个集合 \(S_{u_i}\) 包含 \((u, v)\),因此 \(u_i\) 等于 \(u\) 或 \(v\),从而 \((u, v)\) 在顶点覆盖中被覆盖。于是图 \(G\) 中的每个顶点覆盖都对应 \((U, \mathcal{S})\) 中的一个集合覆盖。

反之,任取一个顶点覆盖 \(u_1, \ldots, u_k\)。为说明 \(S_{u_1}, \ldots, S_{u_k}\) 是一个集合覆盖,任取 \((u, v) \in E\)。由顶点覆盖的定义,存在某个 \(i\) 使得 \(u = u_i\) 或 \(v = u_i\)。因此 \((u, v) \in S_{u_i}\),故 \(S_{u_1}, \ldots, S_{u_k}\) 是一个集合覆盖。于是 \((U, \mathcal{S})\) 中的每个集合覆盖都对应图 \(G\) 中的一个顶点覆盖。

由于每个顶点覆盖都有对应的集合覆盖(反之亦然),且最小化集合覆盖等价于最小化对应的顶点覆盖,该规约成立。

解答来源:hw12-sol.pdf · 1-2 · confidence: high

题面来源:hw12.pdf · 1-2 · confidence: high

3规约到 3-着色(Reduction to 3-Coloring)题目 · 提示 · 答案
官方题面翻译可离线作答官方解答已收录

完整题面

给定图 \(G = (V, E)\),一个合法的 3-着色(3-coloring)为图中每个顶点分配颜色 \(\{\text{red}, \text{green}, \text{blue}\}\) 中的一种,使得对任意边 \((u, v)\),\(u\) 和 \(v\) 具有不同颜色。在 3-着色问题中,目标是在存在合法 3-着色的情况下找到一个。本题将给出一个从 3-SAT 到 3-着色问题的规约。由于 3-SAT 是 NP-Hard 的(对每个 NP 问题都存在到 3-SAT 的规约),这将表明 3-着色也是 NP-Hard 的(对每个 NP 问题都存在到 3-着色的规约)。

在我们的规约中,图初始包含三个特殊顶点,标记为 \(v_\text{TRUE}\)、\(v_\text{FALSE}\)、\(v_\text{BASE}\),以及边 \((v_\text{TRUE}, v_\text{FALSE})\)、\((v_\text{TRUE}, v_\text{BASE})\)、\((v_\text{FALSE}, v_\text{BASE})\)。

(a) 对 3-SAT 公式中的每个变量 \(x_i\),我们创建一对顶点,标记为 \(x_i\) 和 \(\neg x_i\)。应当如何向图中添加边,才能使得在任何合法 3-着色中,\(x_i\) 和 \(\neg x_i\) 中的一个被分配与 \(v_\text{TRUE}\) 相同的颜色,另一个被分配与 \(v_\text{FALSE}\) 相同的颜色?

提示:任何与 \(v_\text{BASE}\) 相邻的顶点必须被分配与 \(v_\text{TRUE}\) 或 \(v_\text{FALSE}\) 相同的颜色。这是为什么?

(b) 考虑下图,我们称之为一个"gadget"(小部件):

[图:gadget 的 9 个顶点 v1-v9,其中 v1, v7, v8, v9 为灰色顶点,v2, v3, v4, v5, v6 为白色顶点]

考虑该图的任意合法 3-着色,且该着色不为任何灰色顶点(\(v_1, v_7, v_8, v_9\))分配蓝色。证明:若 \(v_1\) 被分配绿色,则 \(\{v_7, v_8, v_9\}\) 中至少有一个被分配绿色。

提示:证明其逆否命题更容易!

(c) 现在我们已经观察到关于所构造图的以下性质:

(i) 对任意顶点,若图中包含边 \((v, v_\text{FALSE})\) 和 \((v, v_\text{BASE})\),则在任何合法 3-着色中,\(v\) 将被分配与 \(v_\text{TRUE}\) 相同的颜色。

(ii) 通过穷举也可证明:在一个 gadget 中,若以下条件全部成立: (1) 所有灰色顶点被分配红色或绿色。 (2) \(v_1\) 被分配绿色。 (3) \(\{v_7, v_8, v_9\}\) 中至少有一个被分配绿色。 则 gadget 中的白色顶点存在合法着色。

利用这些观察结果以及你在前几部分的答案,给出一个从 3-SAT 到 3-着色的规约。证明你的规约是正确的(你无需证明上述任何观察结论)。

提示:为每个子句创建一个新的 gadget!

图表条件 · 3-着色规约中的 gadget 图:9 个顶点 v1-v9,其中 v1, v7, v8, v9 为灰色顶点(输入/输出端点),v2, v3, v4, v5, v6 为白色顶点(内部辅助顶点);右侧三个灰色顶点对应子句的三个文字,左侧灰色顶点 v1 对应子句顶点 Cj。

顶点:v1, v2, v3, v4, v5, v6, v7, v8, v9 灰色顶点:v1, v7, v8, v9 白色顶点:v2, v3, v4, v5, v6 边:需从原图重画(原文仅给出顶点列表,未列出边;解中提到右侧和左侧各有一个三角形结构)

来源:hw12.pdf · 2

查看解题提示

(a) 先确定 \(v_\text{TRUE}\)、\(v_\text{FALSE}\)、\(v_\text{BASE}\) 三者两两相邻,因此必须分别着三种不同颜色;再让 \(x_i\) 与 \(\neg x_i\) 都只能取 \(v_\text{TRUE}\) 或 \(v_\text{FALSE}\) 的颜色,同时二者颜色不同。

(b) 用逆否命题:假设右边三个灰色顶点全为红色,沿着三角形的约束向左推导。

(c) 变量部分用 (a) 的构造,每个子句用一个 gadget 表示,并把子句中的三个文字作为 gadget 右侧的三个灰色顶点。

展开官方参考解答

(a) 添加边 \((x_i, \neg x_i)\)、\((x_i, v_\text{BASE})\) 和 \((\neg x_i, v_\text{BASE})\)。由于 \(x_i\) 和 \(\neg x_i\) 都与 \(v_\text{BASE}\) 相邻,它们必须被分配与 \(v_\text{BASE}\) 不同的颜色,即它们都被分配 \(v_\text{TRUE}\) 或 \(v_\text{FALSE}\) 的颜色之一。由于在 \(x_i\) 与 \(\neg x_i\) 之间添加了边,它们不能被分配相同颜色,即一个被分配与 \(v_\text{TRUE}\) 相同的颜色,另一个被分配与 \(v_\text{FALSE}\) 相同的颜色。

(b) 等价地证明:若右侧所有灰色顶点都被分配红色,则左侧的灰色顶点也必须被分配红色。考虑右侧的三角形。由于所有灰色顶点都被分配红色,右侧的两个顶点必须被分配绿色和蓝色,因此在任何合法着色中,该三角形左侧的顶点必须被分配红色。对左侧的三角形重复此逻辑,可得左侧的灰色顶点在任何合法着色中必须被分配红色。

(c) 给定一个 3-SAT 实例,创建问题描述中的三个特殊顶点及边。如 (a) 部分,对每个变量 \(x_i\) 创建顶点 \(x_i\) 和 \(\neg x_i\),并添加 (a) 答案中给出的边。对子句 \(j\),添加一个顶点 \(C_j\) 以及边 \((C_j, v_\text{FALSE})\)、\((C_j, v_\text{BASE})\)。最后,对子句 \(j\) 添加顶点与边以构造一个 gadget,其中 gadget 右侧的三个灰色顶点为该子句中三个文字(literal)对应的顶点,左侧的灰色顶点为顶点 \(C_j\)(gadget 中所有白色顶点仅用于该子句的 gadget)。

若存在满足的 3-SAT 赋值,则按如下方式得到图的一个合法 3-着色:令 \(v_\text{FALSE}\) 为红色,\(v_\text{TRUE}\) 为绿色,\(v_\text{BASE}\) 为蓝色;若 \(x_i\) 为真则 \(x_i\) 为绿色,若 \(x_i\) 为假则 \(x_i\) 为红色(\(\neg x_i\) 反之)。令每个 \(C_j\) 为绿色。最后,取任意一个 gadget。由于该 3-SAT 赋值是满足的,在每个 gadget 中右侧至少有一个灰色顶点被分配绿色,因此由问题描述中的观察 (ii),该 gadget 可被着色。

若存在合法 3-着色,则存在满足的 3-SAT 赋值。由对称性,可假设 \(v_\text{FALSE}\) 为红色,\(v_\text{TRUE}\) 为绿色,\(v_\text{BASE}\) 为蓝色。于是,对每个文字,若 \(x_i\) 为绿色,则该文字在满足赋值中为真。由 (a) 部分,\(x_i\) 和 \(\neg x_i\) 中恰好有一个为绿色,因此这产生一个合法赋值。由观察 (i),我们还知道每个节点 \(C_j\) 必须为绿色。所有文字节点为红色或绿色,因此由 (b) 部分,这意味着对每个子句,该子句 gadget 中有一个灰色文字节点为绿色,即该子句在 3-SAT 赋值中将被满足。

解答来源:hw12-sol.pdf · 3-4 · confidence: high

题面来源:hw12.pdf · 2-3 · confidence: high

4k 元异或可满足性(k-XOR)题目 · 提示 · 答案
官方题面翻译可离线作答官方解答已收录

完整题面

在 k-XOR 问题中,给定 \(n\) 个布尔变量 \(x_1, x_2, \ldots, x_n\),一个包含 \(m\) 个子句的列表(每个子句恰好是 \(k\) 个不同变量的 XOR,即当且仅当该子句中 \(k\) 个变量有奇数个为真时,该子句为真),以及一个整数 \(r\)。目标是判断是否存在某种变量赋值,使得至少 \(r\) 个子句被满足。

(a) 在 Max-Cut 问题中,给定无向无权图 \(G = (V, E)\) 和整数 \(c\),希望找到一个割 \(S \subseteq V\),使得至少有 \(c\) 条边穿过该割(即恰好有一个端点在 \(S\) 中)。给出一个从 Max-Cut 到 2-XOR 的规约,并论证其正确性。

提示:2-XOR 中的每个子句都等价于 Max-Cut 中的一条边。

(b) 给出一个从 3-XOR 到 4-XOR 的规约,并论证其正确性。

查看解题提示

(a) 考虑让图中的每个顶点对应一个布尔变量,每条边对应一个 2-XOR 子句;此时一条边穿过割当且仅当对应的 2-XOR 子句为真。

(b) 考虑如何在不改变可满足子句数的前提下,把每个子句的变量数从 3 增加到 4。引入一个公共新变量可能是一个方向。

展开官方参考解答

(a) 对每个顶点 \(i\) 创建一个变量,对每条边 \((i, j)\) 创建一个子句 \(x_i \text{ XOR } x_j\)。取 \(c = r\)。

对任意赋值,考虑割 \(S\) 包含所有满足 \(x_i\) 在此赋值中为真的顶点 \(i\)。对每条穿过该割的边 \((i, j)\),其对应的子句为真,因为 \(x_i\) 和 \(x_j\) 中恰好有一个为真。对每条不穿过该割的边,其对应的子句为假,因为 \(x_i\) 和 \(x_j\) 要么都为真要么都为假。这证明了规约的正确性。

(b) 该规约是添加一个新变量 \(y\),并将 \(y\) 添加到 Max 3-XOR 实例的每个子句中,并取相同的 \(r\) 值,从而得到一个 Max 4-XOR 实例。

给定一个在 Max 3-XOR 实例中满足 \(r\) 个子句的赋值,将 \(y\) 设为假后,同样的赋值在 Max 4-XOR 实例中也满足 \(r\) 个子句。给定一个在 Max 4-XOR 实例中满足 \(r\) 个子句的赋值,若 \(y\) 为假,则去掉 \(y\) 后的赋值在 Max 3-XOR 实例中满足 \(r\) 个子句。否则 \(y\) 为真,去掉 \(y\) 并对所有其他变量取反后的赋值在 Max 3-XOR 实例中满足 \(r\) 个子句。

为说明这一点,考虑在 Max 4-XOR 中为真的任意子句。删除 \(y\) 会使其从有奇数个真变量变为有偶数个。然后,由于 3 是奇数,对所有变量取反会使其回到有奇数个真变量。类似地,在 Max 4-XOR 实例中为假的任意子句有偶数个真变量。删除 \(y\) 导致其有奇数个真变量,然后对所有其他变量取反使其回到偶数。

解答来源:hw12-sol.pdf · 4-5 · confidence: high

题面来源:hw12.pdf · 4 · confidence: high

5支配集(Dominating Set,可选)题目 · 提示 · 答案
官方题面翻译可离线作答官方解答已收录

完整题面

图 \(G = (V, E)\) 的一个支配集(dominating set)是 \(V\) 的一个子集 \(D\),使得不在 \(D\) 中的每个顶点都至少与 \(D\) 中的一个顶点相邻。设最小支配集(Minimum Dominating Set)问题为判断是否存在大小 \(\leq k\) 的支配集。证明最小支配集问题是 NP-Complete 的。你可以假设 \(G\) 是连通的。

提示:尝试从顶点覆盖(Vertex Cover)或集合覆盖(Set Cover)规约。

查看解题提示

证明 NP-Complete 通常分两步:先证该问题属于 NP(给定一个候选集 \(D\),如何在多项式时间内验证它是否是大小 \(\leq k\) 的支配集);再证该问题是 NP-Hard(从某个已知 NP-Hard 问题规约)。

规约方向提示:从顶点覆盖出发,考虑如何在每条边上引入一个代表该边的新顶点,使得支配集必须覆盖这些新顶点,从而迫使原图中的边被覆盖。

展开官方参考解答

证明最小支配集属于 NP。

给定一个候选解,我们可以通过遍历不在解子集 \(D\) 中的顶点并检查它是否有邻居在 \(D\) 中来验证其是否为解。这最多需要 \(O(E)\) 时间,因为你最多检查每条边两次。还应检查 \(D\) 中的顶点数是否小于 \(k\),这最多需要 \(O(V)\) 时间(因为 \(k\) 应小于 \(E\))。因此,我们可以在 \(O(E)\) 的多项式时间内验证。

证明最小支配集是 NP-Hard。

从顶点覆盖到支配集的规约

最小顶点覆盖是找一个大小 \(\leq k\) 的顶点覆盖(顶点的子集),其中所有边有一个端点在顶点覆盖中。

设 \(G(V, E)\) 为顶点覆盖的一个实例,我们试图找一个大小 \(\leq k\) 的顶点覆盖。对每条边 \((u, v)\),我们添加一个新顶点 \(c\) 以及两条边 \((c, u)\) 和 \((c, v)\)。我们将相同的 \(k\) 传给支配集。这是一个多项式规约,因为我们添加了 \(|E|\) 个顶点和 \(2|E|\) 条边。

规约的正确性证明

  1. 若最小顶点覆盖有解,则其对应的最小支配集有解。

设我们有一个大小为 \(k\) 的最小顶点覆盖。由顶点覆盖的定义,每条边有一个或两个端点在顶点覆盖中。因此,若称该顶点覆盖为一个支配集,则每个原始顶点要么在支配集中,要么与之相邻。现在需要确认为每条边添加的顶点是否被覆盖。由于每条边必须有一个或两个端点在顶点覆盖中,添加的顶点必须至少与顶点覆盖中的一个顶点相邻。因此,顶点覆盖直接映射到变换后问题的一个支配集。

  1. 若变换后格式的最小支配集有解,则其对应的最小顶点覆盖有解。

设我们有一个大小为 \(k\) 的变换格式的最小支配集。支配集中的顶点要么来自原始顶点,要么来自我们添加的顶点。若它们不来自变换中添加的顶点,则由前一方向的逻辑,支配集直接对应于顶点覆盖。若有些顶点来自变换,则我们可以将该顶点替换为其对应边的任一端点,而不改变支配集的大小。因此,我们可以得到一个仅使用原始问题顶点的、大小为 \(k\) 的支配集,它将直接对应于原始问题中大小为 \(k\) 的最小顶点覆盖。

替代证明:从集合覆盖到支配集的规约

最小集合覆盖是找一个大小 \(\leq k\) 的集合覆盖(所有集合的子集),其中所有元素被集合覆盖中的至少一个集合覆盖。

设 \((S, U)\) 为集合覆盖的一个实例,其中 \(U\) 表示所有不同元素的集合,\(S\) 是 \(U\) 的子集 \(S_i\) 的集合。如下构造图 \(G = (V, E)\)。对 \(U\) 中的每个元素 \(u\) 构造一个顶点,称为"元素顶点"。对每个可能的 \(S_i\) 构造一个顶点,称为"集合顶点"。将每个顶点 \(S_i\) 连接到所有在 \(S_i\) 中的 \(u\)。注意,若此时对图运行支配集,可以用任意合法集合覆盖覆盖所有元素顶点,但必须选取每个集合顶点才能确保所有集合顶点被覆盖。为修正此问题,将每个集合顶点与其他所有集合顶点连接,形成一个团(clique)。这确保通过选取一个集合顶点即可覆盖所有集合顶点。这样我们实际上只需关注覆盖元素顶点。

规约的正确性证明

  1. 若最小集合覆盖有解,则其对应的最小支配集有解。

设我们有一个大小为 \(k\) 的最小集合覆盖。这将对应于一个大小为 \(k\) 的支配集。对最小集合覆盖中的每个集合,选取对应的集合顶点。由图的构造及集合覆盖的定义直接可知,所有集合顶点和元素顶点都被覆盖。

  1. 若变换后格式的最小支配集有解,则其对应的最小集合覆盖有解。

设我们有一个大小为 \(k\) 的支配集 \(D\)。我们可以找到一个大小 \(\leq k\) 的集合覆盖。为此,我们构造一个新的仅包含集合顶点的支配集 \(D'\)。将 \(D\) 中的每个集合顶点加入 \(D'\)。对支配集中每个为元素顶点的顶点,任选一个相邻的集合并加入 \(D'\)。观察到 \(|D'| \leq |D|\)。因此,若 \(G\) 中存在大小 \(\leq k\) 的支配集,则必存在大小 \(\leq k\) 的集合覆盖。

由于该问题属于 NP 且是 NP-Hard 的,它必为 NP-Complete。

解答来源:hw12-sol.pdf · 5-7 · confidence: high

题面来源:hw12.pdf · 5 · confidence: high

6正交向量(Orthogonal Vectors,可选)题目 · 提示 · 答案
官方题面翻译可离线作答官方解答已收录

完整题面

在 3-SAT 问题中,有 \(n\) 个变量和 \(m\) 个子句,其中每个子句是这些变量或其否定的 OR(至多三个)。问题的目标是找到满足所有子句的变量赋值,或正确判定不存在这样的赋值。

在正交向量(orthogonal vectors)问题中,有两个向量集合 \(A\)、\(B\)。所有向量均在 \(\{0, 1\}^m\) 中,且 \(|A| = |B| = n\)。问题的目标是找到两个向量 \(a \in A\)、\(b \in B\),其点积为 0,或正确判定不存在这样的向量对。该问题的暴力解法需要 \(O(n^2 m)\) 时间:我们计算 \(A\)、\(B\) 中所有 \(|A||B| = n^2\) 个向量对之间的点积,每个点积需要 \(O(m)\) 时间。

证明:若对某个 \(c \in [1, 2)\),存在一个 \(O(n^c m)\) 时间复杂度的正交向量问题算法,则存在一个 \(O(2^{c n/2} m)\) 时间复杂度的 3-SAT 问题算法。为简化,你在 3-SAT 中可假设变量数必须为偶数。

提示:尝试将 3-SAT 问题中的变量分成两组。

查看解题提示

将 \(n\) 个变量均分为两组 \(V_1\)、\(V_2\),每组 \(n/2\) 个。对每组枚举所有 \(2^{n/2}\) 种赋值,并将每种赋值为一个长度为 \(m\) 的 0/1 向量(第 \(i\) 位表示第 \(i\) 个子句是否被该组变量满足)。

思考:两个向量正交(点积为 0)意味着什么?它如何对应两组赋值的组合满足所有子句?

展开官方参考解答

我们使用一个 \(O(2^{n/2} m)\) 时间复杂度的从 3-SAT 到正交向量的规约。将变量分成两个大小为 \(n/2\) 的组 \(V_1\)、\(V_2\)。对每组,枚举这些变量的所有 \(2^{n/2}\) 种可能赋值。对 \(V_1\) 中变量的每个赋值 \(x\),令 \(v_x\) 为一个向量,其中第 \(i\) 个分量在该赋值中 \(V_1\) 的变量满足了第 \(i\) 个子句时为 0,否则为 1。我们忽略子句中属于 \(V_2\) 的变量。例如,若子句 \(i\) 仅包含 \(V_2\) 中的变量,则对所有 \(x\) 有 \(v_x(i) = 1\)。令 \(A\) 为以此方式产生的 \(2^{n/2}\) 个向量。

类似地构造 \(B\),包含 \(2^{n/2}\) 个向量,但使用 \(V_2\) 而非 \(V_1\)。我们断言:3-SAT 实例是可满足的,当且仅当在 \(A \times B\) 中存在一对正交向量。基于此断言,我们可以在 \(O(2^{n/2} m)\) 时间内构造正交向量实例,然后在 \(O((2^{n/2})^c m) = O(2^{c n/2} m)\) 时间内求解该实例,从而求解 3-SAT。

设 3-SAT 存在一个满足赋值。令 \(x_1\) 为 \(V_1\) 中变量的赋值,\(x_2\) 为 \(V_2\) 中变量的赋值。令 \(v_1\)、\(v_2\) 为 \(A\)、\(B\) 中对应于 \(x_1\)、\(x_2\) 的向量。由于每个子句都被满足,对每个 \(i\),\(v_1(i)\) 和 \(v_2(i)\) 中必有一个为 0,因此 \(v_1 \cdot v_2 = 0\)。故在正交向量实例中也存在一对正交向量。

设在正交向量实例中存在一对正交向量 \(v_1\)、\(v_2\)。则对每个 \(i\),\(v_1(i)\) 或 \(v_2(i)\) 为 0。相应地,对 \(V_1\)、\(V_2\) 中变量的对应赋值,这些赋值的组合必须满足每个子句。因此,这些赋值的组合是 3-SAT 的一个满足赋值。

注:人们普遍认为 SAT 不存在 \(O(2^{0.999n} m)\) 时间复杂度的算法——这被称为强指数时间假说(Strong Exponential Time Hypothesis,SETH)。因此人们也普遍认为正交向量不存在 \(O(n^{1.99} m)\) 时间复杂度的算法,因为否则 SETH 将被违反。事实上,我们可以将正交向量规约到字符串问题如编辑距离(edit distance)和最长公共子序列(longest common subsequence),因此如果我们相信 SETH,我们也相信那些问题不存在 \(O(n^{1.99})\) 时间复杂度的算法。研究这些问题之间多项式时间规约的领域被称为精细复杂度(fine-grained complexity),正交向量是该领域的核心问题之一。

解答来源:hw12-sol.pdf · 7-8 · confidence: high

题面来源:hw12.pdf · 6 · confidence: high


一手资料