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:A→B,且 f 是一对一映射又是满映射,则称集合 A 和 B 有相同规模。

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

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

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

规约 ​

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

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

ATM ​

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

可识别 ​

使用如下算法可以识别 ATM:

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

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

不可判定 ​

ATM不可判定

HALTTM ​

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

ETM ​

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

补图灵可识别 ​

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

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

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

ATM― 不是图灵可识别的。

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

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