计算理论中的莱斯定理(Rice's Theorem)——证明与应用
来源:互联网 发布:软件升级服务 增值税 编辑:程序博客网 时间:2024/06/05 02:03
我们给出一个在探讨不可判定性时非常有用的结论——莱斯定理(Rice's Theorem)。首先,我们来看前面讨论过的几个不可判定的例子:
这些都是由图灵机识别之语言的性质。而莱斯定理告诉我们,任何由图灵机识别之语言的非平凡性质(nontrivial property)都是不可判定的。
最后通过几个例子来探讨一下莱斯定理的应用。来看看下面这个语言能否使用莱斯定理来确定其可判定性。
{<M> | M是一个TM,且L(M)可由一些拥有偶数个状态的图灵机识别}
首先来确定这是否是一个语言属性,显然是的。那它是否是非平凡的?可惜它不是。因为每一个图灵可识别语言都可以被某个拥有偶数个状态的图灵机所识别。这是因为,如果识别该语言的图灵机只有奇数个状态,你完全可以给它追加一个永远无法到达的状态。这并不改变图灵机的功能,却使其得以满足拥有偶数个状态这样的要求。所以这个例子不能应用莱斯定理来进行分析。那这个语言是否可判定的呢?当然是的,因为这个语言给出的其实是所有图灵机的集合。判定某台机器是否是图灵机,这显然是可以做到的。
如果我们把上述语言中的“拥有偶数个状态的图灵机”改为“至多拥有37个状态和37个带字符的图灵机”,那这个语言能否使用莱斯定理来确定其可判定性。首先,这仍然是一个语言属性,那它又是否是非平凡的呢。答案是肯定的,因为显然有的语言满足该条件而有的语言不满足该条件。我们当然可以创造出一个仅用37个状态之图灵机无法识别的语言。进而可以根据莱斯定理断定这个语言是不可判定的。我们还要注意,这个语言同下面这个语言是不同的,它给出的并非是语言性质,而且它是可判定的。
{<M> | M是一个TM,且它至多拥有37个状态和37个带字符}
如果把原问题中的描述再改成“可由一些至少拥有37个状态和37个带字符的图灵机所识别”那情况又会怎样?显然,这样的性质是非平凡的。所有的图灵机可识别语言都可以被这样定义的图灵机所识别。添加永远不可达的状态就可以让本不满足需求的图灵机拥有超过37个状态,所以该问题不能应用莱斯定理来判定。可见,确定是否属于语言性质,以及性质是否为非平凡的,是应用莱斯定理时的关键。
- 计算理论中的莱斯定理(Rice's Theorem)——证明与应用
- 离散数学及其应用学习笔记——主定理(Master Theorem)的证明
- 帕斯瓦尔定理(Parseval's theorem)
- 【UVA11178】Morley's Theorem——Morley 定理
- [竞赛图判定定理]兰道定理(Landau's Theorem)介绍及其一种证明
- UVA 11178 Morley’s Theorem(莫雷定理 计算几何)
- Uva11178计算几何 Morley's Theorem(Morley定理)
- 优化理论系列1——拉格朗日对偶及强弱定理证明(一)
- Mercer's Theorem的证明
- 【理论】CAP理论 - Brewer's CAP Theorem
- UVA 11178 Morley's Theorem(Morley定理)
- 贝叶斯定理Bayes's Theorem(待写)
- HDU 4884 —— TIANKENG’s rice shop(模拟)
- 斯托克斯定理(Stokes' theorem)
- UVA 11178-Morley's Theorem(计算几何_莫雷定理)
- Bayes理论相关应用之——Bayes定理
- Fermat's little theorem(费马小定理)
- 策梅洛定理 (博弈论): Zermelo's theorem
- project euler 32
- 利用JQuery jqprint实现打印功能
- cf Guess a number!
- Handler源码解析
- Python实例浅谈之三Python与C/C++相互调用
- 计算理论中的莱斯定理(Rice's Theorem)——证明与应用
- 杭电 1003 max sum
- Java中重载和重写的区别
- project euler 34
- Android - OOM
- python输出乱码
- 基础科学(浅谈黑洞I)
- java获取系统时间比实际时间少了8个小时的解决方法
- Java中的拦截器、过滤器、监听器