计算复杂度理论基础结果与非确定性研究
1. 单字母语言相关内容
单字母字符串是字母表 {1}∗ 上的单词,单字母语言则是 {1}∗ 的子集。自然数 n 可以用 2 进制简洁表示为单词 n(w),而单字母字符串 1n(w) 是对 w 所代表信息 n(w) 的冗长表示。对于语言 L ⊆Σ∗,定义 Tally(L) = {1n(w) | w ∈L}。
有定理表明:NE ⊆E 当且仅当 NP 中的每个单字母语言都属于 P。其证明基于以下四个论断:
1. L ∈NE ⇒Tally(L) ∈NP;
2. Tally(L) ∈P ⇒L ∈E;
3. Tally(L) ∈NP ⇒L ∈NE;
4. L ∈E ⇒Tally(L) ∈P。
下面给出论断 1 的证明:设 L ∈NE,存在一个 2cn 时间有界的非确定性多带图灵机 M1 接受 L。从 M1 构造图灵机 M2,其操作如下:给定输入字符串 1m,M2 在存储带上写出唯一的单词 w 使得 n(w) = m,通过对每个输入的符号 1 在二进制表示上加 1 来实现。然后,M2 模拟 M1 对 w 的计算,当且仅当 M1 接受 w 时,M2 接受 1n(w)。M2 的运行时间为 O(mlogm + 2c|w|),对于常数 c2,|w| ≤c2 logm,所以 M2 运行时间为 O(mlogm + mc3)(c3 为常数)。由于 M1 是非确定性的,M2 也是,且 M2 在多项式时间内运行,所以 Tally(L) ∈NP。
还有推论:P = NP 意味着 E = NE。同时有作业要求证明:对于每个 L ∈NP,Tally(L) ∈P 当且仅当 NP ⊆E。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



