(MIT6.045)自动机、可计算性和复杂性-正则表达式

文章探讨了正则语言的计算性质,包括DFA、NFA和正则表达式的相互关系。正则语言可以用确定有限自动机(DFA)描述,而正则表达式提供了一种递归定义语言的方式。Myhill-Nerode定理说明了如何根据等价关系判断语言是否可由DFA描述。此外,文章还介绍了流算法,这种算法允许识别非正则语言,其存储空间可随输入字符串增长。
摘要由CSDN通过智能技术生成

语言(language)的计算性质:交、并、补、反转、拼接、星号(*)
在这里插入图片描述

星号是一元运算符,表示一个语言和自己的有穷次笛卡尔积。

回顾:正则语言(Regular Language)指可以用DFA描述的语言。

正则表达式

一个递归的定义。
在这里插入图片描述
其中,+、·和*的意义分别如下:
在这里插入图片描述

一个定理:
语言L可以被表示成某种正则表达式,iff语言L是正则的(可以用DFA描述)。

Generalized-NFA

将一个DFA写成正则表达式。从DFA读取单个字符(太麻烦)变为读取一个子串。

在这里插入图片描述
一个例子
在这里插入图片描述

再举一个例子。通过下面的步骤,我们可以将一个NFA转化成一个只有两个状态(起始和终止状态)的generalized-NFA。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

许多语言是不正则的。

比如:
在这里插入图片描述
对于上述例子中的C,我们需要时刻记住DFA和NFA的特性:有限状态(有限的记忆)。对于C,它的潜在状态可能是无穷多的,所以不能被DFA表示。
对于上述例子中的D,其结果为:
在这里插入图片描述

DFA最小化定理

(什么意义下的最小?)

对于每个正则语言A,都有一个唯一的(在状态re-labeling的情况下)最小的DFA M ∗ M^* M,使得 A = L ( M ∗ ) A=L(M^*) A=L(M)

一般地,最小NFA不唯一。

首先,介绍概念:
字符串 w w w区分了状态 p p p q q q,如果在状态 p p p q q q下,字符串被接受和被拒绝。

如果两个状态没法区分,那么他们就是冗余的。

于是我们可以构造等价类,每一个等价类里面的元素都是互相不可区分的。

根据上述的可区分概念,我们给出最小DFA的定义:
已知DFA M,其最小DFA M*是:

  1. L(M) = L(M*)
  2. 所有状态从起始状态开始都可达
  3. M*不可再约减(约减,指存在不可区分的状态)。

定理:满足上述123的状态机M*是唯一的、M的最小DFA。

由于DFA/NFA和正则表达式的等价性,我们自然会想,怎么证明两个正则表达式是等价的?

存在这样的算法,使得我们可以证明两个正则表达式等价。

Myhill-Nerode定理
对于语言L,要么有一个DFA可以描述,要么总是可以找到能骗过DFA的字符串。

和DFA的状态定义类似,我们也可以定义“状态”之间的等价关系。

L ⊂ Σ ∗ L \subset \Sigma^* LΣ x , y ∈ Σ ∗ x, y \in \Sigma^* x,yΣ。我们定义 x ≡ L y x \equiv_L y xLy,当且仅当 ∀ z ∈ Σ ∗ , x z ∈ L    ⟺    y z ∈ L \forall z \in \Sigma^*, xz \in L \iff yz \in L zΣ,xzLyzL。(显然这是个等价关系)。
注意,我们可以将这个定义和前述DFA的定义进行类比, x , y x, y x,y就像是决定了不同的状态,然后从不同的状态开始迭代。

基于这里的等价关系 ≡ L \equiv_L L定义,我们可以将 Σ ∗ \Sigma^* Σ分成若干个等价类。

于是,Myhill-Nerode定理表明:
如果等价类数量有限,则可以构建DFA。
否则不可构建DFA。

流算法(Streaming Algorithms)

Streaming Algorithms有三个组成部分:

  1. 初始化(变量和赋值)
  2. 当下一个符号是 σ \sigma σ的时候咋办(使用 σ \sigma σ和变量的伪代码)
  3. 当流跑完了(伪代码的输出,比如接受/拒绝)

Streaming Algorithms和DFA有几点大的不同。
4. 这玩意可能输出不止一个比特。
5. 这玩意的存储空间(也可以说是状态)可以随着读取字符串边长逐渐增长——这意味着它可以识别非正则语言。
6. 可以随机化、多通路

一个例子:
在这里插入图片描述
注意:和冯诺伊曼计算机不同,这里的存储空间使用不包括算法本身的存储。

DFA和流算法

定理: L ′ L' L可以被DFA M M M(有 2 p 2^p 2p个状态)识别,那么 L ′ L' L就可以被流算法A用p比特空间计算。

在这里插入图片描述

当alphabet的元素不止有0和1怎么办?

在这里插入图片描述

虽然不是入门教材,但个人感觉这才是真正的“计算机文化基础”,看看章节目录就会爱不释手。<br><br>目录<br>1、1字符串、字母表和语言<br>第一章 预备知识<br>1、2图和树<br>1、3归纳证明<br>1、4集合<br>1、5关系<br>1、6本书提要<br>2、1有穷状态系统<br>第二章 有穷自动机和正规表达式<br>2、2基本定义<br>2、3非确定有穷自动机<br>2、4具有∈动作的有穷自动机<br>2、5正规表达式<br>2、6双向有穷自动机<br>2、7具有输出的有穷自动机<br>2、8有穷自动机的应用<br>3、1正规集合的泵作用引理<br>第三章 正规集合的性质<br>3、2正规集合的封闭性质<br>3、3正规集合的判定算法<br>3、4Myhill-Nerode定理和有穷自动机的最小化<br>4、1动机和引言<br>第四章 上下文无关文法<br>4、2上下文无关文法<br>4、3派生树<br>4、4上下文无关文法的简化<br>4、5Chomsky范式<br>4、6Greibach范式<br>4、7固有多义上下文无关语言的存在性<br>5、1非形式描述<br>第五章 下推自动机<br>5、2定义<br>5、3下推自动机和上下文无关语言<br>6、1关于CFL的泵作用引理<br>第六章 上下文无关语言的性质<br>6、2CFL的封闭性质<br>6、3有关CFL的判定算法<br>7、1引言<br>第七章 图灵机<br>7、2图灵机模型<br>7、3可计算语言和可计算函数<br>7、4图灵机构造技术<br>7、5图灵机的修改<br>7、6Church假设<br>7、7作为枚举器的图灵机<br>7、8等价于基本模型的受限图灵机<br>8、1问题<br>第八章 不可判定性<br>8、2递归语言和递归可枚举语言的性质<br>8、3通用图灵机和一个不可判定问题<br>8、4Rice定理和某些其它的不可判定问题<br>8、5Post对应问题的不可判定性<br>8、6图灵机的有效计算和无效计算:证明CFL问题不可判定性的一个工具<br>8、7Greibach定理<br>8、8递归函数论初步<br>8、9Oracle计算<br>9、1正规文法<br>第九章 Chomsky谱系<br>9、2无限制文法<br>9、3上下文有关语言<br>9、4语言类之间的关系<br>第十章 确定的上下文无关语言<br>10、1DPDA的标准形式<br>10、2DCFL在补运算下的封闭性<br>10、3预测机<br>10、4DCFL的其它封闭性质<br>10、5DCFL的判定性质<br>10、6LR(0)文法<br>10、7LR(0)文法与DPDA<br>10、8LR(k)文法<br>11、1三元族和完全三元族<br>第十一章 语言族的封闭性质<br>11、2广义时序机映射<br>11、3三元族的其它封闭性质<br>11、4抽象语言族<br>11、5AFL运算的独立性<br>11、6小结<br>12、1定义<br>第十二章 计算复杂性理论<br>12、2线性加速、带压缩和带数目的减少<br>12、3谱系定理<br>12、4复杂性量度间的关系<br>12、5转换引理和非确定谱系<br>12、6一般复杂性量度的性质:间隙定理、加速定理和并定理<br>12、7公理化复杂性理论<br>13、1多项式时间和空间<br>第十三章 难解型问题<br>13、2某些NP完全问题<br>13、3co-NP类<br>13、4PSPACE完全问题<br>13、5对于P和NSPACE(logn)的完全问题<br>13、6某些可证明的难解型问题<br>13、7对于带Oracle的图灵机的P=NP问题:辨别是否P=NP时我们能力的限度<br>14、1辅助下推自动机<br>第十四章 其它重要语言类集锦<br>14、2栈自动机<br>14、3加标语言<br>14、4发展系统<br>14、5小结<br>参考文献<br>汉英名词索引<br>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PenguinLeee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值