可判定性读书笔记 (3):「 图灵机识别语言是否正则 」不可判定
「 图灵机识别语言是否正则 」不可判定
所有证明都偷自 《计算理论导引》(Micheal Sipser)
正则图灵机不可判定 \(REGULAR_{TM}~is~undecidable\)
证明思路:假设 \(R\) 判定 \(REGULAR_{TM}\) ,构造一个 \(S\):
之前判定 \(E_{TM}\) 的关键在于利用 \(R\) 消除任意 \(\lang M, w \rang\) 的所有非停机状态,而这里是一种看起来不太一样的问题规约思路
对任意输入 \(\lang M, w \rang\) ,构造 \(M_w\) :
注意这里 \(M\) 接收的是 \(w\)。那么 \(R\) 判定这样的 \(M_w\) 是什么结果呢?
- 若 \(M~accpet~w\),则 \(M_w~accept\) 所有输入 \(x\), 因此 \(L(M_w)=\Sigma^*\) 是正则语言
- 若 \(M~doesn't~accept~w\),那么 \(L(M_w)=0^n1^n\),不是正则语言
所以可以将 \(M~accept~w\) 转化为 \(R~decide~M_w\):
假设 \(C~decide~0^n1^n\) (\(C\) 显然是存在的)
bool M_w(x){
if(C(x)) return true;
return M(w);
}
bool S(<M,w>){
if(R(M_w)){
return true;
}
else{
return false;
}
}
这样就得到了一个 \(S~decide~\lang M, w \rang\), 因而矛盾
推论
用这里的方法,可以证明「 一个图灵机 \(M\) 是 CFG / 可判定性语言 / 有限语言 」都是不可判定的
- 证明 「 图灵机识别语言是 CFG 」 不可判定
只需要将上面证明中的 \(0^n1^n\) 换成一个非上下文无关语言,如 \(a^nb^nc^n(n\ge0)\) 或 \(ww(w=[0|1]*)\)
- 证明 「 图灵机识别语言可判定 」 不可判定
这里不能将上面证明中的 \(0^n1^n\) 换成一个不可判定语言,因为一个不可判定语言不可判定。
若 \(R\) 能判定 \(D_{TM}\),那么 \(R\) 也能判定 \(\bar{D_{TM}}\),反之亦然
因此可以将问题转化为「 证明 「 图灵机识别语言不可判定 」 不可判定 」,这样就能随便选一个可判定语言,套用上面的方法来证明了
- 证明 「 图灵机识别语言是有限语言 」 不可判定
跟 2 一样,判定有限语言等价于判定无限语言。
之前写过,我个人感觉,一个语言 \(L\) 是可判定的,要么 \(|L|\) 是有限的,要么 \(|\bar{L}|\) 是有限的。上面这些问题,都是具有某种「 性质 」的语言,而具有这种性质的语言和他们的补集都是无限的,所以我个人意见,他们应该确实是不可判定的。
书上说后面 \(problem\) 部分有个莱斯定理(Rice's theorem),它说:
确定一个有任意性质的图灵可识别的语言是不可判定的
(determining any property of the languages recognized by Turing machines is undecidable)
我不太确定他这个 recognized by Turing machines 修饰的是 language 还是 property,以后再看看吧