自动机理论、语言与计算机导论读书笔记(一)

备注:此博客仅作私人用于读书笔记记录,不作为商业用途,若有侵权,请通过此网站联系博主。谢谢!

第一章:自动机:方法与体验、

两类问题:
1.计算机能有效解决的 。
2.计算机原则上能解决、但实际上要花费太长时间,以致于除了非常小的问题实例以外,计算机是毫无用处的。
第二类问题定义为”难解的“或”NP-难的“
贯穿自动机理论的概念:字母表、串、语言。

1.1为什么研究自动机理论

1.1.1有穷自动机简介

重要应用类型:
1.数字电路的设计和性能检查软件。
2.典型编译器的”词法分析器“。
3.扫描大量文本来发现单词、短语或其他模式的出现的软件。
4.所有类型的只有又穷多个不同状态的系统的验证软件。

最简单的非平凡有穷自动机是两相开关。

1.1.2结构表示法

两种重要记号
1.文法在设计某种软件时是有用的模型,这种软件处理带递归结构的数据。例子:”语法分析器“。
2.正则表达式表示数据的结构,特别是文本串。

1.1.3自动机与复杂性

对计算局限性的研究,有两个重要问题:
1.计算机到底能做什么?这种研究称为”可判定性“,计算机能解决的问题称为”可判定的“。
2.计算机能有效地做什么?这种研究称为”难解性“。计算机用不超过输入规模的某个缓慢增长函数的时间所能解决的问题,称为”易解的“。通常,所有的多项式函数当作”缓慢增长的“,而把比任何多项式都增长的快的函数看作增长得太快了。

1.2形式化证明简介

演绎类型:有根据的步骤的序列
归纳类型:带参数命题的递归证明,证明用到带”较小“参数值的命题本身

1.2.1 演绎证明

演绎证明包含命题序列,其正确性导致从某个初始命题(称为前提或已知命题)得出”结论“命题。证明中每一步都必须根据某条公认的逻辑原理,利用已知的事实或演绎证明中前面的一些命题,或利用这两者的组合。前提可能为真也可能为假。
命题:“如果H,则C”,说C是从H演绎出来。
假言推理:如果知道H为真,并且知道“如果H,则C”为真,就可以得出结论C为真。

1.2.2求助于定义

一种在许多证明中推动证明的有用方法:如果不能肯定如何开始证明,就把前提中的所有术语都换成这些术语的定义。

1.2.3其他定理形式

1.2.3.1 说“如果-则”的方式

“如果H,则C”可能在其中出现的某些其他形式:
1.H蕴含C
2.H当且仅当C
3.C当H
4.只要H为真,就得出C/如果H成立,则得出C/只要H成立,C就成立

1.2.3.2当且仅当命题

“A当且仅当B”,其他形式:“A iff B”、“A等价于B”、“A恰好当B”。
相当于两个“如果-则”命题:“如果A,则B”和“如果B,则A”。
要证明“A当且仅当B”,可以证明这样两个命题:
1.当部分:“如果B,则A”以及 2.仅当部分:“如果A,则B”,这个命题常常叙述成等价形式“A仅当B”。

1.2.4表面上不是“如果-则”命题的定理

表面上没有前提的定理,实际隐含了众所周知的事实。

1.3其他证明形式

1.关于集合的证明。
2.反证法。
3.反例证法。

1.3.1证明集合等价性

命题E=F意味着所表示的集合是相同的:E所表示的集合中每个元素都属于F所表示的集合,F所表示的集合中每个元素也都属于E所表示的集合。

1.3.2逆否命题

每一个“如果-则”命题都有一种等价形式:逆否命题,“如果非C,则非H”一个命题与其逆否命题是同时为真或同时为假的。故可证明其中一个来证明另一个。
证明E=F的另一等价证明形式:如果x属于E,则X属于F;如果x不属于E,则x不属于F。

1.3.3反证法

“如果H,则C”反证法:“H与非C导致矛盾”。

1.3.4反例

判断定理是否为真,可以轮流地试图去证明这个定理,如果证明不出,就试图去证明这个命题是假的。
定理一般都是关于无穷多种的命题。
没有参数或只有又穷多种参数值的命题称为事实。
为了证明一个所谓的定理不是定理,只要证明在任何一种情形之下为假,这就足够了。

1.4归纳证明

1.4.1整数上的归纳法

1.基础:对一个具体的整数i,证明S(i)。
2.归纳步骤:假设n>=i,其中i是基础中的证书,证明“如果S(n),则S(n+1)”。
归纳法原理:如果证明了S(i),并且证明了对所有n>=i,S(n)蕴含S(n+1),就可以得出:对所有n>=i,S(n)成立。

1.4.2更一般形式的证书归纳法

1.利用多个基础情形。也就是说对于某个j>i,证明S(i),S(i+1),……S(j)。
2.在证明S(n+1)时,利用所有命题S(i),S(i+1),……S(j)的真实性,而不只是利用S(n)的。而且,如果证明了直到S(j)的基础情形,就假设n>=j,而不只是假设n>=i。
由这个基础和归纳步骤得到的结论是:对所有n>=i,S(n)为真。

1.4.3结构归纳法

基础情形:定义一个或多个基本结构。
归纳步骤:用前面定义的结构来定义更复杂的结构。

1.4.4互归纳法

1.5自动机理论的中心概念

字母表:符号集合。
串:字母表中符号的列。
语言:相同字母表中串的集合。

1.5.1字母表

字母表是符号的有穷非空集合。用Σ表示字母表。常见字母表包括:
1.Σ={0,1},二进制字母表。
2.Σ={a,b,……,z},所有小写字母的集合。
3.所有ASCII字符的集合,或者所有可打印的ASCII字符的集合。

1.5.2串

串(有时候称为单词)是从某个字母表中选择的符号的有穷序列。

1.5.2.1空串

空串是出现0次符号的串。记作ε,是可从任何字母表中选择的串。

1.5.2.2串的长度

根据串的长度(也就是说,串中符号的位数)来对串进行费雷。例如01101长度为5。串w的长度的标准记号是|w|,例如|011|=3,|ε|=0。

1.5.2.3字母表的幂

如果Σ是一个字母表,就可用指数记号来表示这个字母表某个长度的所有串的集合。定义Σ^k,是长度为k的串的集合,串的每个符号都属于Σ。
字母表上所有串的集合约定记作Σ*,Σ*=Σ0 ∪ Σ1 ∪…
字母表上非空串的集合记作Σ+

1.5.2.4串的连接

设x和y都是串。于是,xy表示x和y的连接,就是说用x的一个副本后面跟着y的一个副本所形成的串。
x=01101,且y=110,则xy=01101110,yx=11001101.

1.5.3语言

Σ是某个具体的字母表,全都从Σ中选出的串的一个集合称为语言。如果Σ是字母表,且L⊆Σ,则L是Σ上的语言。
唯一重要的约束就是所有字母表都是有穷的。因此语言可以有无穷多个串,但限制这些串为从一个固定的有穷字母表取出的。

1.5.4问题

一个问题就是判定一个给定的串是否属于某个具体语言的提问。

你可能感兴趣的:(自动机理论、语言与计算机导论读书笔记(一))