发布时间 : 星期六 文章正规文法与有限自动机的相互转换更新完毕开始阅读
正规式主要用到了递归的思想,无论遇到多复杂的正规式都可以拆分成上面这三种形式,然后进行解题。
2.2有限自动机(有穷自动机)
DFA(Deterministic Finite Automation ):确定的有限自动机 表达式:M=(S,∑,f,So,Z) 1.S为一个有限状态集合
2.∑是一个字母表,它所包含的的每个元素称为一个输入字符; 3.f是一个从SX∑(笛卡尔乘积)至S的单值部分映射。f(S,a)=s'意味着当现在的状态为s,输入字符a时,将转换到下一状态s'.s'为s的一个后继状态。
4.So∈S,是唯一的初态; 5.Z?S,是一个终态集。
NFA(Nondeterministic Finite Automata):不确定的有限自动机 如果理解了有限自动机,则无限自动机和它的区别就是上面的第四项。 So?S,它的初态不是唯一的,而是一个集合。
2.3NFA向DFA的转换
这个转换是一个比较简单的过程。
1.如果有一个不确定的有限自动机,则可以转化为图的方式。此处不详述怎样转图的方式。
2.先将初态确定,然后根据输入的每个元素可以得到哪些状态,依次列表。 3.这些状态集合可以称为这个有限状态集合n个子集。按0,1,2??的顺序编号。
4.因为这些子集之间的关系是输入一个确定值确定的,所以这些子集之间存在一些关系,即把这些子集的关系写出来完成NFA向DFA的转换。
如果不懂可以从网上找一个例子进行理解。
5
2.4正规式与有限自动机之间的转换
任意的正规式都可以转换为上述三种的表现形式。
在一个有限自动机转换为正规式时,就是考虑从初态到终态可以输入哪些数据到达。而这些数据可以用哪种正规式概括进来。
3系统设计
3.1从正规文法到有限自动机
3.11正规文法到有限自动机的等价性证明
定理1:对于每一个右线性正规文法GR和左线性正规文法GL,都存在一个有限自动机M与之等价。
证明:
1.设右线性文法GR=(VT,VN,S,P),将VN中每个非终结符视为状态符号,
6
并增加一个新的终止符号f,(f VN)。令M=(VN {f},VT,d,S,{f}),其中状态转换函数d由以下规则定义:①若对某个A VN及a VT {ε},P中有产生式A→a,则令d(A,a)=f;
②对任意的A VN及a VT {ε},设P中左端为A右端第一个符号为a的所有产生式为A→aA1∣aA2∣?∣aAk(不包括A→a),则令d(A,a)={ A1,A2,?,Ak}。
显然上述得到的M为一个NFA。到此,已说明存在一个FAM与该右线性文法对应,下面说明它们的等价性(L(GR)=L(M) )。
对右线性正规文法GR,在S W的最左推导过程中,利用A→aB一次就相当于在M中从状态A出发经标记为a的箭弧到达状态B(包括a=ε的情形)。在推导过程的最后,利用A→a一次则相当于在M中从状态A出发经标记为a的箭弧到达终态f(包括a=ε的情形)。
综上所述,在正规文法GR中,S W的充要条件是:在M中,从状态S到状态f有一条通路,其上所有箭弧的标记符号依次连接起来恰好等于W,这就是说,W L(GR)当且仅当W L(M),故L(GR)=L(M)。
2. 设左线性文法GL=(VT,VN,S,P),将VN中每个非终结符视为状态符号,并增加一个新的初始状态符号q,(q VN)。令M=(VN {q},VT,d,q,{S}),其中状态转换函数d由以下规则定义:
①若对某个A VN及a VT {ε},P中有产生式A→a,则令d(q,a)=A; ②对任意的A VN及a VT {ε},设P中所有右端第一个符号为A,第二个符号为a的所有产生式为A1→Aa,A2→Aa,?,AK→Aa,则令d(A,a)={ A1,A2,?,Ak}。
显然上述得到的M为一个NFA。到此,已说明存在一个FAM与该左线性文法对应,下面说明它们的等价性(L(GL)=L(M) )。
对左线性正规文法GL,在S W的最左推导过程中,利用B→Aa一次就相当于从状态A出发经标记为a的箭弧到达状态B(包括a=ε的情形)。在推导的最后,利用A→a一次则相当于在M中从状态q出发经标记为a的箭弧到达状态A(包括a=ε的情形)。综上所述,在正规文法GL中,S W的充要条件是:在M中,从状态q到状态S有一条通路,其上所有箭弧的标记符号依次连接起来恰好等于
7
W,这就是说,W L(GL)当且仅当W L(M),故L(GL)=L(M)。 3.12 正规文法到有限自动机的构造方法
上述定理的证明采用了构造性的证明方法,由此可以得出由正规文法到有限自动机的构造方法。
从右线性正规文法GR=(VT,VN,S,P)构造有限自动机M=( VN {f},VT,d,S,{f})的方法如下:
①将VN中每个符号视为一个状态符号,增加一个新的终态符号f,f VN; ②对于产生式A→a(a VT {ε}),则构造d(A,a)=f; ③对于产生式A→aA1(a VT {ε}),则构造d(A,a)= A1。
从左线性正规文法GL=(VT,VN,S,P)构造有限自动机M=( VN {q},VT,d,q,{S})的方法如下:
①将VN中每个符号视为一个状态符号,增加一个新的初态符号q,q VN; ②对于产生式A→a(a VT {ε}),则构造d(q,a)=A; ③对于产生式A1→Aa(a VT {ε}),则构造d(A,a)= A1。
3.2从有限自动机到正规文法
3.21 有限自动机到正规文法的等价性证明
定理2:对于每一个有限自动机M,都存在一个右线性正规文法GR和左线性正规文法GL与之等价。
证明:
1.设DFAM=(S,∑,d,S0,F),分以下两种情况进行证明:
(1)若S0 F,则令GR=(∑,S, S0, P),其中P是由以下规则定义的产生式集合,对任何a ∑及A,B S,若d(A,a)=B,则:
①当B F时,令A→aB; ②当B F时,令A→aB∣a;
显然,上述得到的文法为一个右线性正规文法,下面说明它们的等价性(L(M)=L(GR) )。
在DFAM中,对任何w ∑*,不妨设w=a1a2?ak,其中ai ∑(i=1,2,?,k),若S W,则存在一个最左推导:S0 a1A1 a1a2A2 ? a1?aiAi a1?aiai+1Ai+1 ?
8