可判定性读书笔记 (3)
2021/7/28 23:05:57
本文主要是介绍可判定性读书笔记 (3),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
「 图灵机识别语言是否正则 」不可判定
所有证明都偷自 《计算理论导引》(Micheal Sipser)
正则图灵机不可判定 \(REGULAR_{TM}~is~undecidable\)
\[REGULAR_{TM} = \{ \lang M \rang ~|~ L(M) ~is~regular\} \]证明思路:假设 \(R\) 判定 \(REGULAR_{TM}\) ,构造一个 \(S\):
\[ S~decide~A_{TM} \iff R ~ decide ~REGULAR_{TM} \]之前判定 \(E_{TM}\) 的关键在于利用 \(R\) 消除任意 \(\lang M, w \rang\) 的所有非停机状态,而这里是一种看起来不太一样的问题规约思路
对任意输入 \(\lang M, w \rang\) ,构造 \(M_w\) :
\[M_w = \begin{cases} accept & if~x~has~the~form~0^n1^n \\ M(w) & otherwise \end{cases} \]注意这里 \(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\):
\[R(\lang M_w\rang) = \begin{cases} accept & if~M~accept~w \\ reject & if~M~doesn't~accept~w \end{cases} \]假设 \(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\), 因而矛盾
这篇关于可判定性读书笔记 (3)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-26大厂数据结构与算法教程:入门级详解
- 2024-12-26大厂算法与数据结构教程:新手入门指南
- 2024-12-26Python编程入门指南
- 2024-12-26数据结构高级教程:新手入门及初级提升指南
- 2024-12-26并查集入门教程:从零开始学会并查集
- 2024-12-26大厂数据结构与算法入门指南
- 2024-12-26大厂算法与数据结构入门教程
- 2024-12-26二叉树入门教程:轻松掌握基础概念与操作
- 2024-12-26初学者指南:轻松掌握链表
- 2024-12-26平衡树入门教程:轻松理解与应用