【学习笔记】计算理论

视频课程:北大的刘田老师的理论计算机基础

书籍:1.《计算理论导引》,麻省理工,中文翻译本 2. 《computational complexity: a modern approach》,普林斯顿

本质:通过学习这一个课程,解决什么问题是能计算的,什么是不能计算的?有多快,要用多少存储?以及采用什么计算模式?

课程结构:针对上述课程关心的三个问题,分为三大块,

1)自动机:即 形式语言、自动机;采用什么计算模型?

2)可计算性:即 可计算理论及算法;解决哪些是可计算的、哪些是不可计算的?

3)复杂性:即 计算复杂性理论;要用多少时间、要用多少存储?

1 自动机与语言

这一部分解决:有哪些计算装置?能力如何?

包括 有穷自动机、下推自动机、图灵机

1.1 有穷自动机与正则语言

包括确定性有穷自动机(deterministic finite automaton,DFA)、非确定性有穷自动机(nondeterministic finite automaton,NFA)

1.1.1 确定性有穷自动机DFA

有穷自动机两个要素: 状态、转移

一般用 状态图或状态表来表示自动机

有穷指的的是有穷个状态,确定指的是接受输入后状态的转移是确定的

接受状态、拒绝状态、初始状态

马尔科夫链

有穷自动机的形式定义:一个5元组

【学习笔记】计算理论

计算的形式定义:

如果一个语言被一台有穷自动机识别,则称它是正则语言

正则运算:包括连接、并、星号(注意不包括补、交)

【学习笔记】计算理论

补运算证明思路:只要将接受状态改动下即可补运算

并运算证明思路:让两个自动机同时运行 只要两个自动机有一个接受 我就接受

交运算证明思路:1)交可以根据布尔运算转化为补和并2)构造自动机,让2个自动机同时运行

连接运算证明思路:还是运行2自动机,和交运算并运算不同,不是同时运行,是先后运行;把输入分割为2部分,先后输入到2自动机,难点是何处断开;当遇到第一个断开点,第一个自动机不停继续走,第二个自动机开始启动,那么每次遇到一个断开点,第一个自动机保留一个副本,继续往下走,第二个自动机启动新副本从这儿往下走;那么只要控制断开点是常数个,就可以设计有穷自动机了

星号运算证明思路:类似证明,不过是启动一个自动机,把输入串截成若干段,每段都是接受的,每段都是重启自动机,难点和连接运算一样,在何处截断?

1.1.2 非确定性有穷自动机NFA

下一个状态可以不唯一确定

包含ε移动,多种选择(含0种选择)

计算树

非确定性自动机可以让证明简单,也可以让自动机变得简单

非确定性自动机是概念上的突破 更简单

确定性自动机的状态数更多,计算简单:描述复杂,分析简单

非确定性自动机状态数简单,计算复杂:描述简单,分析复杂

确定性自动机是真实的

非确定性自动机只是方便分析,没有实物,无法制造,只是数学概念

非确定有穷自动机的形式定义:

【学习笔记】计算理论

【学习笔记】计算理论

等价性:每台DFA都有对应的NFA,两台机器识别相同语言

推论:一个语言是正则的,当且仅当有一台NFA识别它

用NFA对正则运算的封闭性证明更加简单,用ε移动连接一下就搞定了

1.1.3 正则表达式

正则表达式是描述模式的手段

正则表达式形式定义:

【学习笔记】计算理论

省略最外层括号

规定优先级,星 号 > 连接 > 并

【学习笔记】计算理论

正则表达式 等价于 正则语言 等价于 有穷自动机

利用 泵引理证明一个语言是非正则语言

1.2 下推自动机与上下文无关文法

1.2.1 上下文无关文法

文法 文法(生成的)语言

产生式 替换规则 产生式缩写

变元 非终结符 初始符

非变元 终结符

派生 语法分析树

上下文无关文法CFG定义

【学习笔记】计算理论

上下文无关文法生成的语言称为上下文无关语言CFG

设计CFG:合并、正则、匹配、递归

正则语言是实际上CFG的一种特例

ww是上下文有关的 非ww是上下文有关的

定理:CFG对并运算封闭

定理:正则语言都是上下文无关语言

最左派生 文法的歧义性 歧义文法 固有歧义语言

非确定性

乔姆斯基范式CNF

【学习笔记】计算理论

定理: 任意CFG都有等价的CNF

形式语言:零型文法(任意图灵机识别的文法TM) 一型文法(上下文有关文法 线性有界自动机LBA) 二型文法(上下文无关文法 下推自动机PDA) 三型文法(典型代表正则表达式 NFA DFA)

1.2.2 下推自动机PDA

比非确定性有穷自动机多了个设备–栈,栈可以做推入和弹出

下推自动机有非确定性的,这个非确定性直接扩展了下推自动机的能力,比如 固有歧义文法和有穷自动机不同,有穷自动机的确定性与否,实际上是等价的,不改变自动机的能力

所以 一般下推自动机指非确定性下推自动机,即PDA即NPDA

形式定义,6元组

【学习笔记】计算理论

PDA计算

【学习笔记】计算理论

另一个例子

【学习笔记】计算理论

Original: https://www.cnblogs.com/yongestcat/p/12936280.html
Author: 九命猫幺
Title: 【学习笔记】计算理论

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/565648/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球