莱斯定理(Rice's Theorem) 证明

每次看完一遍证明就只能理解十几秒然后又不理解了

按照自己的理解方式尝试写下来一遍

Rice's Theorem: 对于非平凡的语言性质$P$, $P$是不可判定的。

注:$P$也可以理解为一个语言的集合,或者说字符串的集合的集合

证明:

反证,如果$P$是可判定的,那么存在图灵机$M_P$来判定,这个图灵机$M_P$接受一个图灵机作为输入,判定其判定的语言是否属于$P$

因为语言$P$是非平凡的,所以存在$M_{inP}$,使得$M_{inP}$能够判别的语言属于$P$,我们随便取一个这样的$M_{inP}$

对于任意的图灵机$M$,我们构造图灵机$M_2$,$M_2$接受参数$w$,首先会在$M$上运行$e$,而后在$M_{inP}$上运行$w$

可以看到,如果$M$接受$e$,那么$M_2$的作用等同于$M_{inP}$;如果$M$拒绝了$e$,那么$M_2$什么也不接受

我们把$M_2$作为参数输入$M_P$,$M_P$会判定$M_2$判定的语言是否属于$P$

如上面所说的,如果$M$接受了$e$当且仅当$M_P$会接受$M_2$      ...(1)

所以对于任意的$M$,我们只需要构造如上的$M_2$再交给$M_P$,就能知道$M$是否接受$e$了

这样我们就得到了能够判别任意图灵机是否接受$e$的图灵机,然而我们知道图灵机是否接受$e$这个问题是不可判别的

矛盾产生了,所以反证的假设不成立,也就不存在$M_P$能够判别图灵机是否属于$P$了

换言之,我们将$M_e$这个不可判定问题归纳到了这个问题上,得出这个问题也是不可判定的

 

上文中有一处...(1)标记,那里为了方便理解忽略了一些细节

对于一个什么也不接受的图灵机$M_{sb}$,如果它也属于$P$,那么标记处$M$不接受$e$时$M_2$等效于$M_{sb}$,它也会被$M_P$接受,就出错了

为了解决这个问题,我们只需要钦定$M_{sb}$不属于$P$就好了,这并不会丢失一般性,如果属于的话对补集再做一次就好了

(我没对补集做过,但考试写答案的时候说其余情况对称就够了,懒得想)

posted @ 2024-01-08 16:30  DeepinC  阅读(213)  评论(2编辑  收藏  举报