可判定性读书笔记 (2):「 图灵机识别语言是否为空 」不可判定
「 图灵机识别语言是否为空 」不可判定
所有证明都偷自 《计算理论导引》(Micheal Sipser)
\[E_{TM} = \{ \lang M \rang ~|~ L(M) = \empty \}
\]
$ E_{TM}$ 是不可判定的,证明思路还是反证,假设存在 \(R~decide~E_{TM}\),用 \(R\) 构造 \(S\) 使得 \(S~decide~A_{TM}\)
这里构造的思路关键在于消除不停机的情况,若对于 \(\lang M, w \rang\) 构造 \(S'\) 直接用 \(R\) 判定 \(M\):
\[S'(\lang M, w\rang ) = \begin{cases}
M~reject~w & if~R(\lang M\rang) = accept
\\
M~accept~w~or~loop & if~R(\lang M\rang) = reject
\end{cases}
\]
这里 \(R~reject~M\) 时是无法确定 \(M(w)\) 的状态的,因而这是一种相对失败的构造
如前面所说,我们为了消除不停机的情况,构造 \(M_w\):
\[M_w(x) = \begin{cases}
reject & if ~x\ne w
\\
M(w) & otherwise
\end{cases}
\]
注意对比观察 \(M_w\) 是如何过滤不停机情况的:
- 若 \(M~accept~w\),那么 \(M_w~accept~x\) 当且仅当 \(x=w\)
- 若 \(M~doesn't~accept~w\),那么 \(M_w~reject\) 所有输入
由此可以构造 \(S\):
\[S = \begin{cases}
accept & if~R(\lang M_w \rang ) = reject
\\
reject & if~R(\lang M_w \rang ) = accept
\end{cases}
\]
这样 \(S\) 就判定 \(A_{TM}\) 了,故而矛盾

浙公网安备 33010602011771号