引言:
可以从自动机、可计算性和复杂性三个方面来讨论计算机的基本功能和限制。
自动机理论:研究计算模型的定义和性质
可计算理论:根据问题是否可以解决进行分类
复杂性理论:根据问题的难易程度进行分类
可判定性问题(决策问题、Entscheidungsproblem):确定数学陈述是true还是false。
邱奇-图灵定理:在算法上不可能确定算术语句是对还是错。因此不可能对Entscheidungs问题进行一般性解决NP问题。
乔姆斯基范式:
除可选规则
S
→
ϵ
S\rightarrow \epsilon
S→ϵ之外,所有规则都是扩张的,至少比推导之前的字符串多出一个元素。长度为
n
n
n的字符串的导出是精确的
2
n
−
1
2n-1
2n−1步长.
乔姆斯基层次结构
有限状态自动机
如果某种有限的自动机识别出一种语言,则该语言称为常规语言(Regular language)。
下推自动机
可以看作:把有限状态自动机扩展使之可以存取一个栈。
除了有限状态组成部分外,还包括一个长度不受限制的栈;下推自动机的状态迁移之前不但要参考有限状态部分,也要参照栈当前的状态;状态迁移之后不但包括有限状态的变迁,还包括一个栈的出栈或入栈过程的变化。
当且仅当某些下推自动机识别出该语言时,该语言才是上下文无关(context free)的。
线性有界自动机
线性界限自动机与图灵机的唯一不同是对读/写头位置的限制,图灵机无右边界?
图灵机
图灵机进行计算时,当前状态,当前磁带内容和当前磁头位置都会发生变化。 这三个组件的设置称为图灵机的配置。
如果某种图灵机能够识别出该语言,则称该语言是图灵可识别的。
图灵机一共有三种可能的状态:接受、拒绝、循环
如果对于所有输入都停止,我们将该图灵机称为判决器。 也就是说,它总是做出接受还是拒绝的决定(不存在循环状态),可以识别某个语言也叫可判决某个语言也叫图灵可判决。
如果某种语言是某个图灵机可以判决的,我们称该语言是图灵可判决或者就叫可判决。每种可判决的语言都是图灵可识别的,但是有一些示例语言可以被图灵识别,但不可判决。
多带图灵机
每个多带图灵机都有一个等效的单带图灵机。
当且仅当某个多带图灵机识别出该语言时,该语言才是图灵可识别的。(图灵机可以识别就行,不管什么单带、多带、非确定性图灵机)
非确定性图灵机
每一个非确定性图灵机都有一个等效的确定性图灵机。
仅当某些非确定的图灵机识别出某种语言时,该语言才可以被图灵识别。(随机产生一个例子,能够判决这个命题的真伪)
如果对于所有输入的所有分支都停止,我们将不确定的图灵机称为判决器。
枚举器
当且仅当某个枚举器(可以看成某个非确定性图灵机)能够枚举某个语言时,该语言才是图灵可识别的
描述图灵机术语的三个层次
- The formal description(正式描述):详细说明图灵机的状态,转换功能等。 它是最低,最详细的描述级别。相当于理论层次。
- The implementation description(实现描述):描述Turing机移动其磁头的方式以及将数据存储在其磁带上的方式。相当于电路层次。
- The high-level description(高层描述):描述算法,而忽略了实现细节。相当于高级语言层次。
总结
- 只要是图灵机可以识别或枚举器可枚举的语言,那该语言就是图灵可识别的,不管什么单带、多带、确定、非确定性图灵机
- 只要是对于所有输入的所有分支都停止,不管是什么图灵机,都可以叫做判决器