形式陈述
令 与 是两个判定语言公理库形式语言Formal language · Language over an alphabet固定字母表上有限字的任意集合,是识别器、文法与判定问题共同描述的对象。。若存在全函数 和多项式 ,使某台确定性机器在 步内输出 ,并且
就称 多项式时间 many-one 归约到 ,记为
这是一次性映射:归约算法先完整产生一个 实例,不能询问 的答案再决定输出。因为每写出一个输出符号至少需要一步,多项式时间公理库时间复杂度Time complexity · Running time在固定计算模型与输入编码后,算法运行步骤数随输入规模增长的量级。还自动保证 ,排除了指数长度的翻译。
归约具有传递性。若 由 见证, 由 见证,则 保持成员资格。设计算 的时间和输出长度均由 控制,计算 在长度 上耗时 ,那么
仍是多项式。这一复合计算是归约链能够传递困难性的理由。
直觉
可以把 看成一个不知答案的编译器。它把源实例改写成目标实例,目标的一个是/否位可以原样解释回源问题。若目标有快速判定器,就把“编译器 + 目标判定器”串联起来解决源问题;若源已经代表一族困难问题,箭头所指的目标便至少承载同样的困难性。
双向等价承担了归约的正确性。只把是实例送到是实例,会允许否实例随意落入目标语言,目标答案便不能可靠解释;只画出两个问题在外观上的相似,也没有构成算法变换。
例子与边界
独立集到顶点覆盖
定义
对含 个顶点的良构输入,令
集合 独立,当且仅当 覆盖每条边,因此
例如在三角形 中, 映成覆盖阈值 ,两边都为是实例; 映成阈值 ,两边都为否实例。变换只复制图并计算 ,规模与时间均为输入长度的多项式。若约定非法编码不属于源语言,归约就应把非法编码或越界阈值统一映到一个固定的 VC 否实例,才能成为定义要求的全函数。
独立集到顶点覆盖的多项式时间归约 方向与接口边界
要把已知困难语言 的困难性传给 ,方向必须是 。反向 只说明可用 的算法解决 。证明还必须覆盖“源是则目标是”和“目标是则源是”,且构造 时不能调用目标判定器。
本页只定义判定语言间的一次 Karp 归约。Turing 归约允许多次、可自适应地询问目标 oracle,通常更强。
L-reduction公理库L-reductionL-reduction · Linear reduction以两个常数同时控制目标最优值尺度和解误差回传,从而保持常数近似性的优化归约。控制优化值与误差,gap reduction公理库Gap 问题与 gap reductionGap problem · Gap reduction · Gap-preserving reduction以带承诺的最优值阈值间隙和保持两端阈值的归约,把局部检验可靠性转化为不可近似性。保存承诺间隙,FPT 归约公理库FPT 归约FPT reduction · Parameterized reduction在 f(k)|x|^{O(1)} 时间内保持答案,并把目标参数限制为原参数函数的参数化 many-one 归约。还约束新参数。普通 Karp 归约不会自动传递这些额外结构,也不会自动保留通信量、查询次数或学习成功概率。
推论与应用
若 且 ,先算 再运行 的判定器,得到 。
若 ,目标证书长度是 的多项式,而 又是 的多项式,所以同样有 。这种“容易性沿箭头反向传播”的性质,是NP 困难性公理库NP 困难性NP-hardnessNP 中每个语言都可多项式时间归约到目标问题。与NP 完全性公理库NP 完全性NP-completeness同时属于 NP 且为 NP-hard 的性质。的逻辑基础。
相较于可计算性中的映射归约公理库映射归约Mapping reduction · Many-one reduction用可计算函数把一个语言成员关系变换为另一个语言成员关系。,本页额外限制变换时间与输出长度。选用哪种归约会改变可传递的结论,因此困难性陈述必须连同归约类型书写。
参考资料
- 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.