Skip to content

多项式时间归约

Polynomial-time reduction · Karp reduction

用一个多项式时间可计算的变换把问题 A 的实例转换为问题 B 的实例。

条目类型
定义

形式陈述

AΣBΓ 是两个判定语言。若存在全函数 f:ΣΓ 和多项式 p,使某台确定性机器在 p(|x|) 步内输出 f(x),并且

xΣ:xAf(x)B,

就称 A 多项式时间 many-one 归约到 B,记为

AmpB.

这是一次性映射:归约算法先完整产生一个 B 实例,不能询问 B 的答案再决定输出。因为每写出一个输出符号至少需要一步,多项式时间还自动保证 |f(x)|p(|x|),排除了指数长度的翻译。

归约具有传递性。若 AmpBf 见证,BmpCg 见证,则 h=gf 保持成员资格。设计算 f 的时间和输出长度均由 p(n) 控制,计算 g 在长度 m 上耗时 q(m),那么

Th(n)p(n)+q(p(n)),

仍是多项式。这一复合计算是归约链能够传递困难性的理由。

直觉

可以把 f 看成一个不知答案的编译器。它把源实例改写成目标实例,目标的一个是/否位可以原样解释回源问题。若目标有快速判定器,就把“编译器 + 目标判定器”串联起来解决源问题;若源已经代表一族困难问题,箭头所指的目标便至少承载同样的困难性。

双向等价承担了归约的正确性。只把是实例送到是实例,会允许否实例随意落入目标语言,目标答案便不能可靠解释;只画出两个问题在外观上的相似,也没有构成算法变换。

例子与边界

独立集到顶点覆盖

定义

IS={G,k:G 有大小至少 k 的独立集},VC={G,:G 有大小至多  的顶点覆盖}.

对含 n 个顶点的良构输入,令

f(G,k)=G,nk.

集合 SV 独立,当且仅当 VS 覆盖每条边,因此

G,kISf(G,k)VC.

例如在三角形 K3 中,k=1 映成覆盖阈值 2,两边都为是实例;k=2 映成阈值 1,两边都为否实例。变换只复制图并计算 nk,规模与时间均为输入长度的多项式。若约定非法编码不属于源语言,归约就应把非法编码或越界阈值统一映到一个固定的 VC 否实例,才能成为定义要求的全函数。

独立集到顶点覆盖的多项式时间归约

方向与接口边界

要把已知困难语言 A 的困难性传给 B,方向必须是 AmpB。反向 BmpA 只说明可用 A 的算法解决 B。证明还必须覆盖“源是则目标是”和“目标是则源是”,且构造 f 时不能调用目标判定器。

本页只定义判定语言间的一次 Karp 归约。Turing 归约允许多次、可自适应地询问目标 oracle,通常更强。

L-reduction控制优化值与误差,gap reduction保存承诺间隙,FPT 归约还约束新参数。普通 Karp 归约不会自动传递这些额外结构,也不会自动保留通信量、查询次数或学习成功概率。

推论与应用

AmpBBP,先算 f(x) 再运行 B 的判定器,得到 AP

BNP,目标证书长度是 |f(x)| 的多项式,而 |f(x)| 又是 |x| 的多项式,所以同样有 ANP。这种“容易性沿箭头反向传播”的性质,是NP 困难性NP 完全性的逻辑基础。

相较于可计算性中的映射归约,本页额外限制变换时间与输出长度。选用哪种归约会改变可传递的结论,因此困难性陈述必须连同归约类型书写。

参考资料
  • 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.
关系图谱20 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系