形式语言自动机有限自动机_第1页
形式语言自动机有限自动机_第2页
形式语言自动机有限自动机_第3页
形式语言自动机有限自动机_第4页
形式语言自动机有限自动机_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

形式语言自动机有限自动机第一页,共五十三页,2022年,8月28日2CollegeofComputerScience&Technology,BUPT第一节有限自动机一、有限状态系统的概念状态:状态是可以将事物区分开的一种标识。具有离散状态的系统:如数字电路(0,1),十字路口的红绿灯。离散状态系统的状态数是有限的.具有连续状态的系统:比如水库的水位,室内温度等可以连续变化,即有无穷个状态.有限状态系统必然是离散状态系统(而且状态数有限),因为只有有限个状态.第二页,共五十三页,2022年,8月28日3CollegeofComputerScience&Technology,BUPT第一节有限自动机实例

一个人带着一头狼,一头羊,以及一棵青菜,处于河的左岸。有一条小船,每次只能携带人和其余的三者之一。人和他的伴随品都希望渡到河的右岸,而每摆渡一次,人仅能带其中之一。然而如果人留下狼和羊不论在左岸还是在右岸,狼肯定会吃掉羊。类似地,如果单独留下羊和菜,羊也肯定会吃掉菜。如何才能既渡过河而羊和菜又不被吃掉呢?第三页,共五十三页,2022年,8月28日4CollegeofComputerScience&Technology,BUPTMG-WC(处于左岸的子集-处于右岸的子集)将过河问题模型化:人(M)狼(W)羊(G)菜(C)第四页,共五十三页,2022年,8月28日5CollegeofComputerScience&Technology,BUPT二、有限自动机的概念有限自动机的概念具有离散输入输出系统的一种数学模型

(可以没有输出,比较特殊的也可以没有输入).有限的状态状态+输入状态转移每次转换的后继状态都唯一

DFA每次转换的后继状态不唯一

NFA第五页,共五十三页,2022年,8月28日6CollegeofComputerScience&Technology,BUPTFA的模型FA可以理解成一个控制器,它读一条输入带上的字符。101101有限控制器(1)

控制器包括有限状态;(2)

从左到右依次读取字符;(3)

状态+激励状态迁移

(根据当前所处状态和输入字符进行状态转移)第六页,共五十三页,2022年,8月28日7CollegeofComputerScience&Technology,BUPT有限状态集

有限输入符号集

转移函数

一个开始状态

一个终态集合有限自动机的五要素q0q1q2q3第七页,共五十三页,2022年,8月28日8CollegeofComputerScience&Technology,BUPT三、DFA的形式定义定义:

DFA是一个五元组M=(Q,T,δ,q0,F)Q:有限的状态集合T:有限的输入字母表δ:转换函数(状态转移集合):Q×TQq0:初始状态,q0QF:终止状态集,FQ表示方法:

第八页,共五十三页,2022年,8月28日9CollegeofComputerScience&Technology,BUPT转移图表示的DFA

Q={q0,q1,q2,q3}

T={0,1

}

(q0,0)=q2,(q0,1)=q1(q1,0)=q3,(q1,1)=q0(q2,0)=q0,(q2,1)=q3(q3,0)=q1,(q3,1)=q2

q0

F={q0,q3}q0q1q2q3第九页,共五十三页,2022年,8月28日10CollegeofComputerScience&Technology,BUPT转移表表示的DFAq0q1q2q301q2q1q3q0q0q3q1q2

Q={q0,q1,q2,q3}

T={0,1

}

(q0,0)=q2,(q0,1)=q1(q1,0)=q3,(q1,1)=q0(q2,0)=q0,(q2,1)=q3(q3,0)=q1,(q3,1)=q2

q0

F={q0,q3}第十页,共五十三页,2022年,8月28日11CollegeofComputerScience&Technology,BUPT四、扩展转移函数适合于输入字符串δ’函数:接收一个字符串的状态转移函数。

:QT*Q

对任何qQ,定义:1.(q,)=q2.若ω是一个字符串,a是一个字符 定义:δ’(q,ωa)=δ(δ’(q,ω),a) 对于DFA:δ’(q,a)=δ(δ‘(q,),a)=δ(q,a),即对于单个字符时δ和δ'是相等的。为了方便,以后在不引起混淆时用δ代替δ'第十一页,共五十三页,2022年,8月28日12CollegeofComputerScience&Technology,BUPT扩展转移函数适合于输入字符串q0q1q2q301q2q1q3q0q0q3q1q2举例

(q0,)

=q0(q0,0)

=(q0,0)

=q2(q0,00)

=(q2,0)

=q0(q0,001)

=(q0,1)

=q1(q0,0010)

=(q1,0)

=q3q0q1q2q3第十二页,共五十三页,2022年,8月28日13CollegeofComputerScience&Technology,BUPTDFA接受的语言被DFA接收的字符串:输入结束后使DFA的状态到达终止状态。否则该字符串不能被DFA接收.DFA接收的语言:被DFA接收的字符串的集合. L(M)=ω

(q0,ω)F

例:T={0,1}接收含有奇数个0的任意串第十三页,共五十三页,2022年,8月28日14CollegeofComputerScience&Technology,BUPT五、格局为描述有限自动机的工作过程,对于它在某一时刻的工作状态,可用两个信息表明:当前状态q,待输入字符串ω。两者构成一个瞬时描述,用(q,ω)表示,称为格局。初始格局:(q0,ω)终止格局:(q,ε),qF第十四页,共五十三页,2022年,8月28日15CollegeofComputerScience&Technology,BUPT如图,接受001010的格局(q0,001010)┝(q2,01010)┝(q0,1010)┝(q1,010)┝(q3,10)┝(q2,0)┝(q0,ε)格局数量是无限的。有限状态自动机是无记忆的。例如接受0010101111和接受01011111时,都可以进入格局(q0,1111)。格局示例q0q1q2q3第十五页,共五十三页,2022年,8月28日16CollegeofComputerScience&Technology,BUPT设计有限自动机自动机的设计是一个创造过程,没有简单的算法或过程。技巧:假设自己是机器,思考如何去实现机器的任务。为判断到目前为止所看到的字符串是否满足某个语言,须估算出读一个字符串时需要记住哪些关键的东西。(找出状态)

例1:构造自动机识别所有由奇数个a和奇数个b组成的字符串。关键:不需要记住所看到的整个字符串,只需记住至此所看到的a、b个数是偶数还是奇数。

q偶a偶bq奇a偶bq偶a奇bq奇a奇bStartbaabaabb第十六页,共五十三页,2022年,8月28日17CollegeofComputerScience&Technology,BUPT设计有限自动机例2:构造有限自动机M,识别{0,1}上的语言L={x000y|x,y∈{0.1}*}分析:该语言特点是每个串都包含连续3个0的子串,自动机的任务是识别/检查是否存在子串000。 由于字符是逐一读入,当读入一个0时,就需记住(状态q1), 若接着读入的还是0,则需记住已读入连续的2个0了(状态q2),若接着读入的还是0,则需记住已读入连续的2个0了(状态q3),第十七页,共五十三页,2022年,8月28日18CollegeofComputerScience&Technology,BUPT设计有限自动机例3:构造有限自动机M,识别{0,1,2}上的语言,每个字符串代表的数字能整除3。分析:如果一个十进制数的所有位的数字之和能整除3,则该十进制数就能整除3。 一个十进制数除以3,余数只能为0、1、2。---设计为状态。状态q0表示已读入的数字和除3余0,状态q1表示已读入的数字和除3余1,状态q2表示已读入的数字和除3余2,第十八页,共五十三页,2022年,8月28日19CollegeofComputerScience&Technology,BUPT第二节 不确定的有限自动机(NFA) 修改DFA的模型,使之在某个状态,对应一个输入,可以有多个转移,到达不同的状态,则称为不确定的有限自动机。

例:(1)(2)第十九页,共五十三页,2022年,8月28日20CollegeofComputerScience&Technology,BUPT一、不确定有限自动机的形式定义NFA是一个五元组,M=(Q,T,δ,q0,F).

其中δ是Q×T->2Q的函数,其余与DFA相同.如果接收一个字符串后NFA进入一个状态集,而此集合中包含一个以上F中的状态,

则称NFA接收该字符串.第二十页,共五十三页,2022年,8月28日21CollegeofComputerScience&Technology,BUPT(1)(2)pqr0{q}{q}{q,r}1pqr0{p}{r}{r}1{p,q}转移图和转移表表示的NFA注意:转移表中的每一项都是一个集合。含空集Φ第二十一页,共五十三页,2022年,8月28日22CollegeofComputerScience&Technology,BUPT二、NFA的状态转移函数与DFA唯一不同之处:QT

2Q同样,δ可扩展为δ’

(

:QT*2Q)1.δ'(q,ε)

=

{q}

含义:

不允许无输入的状态变化.2.δ'(q,ωa)={p|存在r∈δ'(q,ω)∧p∈δ(r,a)}含义:δ‘(q,ωa)对应的状态集合是δ’(q,ω)对应的每个状态下再接收字符a以后可能到达的状态集合的并集.

即若(q,ω)={r

1,r

2,,r

k},则

(q,ωa)=(r

i,a)其中ω

T*,aT,r

i

Q第二十二页,共五十三页,2022年,8月28日23CollegeofComputerScience&Technology,BUPT举例

(p

,)

={p}

(p

,0)

={q}

(p

,01)

={q,r}

(p

,010)

={q}

(p

,0100)

={q}

(p

,01001)={q,r}

pqr0{q}{q}{q,r}1扩展转移函数适合于输入字符串第二十三页,共五十三页,2022年,8月28日24CollegeofComputerScience&Technology,BUPTNFA

接受的语言

设一个NFAA=(Q,

T,,q0,F)

定义A的语言:

L(A)=ω

(q0,ω)

F

第二十四页,共五十三页,2022年,8月28日25CollegeofComputerScience&Technology,BUPT第三节

NFA与DFA的等价性为什么要讨论等价性?问题的提出NFA识别语言的复杂性,参见教材P59的例子。需回溯和智能才能识别句子。DFA具有结构简单清晰的特点。是否存在NFA--〉DFA的转换方法?如果找到这样的转换方法,是否正确和普适?一般研究方法:找到一种方法(构造方法)或性质,然后证明该方法/性质的正确性。所谓定理就是被证明是正确的性质。第二十五页,共五十三页,2022年,8月28日26CollegeofComputerScience&Technology,BUPT第三节

NFA与DFA的等价性DFA是NFA的特例,

所以NFA必然能接收DFA能接收的语言.

因此证明等价性只要能够证明一个NFA所能接收的语言必能被另一个DFA所接收。关键问题:是否能构造出这样的DFA?分析思路:基于

:QT

2Q

,将转移后的“集合”作为新的状态,表示为{q1,q2,…qm},注意:集合-状态。新的转移函数的构造。新的终止状态集合的确定第二十六页,共五十三页,2022年,8月28日27CollegeofComputerScience&Technology,BUPT第三节

NFA与DFA的等价性1.定理:

设一个NFA接受语言L,

那么必然存在一个DFA接受L。2.

证明:策略:对于任意一个NFA,构造一个接收它所能接收语言的DFA,这个DFA的状态对应了NFA的状态集合。即NFA幂集的元素。第二十七页,共五十三页,2022年,8月28日28CollegeofComputerScience&Technology,BUPT从NFA构造等价的

DFA(子集构造法)设L是某个NFAN=(QN,

T,N,q0,FN)的语言,则存在一个DFAM,满足L(M)=L(N)=L.

证明:定义

M=(QD,

T,D,{q0},FD

),

其中

QD

=S

S

QN

=2Q注意:S是集合

对SQD

和aT

,

D(S,a)=

N(q,a).

FD=SS

QNS

FN

需要证明:对任何ω

T*

,

D({q0}

,ω)=N(q0,ω).

归纳于|w|可证上述命题.qS第二十八页,共五十三页,2022年,8月28日29CollegeofComputerScience&Technology,BUPTpqr0{q}{q}{q,r}10{q}1{p}{q}{r}{p,q}{p,r

}{q,r

}{p,q,r

}{q}{q,r}{q}{q,r}{q}{q}{q,r}{q}{q,r}子集构造法举例1、初始的NFA2、子集构造,计算状态可达3、经筛选后的DFA第二十九页,共五十三页,2022年,8月28日30CollegeofComputerScience&Technology,BUPTpqr0{p}{r}{r}1{p,q}01{p}{p,q,r}{p}{p,q}{p}{p,q}{p,q}{p,r}{p,q,r}{p,r}{p,r}{p,q,r}子集构造法举例第三十页,共五十三页,2022年,8月28日31CollegeofComputerScience&Technology,BUPT证明:从

NFA构造等价的

DFA设N=(QN,

T,N,q0,FN)是一个NFA

,通过子集构造法

得到相应的DFAD=(QD,

T,D,[q0],FD

),则对任何ω

T*

,

D({q0}

,ω)=N(q0,ω).

证明:归纳于|ω|1设|ω

|=0,即

ω=.由定义知D({q0},)=N(q0,)={q0}.2

设|ω

|=n+1,并

ω

=xa,aT.注意到|x|=n.假设

D({q0}

,x)=N(q0,x)={p1,p2,,pk

}.则

D({q0}

,ω)=D(D({q0}

,x),a)=D({p1,p2,,pk

},a)=N(pi,a).=N(q0,ω)i=1k第三十一页,共五十三页,2022年,8月28日32CollegeofComputerScience&Technology,BUPT

实践中,通过子集构造法得到的DFA的状态数目与原NFA的状态数目大体相当.

在较坏的情况下,上述DFA的状态数目接近于所有子集的数目.

举例由如下NFA构造的DFA的状态数目为2n子集构造法得到的状态数q0q1q2qn第三十二页,共五十三页,2022年,8月28日33CollegeofComputerScience&Technology,BUPT第四节 有转换的NFA为什么会引出带ε转换的NFA?与NFA的目的一样,也是为了表达简单直观。例1:表示接受字符串或由若干个0,或接若干个1,或再接若干个2的自动机?问题:如何构造/设计这个自动机呢?q0q1q2012εε第三十三页,共五十三页,2022年,8月28日34CollegeofComputerScience&Technology,BUPT第四节 有转换的NFA为什么会引出带ε转换的NFA?(续)可以用来识别关键字集合,程序语言中的应用例2:设计识别关键字web,ebay.问题:如何构造/设计这个自动机呢?第三十四页,共五十三页,2022年,8月28日35CollegeofComputerScience&Technology,BUPT第四节 有转换的NFA一、定义 概念:当输入空串ε(无输入)时,也能引起状态的转移.例:输入“002”时的转移格局:

q0q1q2012εε第三十五页,共五十三页,2022年,8月28日36CollegeofComputerScience&Technology,BUPT-NFA的形式定义一个-NFA

是一个五元组A=(Q,

T,,q0,F).有限状态集

有限输入符号集

转移函数

一个开始状态

一个终态集合q0Q

FQ与NFA的不同之处

:Q(T)

2Q第三十六页,共五十三页,2022年,8月28日37CollegeofComputerScience&Technology,BUPT-NFA的形式定义δ(q0,0)={q0}, δ(q0,1)=Φ,δ(q0,2)=Φ, δ(q0,ε)={q1},δ(q1,0)=Φ, δ(q1,1)={q1},δ(q1,2)=Φ, δ(q1,ε)={q2},δ(q2,0)=Φ, δ(q2,1)=Φ,δ(q2,2)={q2}, δ(q2,ε)=Φ,q0q1q2012εε第三十七页,共五十三页,2022年,8月28日38CollegeofComputerScience&Technology,BUPT-NFA如何接受输入符号串q1q0q2q3q5,+,–q4

该-NFA可以接受的字符串如:

3.14

+.314

–314.第三十八页,共五十三页,2022年,8月28日39CollegeofComputerScience&Technology,BUPT二、-闭包(closure)概念定义1:状态q的-闭包,记为

-

CLOSURE或ECLOSE

,定义为从q经所有的路径可以到达的状态集合(包括q自身),如:

q0q1q2012εε

-CLOSURE

(q0)={q0,q1,q2}

-CLOSURE

(q1)={q1,q2}

-CLOSURE

(q2)=

{q2}第三十九页,共五十三页,2022年,8月28日40CollegeofComputerScience&Technology,BUPT定义2:状态子集I的ε-闭包: ε-CLOSURE(I)=

ε-CLOSURE(q)或

q∈I

={ε-CLOSURE(q)|q∈I

}

例:ε-CLOSURE({q1,q2})=ε-CLOSURE(q1)∪ε-CLOSURE(q2)={q1,q2}第四十页,共五十三页,2022年,8月28日41CollegeofComputerScience&Technology,BUPT

Ia概念:对于状态子集IQ,任意a∈T,定义Ia如下:

Ia=ε-Closure(P) 其中P=δ(I,a).即P是从I中的状态经过一条标a的边可以到达的状态集合第四十一页,共五十三页,2022年,8月28日42CollegeofComputerScience&Technology,BUPT例:I={q0,q1},求I1I1=ε-CLOSURE(δ(I,1))=ε-CLOSURE(δ({q0,q1},1))=ε-CLOSURE(Φ∪{q1})={q1,q2}q0q1q2012εε第四十二页,共五十三页,2022年,8月28日43CollegeofComputerScience&Technology,BUPT扩展转移函数适合于输入字符串设一个-NFA,

:QT

2Q

扩充定义:QT*2Q

对任何qQ,定义:1(q,)=ε-CLOSURE(q)2δ'(q,a)=ε-CLOSURE(P)=ε-CLOSURE(δ(δ’(q,ε),a))3δ'(q,ωa)=ε-CLOSURE(P)其中:P={p|存在r∈δ'(q,ω)∧p∈δ(r,a)}注意:此时δ(q,a)δ'(q,a),因为δ(q,a)表示由q出发,只沿着标a的路径所能到达的状态,而δ'(q,a)表示由q出发,沿着标a(包括ε转换在内)的路径所能到达的状态.第四十三页,共五十三页,2022年,8月28日44CollegeofComputerScience&Technology,BUPTε-NFA中,δ与δ’函数的不同

举例计算(q0,a)

δ'(q0,ε)=ε-CLOSURE(q0)={q0,q2}δ'(q0,a)=ε-CLOSURE(δ(δ'(q0,ε),a))=ε-CLOSURE(δ({q0,q2},a))=ε-CLOSURE(δ(q0,a)∪δ(q2,a))=ε-CLOSURE({q1}∪{q3})={q1,q2}∪{q3}={q1,q2,q3}同理:δ'(q0,aa)={q3}ε-CLOSURE(q0)={q0,q2}ε-CLOSURE(q1)={q1,q2}ε-CLOSURE(q2)={q2}ε-CLOSURE(q3)={q3}第四十四页,共五十三页,2022年,8月28日45CollegeofComputerScience&Technology,BUPT三、-NFA

语言

设一个-NFAM=(Q,

T,,q0,F)

定义M

的语言:

L(M)=ω|(q0

,ω)

F

满足δ'(q0,ω)含有F的一个状态

第四十五页,共五十三页,2022年,8月28日46CollegeofComputerScience&Technology,BUPT四、

-NFA与NFA的等价1.

-NFA<==>NFA

具有转移的NFA是不具转移的NFA的一般情况,

所以只要证明下面的定理即可:定理:

如果L被一个具有转移的NFA接收,

那么L可被一个不具转移的NFA接收.证明思路:构造一个不具转移的NFA,证明其接收具有转移的NFA所接受的语言.第四十六页,共五十三页,2022年,8月28日47CollegeofComputerScience&Technology,BUPT从-NFA构造等价的无NFA设M=(Q,T,

,q0,F)是一个-NFA,可构造一个无的NFAM1=(Q,T,1

,q0,F1),构造思路:状态集合不变;转移函数的构造;对任何aT,

1(q,a)=

(q

,a)---构造方法

(注意δ与δ’的区别与联系。而δ1和δ1’是相等的。)3.F1

=F∪{q0}若ε-CLOSURE(q0)F F否则{第四十七页,共五十三页,2022年,8月28日48CollegeofComputerScience&Technology,BUPT从-NFA构造等价的无NFA证明:采用归纳法证明δ1(q0,ω)=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论