“第一项给出上界:是实例有多项式长度、可在多项式时间验证的证书。第二项就是NP 困难性,给出下界:整个 NP 都可归约到 $B$。两项彼此独立;只有同时成立时,目标才是“NP 内的 NP ha…”
形式陈述 ​
在本页固定多项式时间 many-one 归约。语言
也就是说,NP 中每个语言都可通过同一类型的多项式时间归约转换到
定义只给出困难性下界,不要求
直觉
NP-hard 表示目标足以承载整个 NP:若
证明困难性时,箭头要从已知困难源指向新目标。目标看起来组合爆炸、某个程序运行很慢、或启发式经常失败,都不是归约证明;这些观察没有把任意 NP 实例统一编码进目标。
例子与边界
从一个已知困难语言传递困难性 ​
若
归约的传递性于是证明
NP-hard 目标可以不可判定 ​
在 Cook–Levin 定理给出 SAT 的 NP-hardness 后,可把公式
因此 HALT 是 NP-hard,却不可判定,当然不属于 NP。这个例子也表明归约算法只写程序描述,并没有先运行指数枚举来获知答案。
优化问题需要说明接口 ​
旅行商的阈值语言询问“是否存在总权重至多
推论与应用
若 NP-hard 语言
若在困难性之外再证明
参考资料
- 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, §§5.1 and 7.4.