形式语言与自动机 Part.4 正则语言,2DFA,MealyMoore机
课程名:形式语言与自动机
作者:Lupinus_Linn
许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享
- 署名(英语:Attribution,BY):您(用户)可以复制、发行、展览、表演、放映、广播或通过信息网络传播本作品;您必须按照作者或者许可人指定的方式对作品进行署名。
- 非商业性使用(英语:Noncommercial,NC):您可以自由复制、散布、展示及演出本作品;您不得为商业目的而使用本作品。
- 相同方式共享(英语:Sharealike,SA):您可以自由复制、散布、展示及演出本作品;若您改变、转变或更改本作品,仅在遵守与本作品相同的许可条款下,您才能散布由本作品产生的派生作品。(参见copyleft。)
引用:
- 本文中部分文字与图片引用自北京邮电大学计算机学院王柏教授的《形式语言与自动机》课程课件。
- 绪论中的证明方法部分引自清华大学王生原老师课件。
- 部分题目插图引用自北京邮电大学出版社《形式语言与自动机 第二版》教材。
在此一并表示感谢,并不做商业用途。
本笔记所有内容的传送门
Part.1绪论, Part.2 语言与文法
Part 3.有限自动机
Part.4 正则语言,2DFA,Mealy&Moore机
Part.5 上下文无关语言与下推自动机(PDA)
Part.6 图灵机
文章目录
- Part.4 正则语言
- 4.1 基本概念
- 4.2 右线性文法↔正则表达式
- 4.3 正则语言可以表示为有限自动机、正则表达式和右线性文法
- 4.4 有限自动机→正则表达式:状态消去法
- 4.5 正则表达式→有限自动机
- 4.6 右线性文法→有限自动机
- 4.7 有限自动机→右线性文法
- 4.8 DFA的最小化:填表算法
- 4.8.1 删除不可达状态
- 4.8.2 填表算法
- 4.8.3 等价状态的合并
- 4.8.4 例子
- 4.9 正则语言的泵引理
- 4.10 双向有限自动机(2DFA)
- 4.10.1 2DFA的五要素
- 4.10.2 2DFA的格局
- 4.10.3 2DFA接受的语言
- 4.11 有输出的有限自动机(Mealy&Moore)
- 4.11.1 Mealy机
- 4.11.2 Moore机
- 4.11.3 Moore机→Mealy机
- 4.11.4 不做要求:Mealy机→Moore机
Part.4 正则语言
4.1 基本概念
- 正则语言:满足正则语言的判定定理的语言。
- 正则(表达)式:用类似代数表达式的方法表示正则语言。
- 正则式的相等:表示的语言相同。
- 正则集:满足正则式的字符串的集合。
- 正则式和语言的的联合运算+,连接运算•,正闭包 L + L^+ L+,星闭包 L ∗ L^* L∗及运算性质。
注1:正则集是T* 的子集。(即正则集是T*上的语言)
注2:L+包含ε当且仅当L包含ε。
注3:每个正则集至少对应一个正则式(可有无穷多 个正则式)
4.2 右线性文法↔正则表达式
两个等价
- 左线性文法和右线性文法等价。
- 右线性文法和正则式等价(右线性文法产生的语言都是正则语言,正则语言都可以用右线性文法产生)
从右线性文法导出正则式:设 x → α x + β , α ∈ T ∗ , x ∈ N , t h e n x = α ∗ β x\rarr \alpha x+\beta,\alpha \in T^*,x\in N,then\ x=\alpha^*\beta x→αx+β,α∈T∗,x∈N,then x=α∗β。不断代入消元,最后得出 S = < R E > S= <RE> S=<RE>
4.3 正则语言可以表示为有限自动机、正则表达式和右线性文法
三者两两等价,都表示正则语言
直接生成终结符的非终结符是被接受的。
被接受的状态额外还有仅产生终结符的产生式。最后做文法三消。
例子:
G=({S,A},{0,1},P ,S)其中P:S—>1A,A—> 0A |1S|0
文法转正则式:解方程
A → 0 A ∣ 1 S ∣ 0 , 即 A → 0 A ∣ 11 A ∣ 0 , 解 得 A = ( 0 + 11 ) ∗ 0 , 得 S = 1 ( 0 + 11 ) ∗ 0 A\to 0A|1S|0,即A\to 0A|11A|0,解得A=(0+11)^*0,得S=1(0+11)^*0 A→0A∣1S∣0,即A→0A∣11A∣0,解得A=(0+11)∗0,得S=1(0+11)∗0正则式转文法:按照运算顺序,按基本运算还原。
1 , ( 0 + 11 ) ∗ , 0 1,(0+11)^*,0 1,(0+11)∗,0是依次连接的,对应文法的连接,则 S → 1 A 0 , A → ( 0 + 11 ) ∗ S\to 1A0,A\to (0+11)^* S→1A0,A→(0+11)∗
闭包运算的文法是 A → a A ∣ ϵ A\to aA|\epsilon A→aA∣ϵ,所以 A → 0 A ∣ 11 A ∣ ϵ A\to 0A|11A|\epsilon A→0A∣11A∣ϵ文法转自动机:生成一个吃一个,生成终结符串的,转移到一个新增的接受状态。
因为mermaid语法的限制,用方形框表示接受。
S → 1 A S\to 1A S→1A,则状态 q S q_S qS用字符 1 1 1转移到状态 q A q_A qA,其他以此类推。
A A A可以推出终结符串 0 0 0,则 q A q_A qA通过 0 0 0转移到新的接受状态 q H q_H qH1010qsqaqh自动机转文法:每一个转移,对应一个产生式。转移到接受状态的,额外增加推出终结符串。
q S q_S qS接受 1 1 1转移到 q A q_A qA,所以文法有产生式 q S → 1 q A q_S\to 1q_A qS→1qA,其他以此类推。
最后可能要做三消(消单消空消递归)。
q S → 1 q A q A → 1 q S q A → 0 q A q A → 0 q H ∣ 0 q_S\to 1q_A\\ q_A\to 1q_S\\ q_A\to 0q_A\\ q_A\to \bold{0q_H|0} qS→1qAqA→1qSqA→0qAqA→0qH∣0自动机转正则式:状态消去法
要消去状态 q A q_A qA,入射 q A q_A qA的有 { q S } \{q_S\} {qS},出射 q A q_A qA的有 { q H , q S } \{q_H,q_S\} {qH,qS},所以对 q S q_S qS到 q H q_H qH, q S q_S qS到$q_S $有影响。10*110*0qsqh此时已经是基本结构,一举写出
S = ( 1 0 ∗ 1 ) ∗ 1 0 ∗ 0 S=(10^*1)^*10^*0 S=(10∗1)∗10∗0正则式转自动机:按照运算顺序,按基本运算还原。
用 S = 1 ( 0 + 11 ) ∗ 0 S=1(0+11)^*0 S=1(0+11)∗0来还原,5.里那个比较复杂。
1 , ( 0 + 11 ) ∗ , 0 1,(0+11)^*,0 1,(0+11)∗,0是依次连接的,对应自动机某一些状态区域的空转移。
空闭包的结构是,要么空转移,要么在原地转圈后转移。
0+11的结构是,两条并行线。
11结构是,顺序执行。rightZone midZone leftZone1空空011空0cq3qfaq2dq1
4.4 有限自动机→正则表达式:状态消去法
精髓:将正则表达式作为转移弧的标记。不断删去状态,删去状态时将其前驱和后继的转移弧标记修改。删到基本结构时写出最终表达式。
删除方法:
基本结构:
对于 q ∈ F q\in F q∈F
- q ≠ q 0 q\ne q_0 q=q0,则正则表达式为 ( R + S U ∗ T ) ∗ S U ∗ (R+SU^*T)^*SU^* (R+SU∗T)∗SU∗,即观察从 q 0 q_0 q0到 q q q的可能路径。
为到达 q 0 q_0 q0,可以在 q 0 q_0 q0自环转任意次或者 q 0 q_0 q0和 q q q之间反复横跳任意次。
之后要到达 q q q,一定会单独经过一次 S S S,然后在 q q q又可以自环转任意次。
- q = q 0 q= q_0 q=q0,最后可以删到只剩下一个状态。正则表达式为 R ∗ R^* R∗.
- 当有 ∣ F ∣ > 1 |F|\gt1 ∣F∣>1,即有多个状态被接受时,将到达每个终态的正则表达式加起来。
技巧:删去的顺序不一定,可以先局部再整体。
例子:
- 另有状态消去法的形式化方法– CONVERT(G),但其不适合手工操作,略去不表。
4.5 正则表达式→有限自动机
精髓:将正则表达式的匹配过程写成一个二叉树,然后中序遍历,按照几种基本结构将其画成自动机。
其实大多数时候是随手画。
基础:
归纳:
4.6 右线性文法→有限自动机
精髓:因为右线性文法每次会产生一个非终结符合一个终结符,将生成终结符作为自动机的转移条件,产生的非终结符作为下一个状态。
因为只产生终结符时应该是接受状态,但是文法中没有这个符号,所以就新建一个符号H,让终结符指向H,H被接受。
为了不引入空转移,根据是否能由S推出空串决定S的可接受性。
方法:设右线性文法 G = ( N , T , P , S ) G=(N,T,P,S) G=(N,T,P,S),构造一个与G等
价的有限自动机 N F A M = ( Q , T , δ , q 0 , F ) NFA\ M=(Q,T,δ,q_0,F) NFA M=(Q,T,δ,q0,F),其中: Q = N ∪ H Q=N \cup {H} Q=N∪H, H H H为一个新增加的状态, H ∉ N H\notin N H∈/N, q 0 = S q_0=S q0=S.
F = { { H , S } , i f S → ϵ ∈ P { H } F=\begin{cases}\{H,S\},if\ S\rarr\epsilon \in P\\\{H\}\end{cases} F={{H,S},if S→ϵ∈P{H}
δ : \delta: δ:
B ∈ δ ( A , a ) i f A → a B ∈ P H ∈ δ ( A , a ) i f A → a ∈ P δ ( H , a ) = ∅ B\in \delta(A,a)\ if\ A\rarr aB \in P\\H\in \delta(A,a)\ if\ A\rarr a \in P\\\delta(H,a)=\empty B∈δ(A,a) if A→aB∈PH∈δ(A,a) if A→a∈Pδ(H,a)=∅
例子:
4.7 有限自动机→右线性文法
精髓:把 δ \delta δ函数的转移看成是一个个生成式。
方法:设 N F A M = ( Q , T , δ , q 0 , F ) NFA\ M=(Q,T,δ,q_0,F) NFA M=(Q,T,δ,q0,F),构造一个右线性文法 G = ( N , T , P , S ) G=(N,T,P,S) G=(N,T,P,S),其中 N = Q N=Q N=Q, S = q 0 S=q_0 S=q0
P : P: P:
A → a B ∈ P i f δ ( A , a ) = B , t h e n i f B ∈ F , a d d A → a t o P A\rarr aB\ \in P\ if\ \delta(A,a)=B,\ then\ if\ B\in F,\ add\ A\to a\ to\ P A→aB ∈P if δ(A,a)=B, then if B∈F, add A→a to P
例子:
4.8 DFA的最小化:填表算法
- 最小化:对DFA M的极小化是找出一个状态数比M少的
DFA M1,使满足 L(M) = L(M1)。若DFA M不存在互为等价状态及不可达状态,则称 DFA M是最小化的. - 状态偶对:两个状态的有序二元组称为状态偶对。
- 状态的等价和可区分:两者是对立的。对于某一DFA M,如果两个状态 q 0 , q 1 q_0,q_1 q0,q1通过任意的串 ω \omega ω都可以转移接收状态(不一定是同一个接收状态),则两者等价。反之两者可区分。
即:设 D F A M = ( Q , T , δ , q 0 , F ) DFA\ M = (Q,T,δ,q_0,F) DFA M=(Q,T,δ,q0,F),若 q x , q y ∈ Q q_x,q_y\in Q qx,qy∈Q,对于 ∀ ω ∈ T ∗ \forall \omega\in T^* ∀ω∈T∗,若 ( q x , ω ) ┣ ∗ ( q x , ϵ ) ↔ ( q y , ω ) ┣ ∗ ( q y , ϵ ) (q_x,\omega)┣^*(q_x,\epsilon)\leftrightarrow(q_y,\omega)┣^*(q_y,\epsilon) (qx,ω)┣∗(qx,ϵ)↔(qy,ω)┣∗(qy,ϵ),则 q x , q y q_x,q_y qx,qy等价,反之两者可区分。 - 不可达状态:即无法从 q 0 q_0 q0输入任何字符串 ω \omega ω到达的状态。
4.8.1 删除不可达状态
可以减小填表算法的负担。
从 q 0 q_0 q0开始,迭代寻找(bfs)可以到达的状态 Q 可 达 Q_{可达} Q可达,则 Q − Q 可 达 Q-Q_{可达} Q−Q可达即为不可达状态,删除不可达状态即含有其的转移条目。
4.8.2 填表算法
精髓:因为状态的等价关系是传递的,可以通过两两判断等价性来找出所有等价的状态。又因为是自反的、对称的,所以只需要一个 n × n n\times n n×n表格的下三角部分来记录,且不需要对角线。
如果没有理由认为两个状态是可区分的,那么就认为他们是等价的。
方法:
- 基础:所有的终态和非终态是可区分的。
- 归纳:如果某两个状态 q x , q y q_x,q_y qx,qy可以通过符号 a a a转移到两个可区分的状态,那么他们是可区分的。
例子:
4.8.3 等价状态的合并
将所有的状态根据等价性构成一个划分,将划分块用其等价类代替。
用等价类作为状态标记构造一个新的DFA,其转移关系为:如果原来不同划分之间至少有一种转移,那么这两个等价类增加一条转移。
即:设待最小化的DFA为 D F A A = ( Q , T , δ , q 0 , F ) DFA\ A = (Q, T, \delta, q_0 , F ) DFA A=(Q,T,δ,q0,F) ,最小化的自动机为 D F A B = ( Q B , T , δ B , [ q 0 ] , F B ) DFA\ B = (Q_B, T, \delta_B, [q0], F_B ) DFA B=(QB,T,δB,[q0],FB) , 其中 Q B = { [ q ] ∣ q ∈ Q } Q_B=\{ [q] | q\in Q\} QB={[q]∣q∈Q}, δ B ( [ q ] , a ) = [ δ ( q , a ) ] } \delta_B([q] ,a)=[\delta(q,a)]\} δB([q],a)=[δ(q,a)]}, F B = { [ q ] ∣ q ∈ F } F_B = \{ [q] | q\in F\} FB={[q]∣q∈F}
4.8.4 例子
4.9 正则语言的泵引理
精髓:因为正则语言对应的是有限自动机,其状态数是有限的,那么由Pigeonhole Rule,对于无限的语言(有限语言可以通过“并”构成正则语言),如果其为正则语言,那么一定会在自动机的某一段绕圈来达到无限。
泵引理:正则语言中足够长的句子一定能拆成三段,并且中间一段重复0次或任意多次得到的句子仍然属于正则语言(可以Pumping in和Pumping out)。泵引理成立是正则语言的一个必要条件。
用泵引理来证明某语言不是正则语言
证明步骤
- 选任意的n.
- 找到一个满足以下条件的串 w ∈ L w\in L w∈L (长度至少为n).
- 任选满足 w = x y z ∧ y ≠ ϵ ∧ ∣ x y ∣ ≤ n w = xyz ∧ y\ne \epsilon ∧ |xy| \le n w=xyz∧y=ϵ∧∣xy∣≤n 的 x , y , z x,y,z x,y,z
- 找到一个 k ≥ 0 k\ge0 k≥0, 使 x y k z ≠ L xy^kz \ne L xykz=L.
例子:利用泵引理证明下述语言不是正则语言:
L = { 1 n 2 ∣ n ≥ 0 } L=\{1^{n^2}|n\ge 0\} L={1n2∣n≥0}
答:
- 假设 L L L是正则语言。
- 那么,存在 N ∈ Z + N\in Z^+ N∈Z+,对于 ∀ ω ∈ L ( ∣ ω ∣ ≥ N ) \forall \omega\in L(|\omega|\ge N) ∀ω∈L(∣ω∣≥N)满足泵引理。
- 取 ω = 1 N 2 \omega = 1^{N^2} ω=1N2,显然 ω ∈ L \omega \in L ω∈L且 ∣ ω ∣ = N 2 ≥ N |\omega|=N^2\ge N ∣ω∣=N2≥N。
- 那么, ω \omega ω可以被分为 ω = x y z \omega =xyz ω=xyz,且 ∣ x y ∣ ≤ N , ∣ y ∣ > 0 |xy|\le N,|y| \gt 0 ∣xy∣≤N,∣y∣>0.
- 那么, y y y只能是 1 m ( m > 0 ) 1^m(m\gt 0) 1m(m>0), x x x为 1 l ( l ≥ 0 ) 1^l(l\ge 0) 1l(l≥0), z z z为 1 N 2 − l − m 1^{N^2-l-m} 1N2−l−m,且满足 m + l ≤ N m+l\le N m+l≤N。
- 那么 x y 2 z = 1 l 1 2 m 1 N 2 − l − m = 1 N 2 + m xy^2z=1^l1^{2m}1^{N^2-l-m}=1^{N^2+m} xy2z=1l12m1N2−l−m=1N2+m。
- 因为 m > 0 m\gt 0 m>0所以 N 2 + m > N 2 N^2+m\gt N^2 N2+m>N2;因为 m + l ≤ N m+l\le N m+l≤N且 l ≥ 0 l\ge 0 l≥0,得 m ≤ N m\le N m≤N,所以 N 2 + m ≤ N 2 + N < N 2 + 2 N + 1 = ( N + 1 ) 2 N^2+m\le N^2+N\lt N^2+2N+1=(N+1)^2 N2+m≤N2+N<N2+2N+1=(N+1)2,所以 N 2 < N 2 + m < ( N + 1 ) 2 N^2\lt N^2+m\lt (N+1)^2 N2<N2+m<(N+1)2,即新串的长度严格位于两个完全平方数之间,所以其不是完全平方数。
- 则 x y 2 z ∉ L xy^2z\notin L xy2z∈/L,而由泵引理 x y 2 z ∈ L xy^2z\in L xy2z∈L,所以假设不成立, L L L不是正则语言。
例子:由文法 G G G产生的语言 L ( G ) L(G) L(G),其中 P : S → a S b S ∣ c P:S\to aSbS|c P:S→aSbS∣c.
语言的描述有很多种,用类似 a n b n a^nb^n anbn的公式化描述的只有一部分。还有用叙述性描述(比如a和b的数量一样多)和文法描述的(本题)。这些描述有时候很难写出完全等价的公式化描述,其实只需要其中的一个句子即可。
- 假设L是正则语言,则存在正整数N,对于任意L内的字符串 ω \omega ω成立 ∣ ω ∣ ≥ N |\omega|\ge N ∣ω∣≥N时,可以应用泵引理。
- 对于L,不妨取 ω = a N c ( b c ) N = ω 1 ω 0 ω 2 \omega=a^Nc(bc)^N=\omega_1\omega_0\omega_2 ω=aNc(bc)N=ω1ω0ω2,则 ∣ ω 0 ∣ > 0 , ∣ ω 1 ω 0 ∣ ≤ N |\omega_0|\gt 0,|\omega_1\omega_0|\le N ∣ω0∣>0,∣ω1ω0∣≤N,显然 ω 0 = a i ( i > 0 ) \omega_0=a^i(i\gt 0) ω0=ai(i>0)。
- 则对于 ω ′ = ω 1 ω 0 2 ω 2 = a N + i c ( b c ) N \omega'=\omega_1\omega_0^2\omega_2=a^{N+i}c(bc)^N ω′=ω1ω02ω2=aN+ic(bc)N,其不属于 L L L(注意是文法那个L,不是取的句子),而与泵引理矛盾,所以L不是正则语言。
4.10 双向有限自动机(2DFA)
双向有限自动机:读入一个字符之后,读头既可以左移一格, 也可以右移一格,或者不移动的有限自动机。
确定的双向有限自动机: 每读入一字符,必须向左或右移动,不考虑不移动的情况.
4.10.1 2DFA的五要素
2 D F A M = ( Q , T , δ , q 0 , F ) 2DFA\ M=(Q,T ,δ, q_0, F) 2DFA M=(Q,T,δ,q0,F)
δ : Q × T → Q × { L , R } \delta:Q\times T\rarr Q\times\{L,R\} δ:Q×T→Q×{L,R}
δ ( q , a ) = ( p , R ) o r δ ( q , a ) = ( p , L ) \delta(q,a)=(p,R)\ or\ \delta(q,a)=(p,L) δ(q,a)=(p,R) or δ(q,a)=(p,L)
其他与DFA相同。即每次除了状态转移之外还要移动读头(左移或右移一格)。
4.10.2 2DFA的格局
2DFA的格局和DFA的不同,要把字符串整个列出来。
δ ( q , a m + 1 ) = ( p , R ) δ(q,a_{m+1})=(p,R) δ(q,am+1)=(p,R)的格局表示: a 1 a 2 … a m q a m + 1 … a n ┣ a 1 a 2 … a m + 1 p a + m + 2 … a n a_1 a_2…a_m q a_{m+1}…a_n┣ a_1 a_2…a_{m+1} p a+{m+2}…a_n a1a2…amqam+1…an┣a1a2…am+1pa+m+2…an
δ ( q , a m + 1 ) = ( p , L ) δ(q,a_{m+1})=(p,L) δ(q,am+1)=(p,L)的格局表示: a 1 a 2 … a m q a m + 1 … a n ┣ a 1 a 2 … a m − 1 p a m a m + 1 … a n a_1 a_2…a_m q a_{m+1}…a_n┣ a_1 a_2…a_{m-1} p a_m a_{m+1}…a_n a1a2…amqam+1…an┣a1a2…am−1pamam+1…an
4.10.3 2DFA接受的语言
- 2DFA接受的语言是 L ( M ) = { ω ∣ q ω ┣ ω ∗ q , q ∈ F } L(M)=\{ω| q_ω┣^*_ωq,q\in F\} L(M)={ω∣qω┣ω∗q,q∈F}
4.11 有输出的有限自动机(Mealy&Moore)
有输出的有限自动机是有限自动机的一个类型.
这类自动机在有字符输入时,不仅存在状态转换, 同时引起字符输出.根据输入字符,自动机状态,输出字符三者之 间关系,可有两类有输出的自动机:
米兰机(Mealy): 输出字符与输入字符及状态有关.
摩尔机(Moore): 输出字符仅与状态有关.最大优点: 节省状态
4.11.1 Mealy机
M = ( Q , T , R , δ , g , q 0 ) M=(Q,T ,R,δ, g , q_0) M=(Q,T,R,δ,g,q0)
相比DFA,多了输出函数 g : Q × T → R g:Q\times T\rarr R g:Q×T→R
δ \delta δ和 g g g函数共同描述Mealy机的工作情况。绘图:
{ δ ( p , a ) = q g ( p , a ) = b \begin{cases}\delta(p,a)=q\\g(p,a)=b\end{cases} {δ(p,a)=qg(p,a)=b
绘制为a/bpq例子:
4.11.2 Moore机
M = ( Q , T , R , δ , g , q 0 ) M=(Q,T ,R,δ, g , q_0) M=(Q,T,R,δ,g,q0)
相比DFA,多了转移函数 g g g
相比Mealy机,Moore机的转移函数 g g g是个一元函数,只与当前状态有关。绘图:
{ δ ( p , a ) = q g ( p ) = b 1 g ( q ) = b 2 \begin{cases}\delta(p,a)=q\\g(p)=b_1\\g(q)=b_2\end{cases} ⎩⎪⎨⎪⎧δ(p,a)=qg(p)=b1g(q)=b2
绘制为ap,b1q,b2因为输出只与状态有关,所以把输出写在状态圈里。
例子:
4.11.3 Moore机→Mealy机
- Moore机比较简单,所以转换成Mealy机很方便。
- 将Moore机中某个状态 q q q的输出 b b b,作为新的Mealy机任何到达 q q q状态的转移时的输出。
即:设摩尔机 M = ( Q , T , R , δ , g , q 0 ) M=(Q, T, R,δ, g ,q_0) M=(Q,T,R,δ,g,q0) 米兰机 M ’ = ( Q , T , R , δ , g ’ , q 0 ) M’=(Q, T, R,δ, g’, q_0) M’=(Q,T,R,δ,g’,q0) 如果 中 中 中有 δ ( q , a ) = p δ(q,a)=p δ(q,a)=p,$ g§ = b$ 则 M ’ M’ M’中有 g ’ ( q , a ) = b = g ( δ ( q , a ) ) g’(q,a) = b = g(δ(q,a)) g’(q,a)=b=g(δ(q,a))
例子:
4.11.4 不做要求:Mealy机→Moore机
略去不表。
形式语言与自动机 Part.4 正则语言,2DFA,MealyMoore机相关推荐
- 形式语言与自动机 Part 3.有限自动机
课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...
- 形式语言与自动机 Part.5 上下文无关语言与下推自动机(PDA)
课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...
- 形式语言与自动机 Part.6 图灵机
课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...
- 形式语言与自动机 Part.1绪论, Part.2 语言与文法
课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...
- 【形式语言与自动机】有限状态机
[形式语言与自动机]有限状态机 一.有限状态机 其需求来自于对语言字符串识别的需要,给定字符串判定它是否属于语法G产生的 L(G), 判断是否属于这个集合. 句子识别 〉 给定一个字符串,判定是否属于 ...
- 计算机语言学翁富良,形式语言与自动机的关系.doc
形式语言与自动机的关系 形式语言与自动机的关系研究 新疆师范大学数理信息学院数学03-6班 摘要: 形式语言的直观意义,自动机的直观意义,形式语言的定义,形式语言的特征,语法的分类,自动机的定义,自动 ...
- 形式语言与自动机及其在NLP中的应用
摘要 形式语言与自动机是计算机科学的理论基础,对于计算机科学与技术专业人才的计算思维能力培养极其重要.本文首先从Chomsky谱系出发,对形式语言的概念和类别进行了阐述,然后按照形式文法与自动机之间的 ...
- 形式语言与自动机学习复述笔记
形式语言与自动机学习复述笔记 文章目录 形式语言与自动机学习复述笔记 本文说明 文法 文法的乔姆斯基分类 有穷自动机 正则语言 正则文法 关系 正则表达式 正则表达式RE->$\epsilon$ ...
- 计算理论 形式语言与自动机_下推式自动机(PDA)| 计算理论
计算理论 形式语言与自动机 Pushdown Automaton (PDA) is a kind of Automaton which comes under the theory of Comput ...
最新文章
- Nginx容器日志收集方案fluentd+elasticsearch+kilbana
- 在脚本中调用psql如何自动输入密码
- Hibernate中使用Criteria查询及注解——(DeptTest.java)
- python日志模块备份_Python Logging模块 输出日志颜色、过期清理和日志滚动备份
- Mybatis构建sql语法
- 【机器学习】机器学习从零到掌握之七 -- 教你使用KNN进行手写数字识别
- post请求html405,nginx静态文件响应post请求,405 Not Allowed
- memcache 知识点
- [每天一个知识点]27-职业生涯-饿了不能吃石头所以吃沙子
- 免匙SSH登录失败问题(非常规)
- python画十字_Python解决十字消除棋
- mapstd matlab详解,Matlab自带的数据标准化方法(mapminmax和mapstd)详细解析
- WebView如何引用本地字体
- SyncToy -- 微软同步工具
- Mac文件夹如何进行加密
- 学习 慕课网【 PHP工程师计划】
- 读书百客:《送客之江西》赏析
- 神舟战神k650d系列风扇强冷如何开启
- 如何获取京东微信小程序页面路径
- C语言运行时变成灰色,C语言实现RGB图像转换成灰(Gray)度图像
热门文章
- 游戏分类与热点探索——【作业1】
- pAdTy_1 构建图形和动画应用程序
- 如何使用mtPaint制作像素艺术和GIF动画
- 【学习记录】阿里天池SQL练习题1-python与SQL方式比较
- 不懂就问,苹果电脑格式化了能恢复数据吗?
- .net core word转pdf_Enolsoft PDF to Word with OCR for Mac(PDF转Word软件)
- re学习笔记(37)BUUCTF-re-[GUET-CTF2019]re Z3约束求解器
- 你选的低功耗MCU是不是真省电?看后请自测
- linux中sed如何替换换行符,linux sed命令,如何替换换行符“\n”
- nunjucks.js模板渲染