形式陈述
令 A ⊆ Σ ∗ 与 B ⊆ Γ ∗ 是两个判定语言 公理库 形式语言 Formal language · Language over an alphabet 固定字母表上有限字的任意集合,是识别器、文法与判定问题共同描述的对象。 。若存在全函数 公理库 函数 Function · Map · Mapping 由定义域、陪域和单值图共同组成,并把每个输入送到唯一输出的映射。 f : Σ ∗ → Γ ∗ 和多项式 p ,使某台确定性机器在 p ( | x | ) 步内输出 f ( x ) ,并且
∀ x ∈ Σ ∗ : x ∈ A ⟺ f ( x ) ∈ B , 就称 A 多项式时间 many-one 归约到 B ,记为
A ≤ m p B . 这是一次性映射:归约算法先完整产生一个 B 实例,不能询问 B 的答案再决定输出。因为每写出一个输出符号至少需要一步,多项式时间 公理库 时间复杂度 Time complexity · Running time 在固定计算模型与输入编码后,算法运行步骤数随输入规模增长的量级。 还自动保证 | f ( x ) | ≤ p ( | x | ) ,排除了指数长度的翻译。
以下的多项式上界都取为非减形式,例如 C ( n + 1 ) k ,其中 C > 0 、k 为非负整数;任意多项式时间上界都可放大为这种形式,不改变资源限制。
归约具有传递性。若 A ≤ m p B 由 f 见证,B ≤ m p C 由 g 见证,则 h = g ∘ f 保持成员资格。设计算 f 的时间和输出长度均由 p ( n ) 控制,计算 g 在长度 m 上耗时 q ( m ) ,那么
T h ( n ) ≤ p ( n ) + q ( p ( n ) ) , 仍是多项式。这一复合计算是归约链能够传递困难性的理由。
直觉
可以把 f 看成一个不知答案的编译器。它把源实例改写成目标实例,目标的一个是/否位可以原样解释回源问题。若目标有快速判定器,就把“编译器 + 目标判定器”串联起来解决源问题;若源已经代表一族困难问题,箭头所指的目标便至少承载同样的困难性。
双向等价承担了归约的正确性。只把是实例送到是实例,会允许否实例随意落入目标语言,目标答案便不能可靠解释;只画出两个问题在外观上的相似,也没有构成算法变换。
例子与边界
独立集到顶点覆盖
定义
有 大 小 至 少 的 独 立 集 有 大 小 至 多 的 顶 点 覆 盖 IS = { ⟨ G , k ⟩ : G 有大小至少 k 的独立集 } , VC = { ⟨ G , ℓ ⟩ : G 有大小至多 ℓ 的顶点覆盖 } . 对含 n 个顶点的良构输入,令
f ( ⟨ G , k ⟩ ) = ⟨ G , n − k ⟩ . 集合 S ⊆ V 独立,当且仅当 V ∖ S 覆盖每条边,因此
⟨ G , k ⟩ ∈ IS ⟺ f ( ⟨ G , k ⟩ ) ∈ VC . 具体地,独立集 S 的补集包含每条边的至少一个端点,且 | V ∖ S | = n − | S | ≤ n − k ;反过来,大小至多 n − k 的覆盖 C 的补集不含内部边,且 | V ∖ C | ≥ k 。这分别给出两个方向的证据。
例如在三角形 K 3 中,k = 1 映成覆盖阈值 2 ,两边都为是实例;k = 2 映成阈值 1 ,两边都为否实例。变换只复制图并计算 n − k ,规模与时间均为输入长度的多项式。若把阈值限制为 0 ≤ k ≤ n 的合法编码,归约应把其他串映到一个固定的 VC 否实例,才能成为全函数。若语言本来允许任意整数阈值,则不能把越界值一律拒绝:k ≤ 0 是源是实例,应映到固定是实例;k > n 才是源否实例。编码的语法合法性与数学上答案为否是两件事。
图片加载失败 独立集到顶点覆盖的多项式时间归约 方向与接口边界
要把已知困难语言 A 的困难性传给 B ,方向必须是 A ≤ m p B 。反向 B ≤ m p A 只说明可用 A 的算法解决 B 。证明还必须覆盖“源是则目标是”和“目标是则源是”,且构造 f 时不能调用目标判定器。
本页只定义判定语言间的一次 Karp 归约。Turing 归约允许多次、可自适应地询问目标 oracle,通常更强。
若研究的预算缩小到对数工作空间,变换本身也必须受相应约束。STCON 的 NL 完全性 公理库 STCON 的 NL 完全性 NL-completeness of STCON · Directed reachability is NL-complete 有向图可达性在确定性对数空间多一归约下是 NL 完全问题。 给出完整的对数空间归约定义、逐位输出配置图的方法,以及目标算法读取输出时的虚拟输入重算。这里的归约方向不变,但多项式时间可计算不再足以满足归约器的资源要求。
L-reduction 公理库 L-reduction L-reduction · Linear reduction 以两个常数控制目标最优值与误差回传的优化归约,保持PTAS并明确常数近似传递的方向条件。 控制优化值与误差,gap reduction 公理库 Gap 问题与 gap reduction Gap problem · Gap reduction · Gap-preserving reduction 以带承诺的最优值阈值间隙和保持两端阈值的归约,把局部检验可靠性转化为不可近似性。 保存承诺间隙,FPT 归约 公理库 FPT 归约 FPT reduction · Parameterized reduction 在 f(k)N^{O(1)} 时间内保持答案,并把目标参数限制为原参数函数的参数化 many-one 归约。 还约束新参数。普通 Karp 归约不会自动传递这些额外结构。例如独立集与顶点覆盖的最优值满足 α ( G ) + τ ( G ) = n ,精确阈值能够取补互换;但覆盖近似解只保证 | C | ≤ 2 τ ( G ) 时,其补集仅有 n − | C | ≥ n − 2 τ ( G ) 个点。当 τ ( G ) 接近 n / 2 ,该下界可接近零,不能得到独立集的常数乘法近似。归约也不会自动保留通信量、查询次数或学习成功概率。
推论与应用
若 A ≤ m p B 且 B ∈ P ,先算 f ( x ) 再运行 B 的判定器,得到 A ∈ P 。
例如已有 VC 判定器时,先把 IS 输入的阈值改成 n − k ,再将同一张图交给它,其答案就是 IS 的答案;若变换时间及输出长度由 p 控制、VC 算法时间由 q 控制,总时间至多 p ( n ) + q ( p ( n ) ) 。这个算法方向与困难性方向一致:IS 已知困难时,IS 到 VC 的箭头才把困难性传给 VC;单独给出补集变换并没有证明 IS 已经困难。可用五边形 C 5 自检:它的最大独立集为二、最小覆盖为三,所以 k = 2 映成覆盖阈值三,两边为是;k = 3 映成阈值二,两边为否。
若 B ∈ NP ,目标证书长度是 | f ( x ) | 的多项式,而 | f ( x ) | 又是 | x | 的多项式,所以同样有 A ∈ NP 。这种“容易性沿箭头反向传播”的性质,是NP 困难性 公理库 NP 困难性 NP-hardness NP 中每个语言都可多项式时间归约到目标问题。 与NP 完全性 公理库 NP 完全性 NP-completeness 同时属于 NP 且为 NP-hard 的性质。 的逻辑基础。
相较于可计算性中的映射归约 公理库 映射归约 Mapping reduction · Many-one reduction 用可计算函数把一个语言成员关系变换为另一个语言成员关系。 ,本页额外限制变换时间与输出长度。选用哪种归约会改变可传递的结论,因此困难性陈述必须连同归约类型书写。
分布问题的平均情形归约 公理库 平均情形复杂性与分布归约 Average-case complexity 用运行时间的正阶矩定义稳健的平均多项式保证,并证明概率支配的定长归约保持该保证,复算稀有慢实例的成本。 还要求控制前像的总概率质量。一个保持首位的正确 Karp 归约,可能把均匀输入集中到目标算法的两个稀有慢点;该页给出这份求解器性能失效的精确成本,以及概率支配条件下的完整保持证明。
参考资料
Richard M. Karp, “Reducibility Among Combinatorial Problems,” in Complexity of Computer Computations , Plenum Press, 1972, pp. 85–103.
Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach , Cambridge University Press, 2009, §§2.1–2.2.
Michael Sipser, Introduction to the Theory of Computation , 3rd ed., Cengage, 2013, §7.4.