作業七 正規式到正規文法與自動機

2022-07-09 19:09:15 字數 2391 閱讀 7529

作業七——正規式到正規文法與自動機

總結1、正規式轉換為正規文法

同樣是三條規則,1.對形如a→ab的規則,轉換成a→ab,b→b

2.將形如a→a|b的規則,轉換成a→a,a→b(a→a|b)

3.將形如a→a*b的規則,轉換成a→aa,a→b

將形如a→ba*的規則,轉換成a→aa,a→b

2、dfa

五元組有乙個唯一的初態

3、三種描述dfa的方式

五元組、狀態圖(最直觀)、矩陣

4、nfa

五元組乙個狀態遇到同乙個符號可以轉換成多個狀態

是非空除態集

正規式到正規文法

對任意正規式r選擇乙個非終結符z生成規則z→r

1.對形如a→ab的規則,轉換成a→ab,b→b

2.將形如a→a|b的規則,轉換成a→a,a→b(a→a|b)

3.將形如a→a*b的規則,轉換成a→aa,a→b

將形如a→ba*的規則,轉換成a→aa,a→b

不斷利用上述規則進行轉換,直到每條規則最多含有乙個終結符為止.

1(0|1)*101

(a|b)*(aa|bb)(a|b)*

((0|1)*|(11))*

(0|11*0)*

①z->a1

a->b0

b->c1

c->1(0|1)*

c->c(0|1)|1

c->c0|c1|1

思路是每條規則最多含有乙個終結符,上式的1(0|1)*可以使用第三條規則進行轉換,還有101是不符合正規式的形式,所以一步一步拆分即可。

②s->(a|b)s

s->(aa|bb)(a|b)*

s->s(a|b)

s->(aa|bb)

s->as|bs|sa|sb|aa|bb

a->a

b->b

思路是如果正規式太長了,就先選擇最熟悉的拆分成正規式的形式

③s->((0|1)*|(11))s|ε

s->(0|1)*s|11s|ε

s->(0|1)*s

s->(0|1)s|s

s->0s|1s|s

s->11s

s->1a

a->1s

綜上所述:

s->0s|1s|s|1a

a->1s

④(0|11*0)*

s->(0|11*0)s|ε

s->0s|(11*0)s|ε

s->(11*0)s

s->a0

a->11*

a->a1|1

s->0s|a0|

εa->a1|1

自動機m=(,,f,q0,)

其中f:

(q0,0)=q1

(q1,0)=q2

(q2,0)=q3

(q0,1)=q0

(q1,1)=q0

(q2,1)=q0

(q3,0)=q3

(q3,1)=q3

畫現狀態轉換矩陣和狀態轉換圖。

根據五元組可知,q0,q1,q2,q3是狀態,是有窮字母表,當狀態遇見0或1時會轉換到下乙個狀態,f是映像,q0是唯一的乙個初態,是乙個終態集01

3.由正規式r 構造 自動機nfa

作業七 正規式到正規文法與自動機

對任意正規式r選擇乙個非終結符z生成規則z r 1.對形如a ab的規則,轉換成a ab,b b 2.將形如a a b的規則,轉換成a a,a b a a b 3.將形如a a b的規則,轉換成a aa,a b 將形如a ba 的規則,轉換成a aa,a b 不斷利用上述規則進行轉換,直到每條規則最...

七 正規式到正規文法與自動機

1.正規式轉換到正規文法 對任意正規式r選擇乙個非終結符z生成規則z r 1.對形如a ab的規則,轉換成a ab,b b 2.將形如a a b的規則,轉換成a a,a b a a b 3.將形如a a b的規則,轉換成a aa,a b 將形如a ba 的規則,轉換成a aa,a b 不斷利用上述規...

正規式到正規文法與自動機

正規式到正規文法 對任意正規式r選擇乙個非終結符z生成規則z r 1.對形如a ab的規則,轉換成a ab,b b 2.將形如a a b的規則,轉換成a a,a b a a b 3.將形如a a b的規則,轉換成a aa,a b 將形如a ba 的規則,轉換成a aa,a b 不斷利用上述規則進行轉...