Skip to content

可计算性

可判定性

可判定性问题是指是否存在一个算法,能够判定一个给定的问题的实例是否属于问题的解集。如果存在这样的算法,那么这个问题就是可判定的。否则,这个问题就是不可判定的。 我们使用图灵机来描述可判定性问题。 如果一个语言可以被图灵机判定,那么这个语言是可判定的。否则,这个语言是不可判定的

与正则语言相关的可判定性问题

  1. ADFA={B,w | B 是一个 DFA,且 B 接受字符串 w} 判定 ADFA 即判断 w 是否是 B 的一个接受字符串。 是可判定的

  2. ANFA={B,w | B 是一个 NFA,且 B 接受字符串 w} 判定 ANFA 即判断 w 是否是 B 的一个接受字符串。 是可判定的

  3. AREX={R,w | R 是一个正则表达式,且 R 接受字符串 w} 判定 AREX 即判断 w 是否是 R 的一个接受字符串。 是可判定的

  4. EDFA={B | B 是一个 DFA,且 L(B)=} 判定 EDFA 即判断 L(B)=。 是可判定的

  5. EQDFA={B1,B2 | B1 和 B2 是 DFA,且 L(B1)=L(B2)} 判定 EQDFA 即判断 L(B1)=L(B2), 即 L(B1)L(B2)=。 是可判定的

对角化方法

如果存在函数 f:AB,且 f 是一对一映射又是满映射,则称集合 AB 有相同规模。

如果一个集合A 是有限的或者与 N 有相同的规模,则称 A 是可数的 如: 有理数集 Q 是可数的,因为可以通过一一对应的方式将有理数映射到 N。 实数集 R 是不可数的,因为实数集比有理数集大。

存在不能被任何图灵机识别的语言

  1. 所有图灵机构成的集合是可数的
    • 对任意的字母表 Σ ,其上所有串 Σ 的集合是可数的
  2. 所有语言构成的集合是不可数的
    • 对任意的字母表 Σ ,其上所有语言 P(Σ) 的集合是不可数的

规约

PmQ 表示 P 可规约到 Q。 若 P不可判定的,则 Q 也是不可判定的。 若 Q可判定的,则 P 也是可判定的PQ 的一个特例,QP 的一个一般化。

与图灵机相关的不可判定性问题

ATM

ATM={M,w | M 是一个图灵机,且 M 接受字符串 w} 判定 ATM 即判断 w 是否是 M 的一个接受字符串。 是不可判定的

可识别

使用如下算法可以识别 ATM

  1. U 是一个图灵机,对于任意输入 M,wU 模拟 M 运行 w
  2. M 接受 w,则 U 接受 M,w
  3. M 拒绝 w,则 U 拒绝 M,w

如果 Mw 上循环,则 U 也会在 M,w 上循环,这就是为什么 ATM 是不可判定的。

不可判定

ATM不可判定

HALTTM

HALTTM={M,w | M 是一个图灵机,且 M 在输入 w 上停机} 可识别,但是不可判定的ATM 可以规约到 HALTTM。 所以 HALTTM 是不可判定的。 即 ATMmHALTTM

ETM

ETM={M | M 是一个图灵机,且 L(M)=}不可判定的
ATM 可以规约到 ETM

补图灵可识别

对任意不可判定的语言 A,它和它的补集 A 至少有一个不是图灵可识别的。

如果一个语言是一个图灵可识别的语言的补集,那么这个语言是补图灵可识别的

-个语言是可判定的,当且仅当它既是图灵可识别的,也是补图灵可识别的。

ATM 不是图灵可识别的。

可知:图灵可识别的补运算不封闭。

数据结构与算法设计复习笔记