Skip to content

复杂度类 coNP

Complexity class co-NP · coNP

补语言属于 NP 的语言类。

条目类型
定义

形式陈述

固定字母表 Σ。对语言 LΣ,相对于同一全集的补语言

L=ΣL.

定义

coNP={LΣ:LNP}.

NP的验证器定义代入可得:LcoNP 当且仅当存在多项式 p 和多项式时间验证器 V,使

xLc: |c|p(|x|)  V(x,c)=1.

等价地,xL 时所有长度受限的候选都被 V 拒绝。coNP 因而给否实例短证书,而不是给是实例换一种名字。

直觉

前缀 co 表示对语言取补。NP 的存在证书站在是实例一侧;coNP 把同一套存在证书放到否实例一侧。若直接交换一台非确定机器的接受和拒绝状态,得到的是“所有分支原先都拒绝”一类全称语义,并不会自动变成标准的存在接受分支机器。

一个语言同时属于 NP 与 coNP,说明正反答案都各有短且可核验的证据。验证容易仍不等于寻找容易,因此这个交集并不自动等于 P;目前既不知道 NP 是否等于 coNP,也没有证明它们不同。

例子与边界

TAUT 的反例证书

TAUT 收集对每个赋值都为真的布尔公式。公式不是重言式时,一份使它为假的赋值就是多项式长度证书。例如 pq(p,q)=(0,0) 时为假,验证器代入两位即可确认它不属于 TAUT;而

(p¬p)(q¬q)

对四种赋值都为真,没有反例证书。于是 TAUTNP,从而 TAUTcoNP。同理,UNSAT 的补语言是 SAT,所以 UNSAT 属于 coNP;这并不声称不可满足公式本身已有已知的一般多项式短证明。

已知包含与开放分离

P 对补封闭,故

PNPcoNP.

LNP 不能推出 LcoNP。素数判定曾因正反两侧都有精巧证书而成为交集中的典型例子,后来才由 AKS 算法证明属于 P;这个历史不能反向证明整个交集等于 P。

推论与应用

coNP 对多项式时间 many-one 归约的逆像封闭。若 AmpBBcoNP,同一个映射还满足

xAf(x)B.

由于 BNP,计算 f(x) 后验证其证书便知 ANP,所以 AcoNP

这一步解释了重要的坍缩结论:若某个 NP-complete 语言 C 也属于 coNP,则每个 ANP 都归约到 C,从而都属于 coNP,即 NPcoNP;再对所有语言取补得到反向包含,于是 NP=coNP多项式层级会把这一等式的影响继续传播到更高量词层。

参考资料
  • Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach, Cambridge University Press, 2009, §2.1.
  • Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013, §7.3.
关系图谱13 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

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