Sunteți pe pagina 1din 13

MODULUL III

Gramatici regulate. Automate finite deterministe i nedeterministe

3.1. Gramatici regulate

Definiia 3.1: O gramatic   , , ,  este gramatic regulat dac orice producie a sa
este fie de forma
, fie de forma
cu
,  i .

Exemplul 3.1: Fie gramatica regulat   , , ,  , unde   ,    , iar mulimea
produciilor este    | . Se observ foarte uor c limbajul generat de gramatica 
este     |  1.

Exemplul 3.2: Fie gramatica regulat   , , ,  , unde   ,


,    , , , iar
mulimea produciilor  este urmtoarea:

  (1)
 
2


3

 4

Cuvntul     deoarece:



 !  ! 
!    
1 2 4

Cuvntul "    deoarece:



 !  !  !  ! 
! 
! 
! 
!   " 
1 1 1 2 3 3 3 4

Se poate observa c limbajul generat de gramatica  este      # |  1, $  2.

Exemplul 3.3: Fie gramatica regulat   , , ,  , unde   ,


,    , , , iar
mulimea produciilor  este urmtoarea:


(1)


| 2
% 3
%  | 4

Cuvntul     deoarece:



 !
! ! % !    
1 2 3 4

Se poate observa c limbajul generat de gramatica  este      # |  2, $  1.


32
3.2. Automate finite deterministe

Definiia 3.2: Se numete automat finit determinist un cvintuplu


 , ', (, )* , + , unde:
se numete alfabetul de intrare;
' se numete mulimea strilor;

(: ' - ' se numete funcia de tranziie;

.* ' reprezint starea iniial;

+ ' se numete mulimea strilor finale.

Observaia 3.1: Extindem funcia de tranziie (: ' - ' la o funcie ( : ' - ' care
s poat fi aplicat i unui ntreg cuvnt, ci nu numai unui singur simbol, astfel:

( ., 2  ., . ' 6
1
( .,   ( 4( .,  , 5, . ',  ,

Observaia 3.2: Pentru a nu complica inutil notaiile, n continuare vom nota ( tot prin .

Definiia 3.3: Limbajul acceptat de un automat finit determinist


 , ', (, .* , + este
mulimea 7
  |(.* ,  +

Automatele finit deterministe pot fi reprezentate prin dou metode:

1) analitic: se vor preciza mulimile i ', iar funcia de tranziie ( va fi dat sub forma

din alfabetul de intrare. Starea iniial va fi marcat cu , iar strile finale vor fi marcate
unui tabel n care liniile reprezint strile automatului, coloanele reprezint simbolurile

cu .

automatului, un arc dintre dou stri ) i )" este etichetat cu simbolul care realizeaz
2) grafic: sub forma unui graf orientat n care un nod al grafului reprezint o stare a

tranziia respectiv () ,  )" . Starea iniial se marcheaz cu o sgeat, iar o stare
final se reprezint printr-o ncercuire dubl.

Exemplul 3.4: Automatul finit determinist


 , ', (, .* , + accept toate irurile binare
care conin subirul 01, respectiv   110110 7
, iar "  1100 7
.

33
Analitic, automatul
 , ', (, .* , + va fi reprezentat astfel:

 0,1
'  .* , . , ." 

funcia de tranziie (:

0 1
:; . .*
:< . ."
:= ." ."

Folosind definiia 3.3 artm c   110110 7


:

(.* , 1  .*
(.* , 11  ((.* , 1 , 1  (.* , 1  .*
(.* , 110  ((.* , 11 , 0  (.* , 0  .
(.* , 1101  ((.* , 110 , 1  (. , 1  ."
(.* , 11011  ((.* , 1101 , 1  (." , 1  ."
(.* , 110110  ((.* , 11011 , 0  (." , 0  ." +  7

Folosind definiia 3.3 artm c "  1100 7


:

(.* , 1  .*
(.* , 11  ((.* , 1 , 1  (.* , 1  .*
(.* , 110  ((.* , 11 , 0  (.* , 0  .
(.* , 1100  ((.* , 110 , 0  (. , 0  . + " 7

Exemplul 3.5: Automatul finit determinist


 , ', (, .* , + accept toate irurile binare
care conin subirul 000, respectiv   1000110 7
, iar "  1001001 7
.

34
Analitic, automatul
 , ', (, .* , + va fi reprezentat astfel:

 0,1
'  .* , . , ." , .? 

funcia de tranziie (:

0 1
:; . .*
:< ." .*
:= .? .*
:@ .? .?

Folosind definiia 3.3 artm c   100011 7


:

(.* , 1  .*
(.* , 10  ((.* , 1 , 0  (.* , 0  .
(.* , 100  ((.* , 10 , 0  (. , 0  ."
(.* , 1000  ((.* , 100 , 0  (." , 0  .?
(.* , 10001  ((.* , 1000 , 1  (.? , 1  .?
(.* , 100011  ((.* , 10001 , 1  (.? , 1  .? +  7

Folosind definiia 3.3 artm c "  1001001 7


:

(.* , 1  .*
(.* , 10  ((.* , 1 , 0  (.* , 0  .
(.* , 100  ((.* , 10 , 0  (. , 0  ."
(.* , 1001  ((.* , 100 , 1  (." , 1  .*
(.* , 10010  ((.* , 1001 , 0  (.* , 0  .
(.* , 100100  ((.* , 10010 , 0  (. , 0  ."
(.* , 1001001  ((.* , 100100 , 1  (." , 1  .* + " 7

Exemplul 3.6: Automatul finit determinist


 , ', (, .* , + accept toate irurile binare
care au un numr par de 0 i un numr impar de 1, respectiv   1001010 7
, iar
"  1011001 7
.

Vom considera '  .* , . , ." , .? , strile avnd urmtoarele semnificaii:


.* : irul conine un numr par de 0 i un numr par de 1;
. : irul conine un numr impar de 0 i un numr par de 1;

." : irul conine un numr impar de 0 i un numr impar de 1;

.? : irul conine un numr par de 0 i un numr impar de 1.

35
Analitic, automatul
 , ', (, .* , + va fi reprezentat astfel:

 0,1
'  .* , . , ." , .? 

funcia de tranziie (:

0 1
:; . .?
:< .* ."
:= .? .
:@ ." .*

Folosind definiia 3.3 artm c   1001010 7


:
(.* , 1  .?
(.* , 10  ((.* , 1 , 0  (.? , 0  ."
(.* , 100  ((.* , 10 , 0  (." , 0  .?
(.* , 1001  ((.* , 100 , 1  (.? , 1  .*
(.* , 10010  ((.* , 1001 , 0  (.* , 0  .
(.* , 100101  ((.* , 10010 , 1  (. , 1  ."
(.* , 1001010  ((.* , 100101 , 0  (." , 0  .? +  7

Folosind definiia 3.3 artm c "  1011001 7


:
(.* , 1  .?
(.* , 10  ((.* , 1 , 0  (.? , 0  ."
(.* , 101  ((.* , 10 , 1  (." , 1  .
(.* , 1011  ((.* , 101 , 1  (. , 1  ."
(.* , 10110  ((.* , 1011 , 0  (." , 0  .?
(.* , 101100  ((.* , 10110 , 0  (.? , 0  ."
(.* , 1011001  ((.* , 101100 , 1  (." , 1  . + " 7

36
3.3. Automate finite nedeterministe

Diferena dintre automatele finite deterministe i cele nedeterministe const n faptul c dintr-
o anumit stare un automat finit nedeterminist poate s treac n mai multe stri, n timp ce
un automat finit determinist poate s treac doar ntr-o singur stare.

Practic, funcia de tranziie este definit prin (: ' - A' . Extinderea funciei de
tranziie ( : ' - ' se va face astfel:

( ., 2  ., . '


B( ),   C (, , . ',  , 6
DEFG,H

Definiia 3.4: Limbajul acceptat de un automat finit nedeterminist


 , ', (, .* , + este
mulimea 7
  |(.* ,  + J .

Exemplul 3.7: Automatul finit nedeterminist


 , ', (, .* , + accept toate irurile binare
care conin subirul 00, respectiv   1101001 7
, iar "  10101 7
.

Analitic, automatul L  , ', (, .* , + va fi reprezentat astfel:

 0,1
'  .* , . , ." 

funcia de tranziie (:

0 1
:; .* , .  .* 
:< ." 
:= ."  ." 

Folosind definiia 3.4 artm c   1101001 7


:
(.* , 1  .* 
(.* , 11  ((.* , 1 , 1  (.* , 1  .* 
(.* , 110  ((.* , 11 , 0  (.* , 0  .* , . 

37
(.* , 1101  ((.* , 100 , 1  (.* , . , 1  (.* , 1 (. , 1 
 .*   .* 
(.* , 11010  ((.* , 1101 , 0  (.* , 0  .* , . 
(.* , 110100  ((.* , 11010 , 0  (.* , . , 0  (.* , 0 (. , 0 
 .* , .  ."   .* , . , ." 
(.* , 1101001  ((.* , 110100 , 1  (.* , . , ." , 1 
 (.* , 1 (. , 1 (." , 1  .*  ."  
 .* , ."  +  ."  J  7

Folosind definiia 3.4 artm c "  10101 7


:
(.* , 1  .* 
(.* , 10  ((.* , 1 , 0  (.* , 0  .* , . 
(.* , 101  ((.* , 10 , 1  (.* , . , 1  (.* , 1 (. , 1 
 .*   .* 
(.* , 1010  ((.* , 101 , 0  (.* , 0  .* , . 
(.* , 10101  ((.* , 1010 , 1  (.* , . , 1  (.* , 1 (. , 1 
 .*   .*  +  " 7

Exemplul 3.8: Automatul finit nedeterminist


 , ', (, .* , + accept toate irurile binare
care ncep cu 0 i se termin cu 1, respectiv   01101 7
, iar "  01010 7
.

Analitic, automatul
 , ', (, .* , + va fi reprezentat astfel:

 0,1
'  .* , . , ." 

funcia de tranziie (:

0 1
:; . 
:< .  . , ." 
:=

Folosind definiia 3.4 artm c   01101 7


:
(.* , 0  . 

38
(.* , 01  ((.* , 0 , 1  (. , 0  . 
(.* , 011  ((.* , 01 , 1  (. , 1  . , ." 
(.* , 0110  ((.* , 011 , 0  (. , ." , 0  (. , 0 (." , 0 
 .   . 
(.* , 01101  ((.* , 0110 , 1  (. , 1  . , ."  + 
 ."  J  7

Folosind definiia 3.4 artm c "  01010 7


:
(.* , 0  . 
(.* , 01  ((.* , 0 , 1  (. , 0  . 
(.* , 010  ((.* , 01 , 0  (. , 0  . 
(.* , 0101  ((.* , 010 , 1  (. , 1  . , ." 
(.* , 01010  ((.* , 0101 , 0  (. , ." , 0  (. , 0 (." , 0 
 .   .  +  " 7

3.4. Echivalena dintre automatele finite deterministe i automatele finite


nedeterministe

Definiia 3.5: Dou automate finite


 i
" sunt echivalente dac ele accept acelai limbaj,
respectiv 7
  7
" .

Observaia 3.3: Evident, orice automat finit determinist poate fi considerat un caz particular
de automat finit nedeterminist.

Teorema 3.1: Orice limbaj acceptat de un automat finit nedeterminist


N este acceptat i de
un automat finit determinist
O echivalent.

Demonstraie:
Vom prezenta doar modalitatea de construcie a automatului finit determinist
O 
Q , 'Q , (Q , .*Q , +Q echivalent cu un automat finit nedeterminist
N  N , 'N , (N , .*N , +N
dat. Astfel, vom considera:

Q  R
'Q  A'R

funcia (Q se va calcula pentru fiecare . 'Q  A'R i pentru fiecare N :

(O .,  C (N S,
DT
.*O .*N 
+Q  . A'N | .+N J 

39
Exemplul 3.9: Considerm un automat finit nedeterminist
N  N , 'N , (N , .*N , +N care

O  Q , 'Q , (Q , .*Q , +Q echivalent.


accept irurile binare care se termin cu 01 i determinm automatul finit determinist

Automatul finit nedeterminist


N  N , 'N , (N , .*N , +N poate fi reprezentat grafic astfel:

Analitic, automatul
N va fi reprezentat astfel:

N  0,1
'N  .*N , . , ." 

+N  ." 

funcia de tranziie (N :

0 1
:V
; .*N , .  .*N 
:< ." 
:=

Automatul finit determinist


O  Q , 'Q , (Q , .*Q , +Q echivalent va fi construit astfel:

Q  N  0,1
'Q  A'R  A)*N , ) , )" 

+Q  W)" , )*N , )" , ) , )" , )*N , ) , )" X

funcia de tranziie (O :

YZ 0 1
A
W:V
;X .*N , .  .*N  B
:<  .*N  C
:=  D
W:V
; , :< X .*N , .  .*N , ."  E
* W:V
; , := X .*N , .  .*N  F
* :< , :=  ."  G
* W:V
; , :< , := X .*N , .  .*N , ."  H

40
Redenumind convenabil strile automatului
O , putem redefini automatul astfel:

Q  0,1
'Q  
, , %, c, d, +, , e

+Q  c, +, , e

funcia de tranziie (O :

YZ 0 1
f

g d
h
c
Z

i d +
* j d
* k
D
* l d +

Observaia 3.4: Prin aplicarea acestei metode, automatul finit determinist echivalent obinut
conine i stri inaccesibile. Simplificarea sa const n determinarea strilor accesibile din
starea iniial, care este ntotdeauna accesibil, i eliminarea strilor inaccesibile.

Se observ uor c automatul


Q nu are decat strile , + i d accesibile, deci restul strilor
pot fi eliminate. Se obine astfel forma final a automatului
Q :

Q  0,1
'Q   , d, +

+Q  +

funcia de tranziie (O :

YZ 0 1
g d
i d +
* j d

Reprezentarea grafic a automatului


Q este urmtoarea:

41
3.5. Echivalena dintre gramaticile regulate i automatele finite nedeterministe

Teorema 3.2: Pentru orice gramatic regulat  se poate construi un automat finit
nedeterminist
care s accepte limbajul generat de gramatica , respectiv   7
.

Demonstraie:

Fie   , , ,  o gramatic regulat i m un simbol nou, respectiv m .


Construim automatul finit nedeterminist echivalent
 o, ', (, .* , + astfel:


'  NX

.*  

+m

funcia de tranziie ( se definete pentru ,   astfel:

 ( ,  %  | %  m | 

 (m,  ,

Exemplul 3.10: Se consider gramatica regulat   , , ,  , unde   ,


, ,  
 , , , iar mulimea produciilor  este urmtoarea:


| | (1)


| | 2
 | 3

Automatul finit nedeterminist


N  N , 'N , (N , .*N , +N echivalent cu gramatica regulat ,
astfel:

R   , , 
'R  ,
, , m

.*N  

+R  m

funcia de tranziie (N :

YV r s t

  , m

  , m
S

 , m
A


B
* X

42
Automatul finit nedeterminist
N poate fi reprezentat grafic astfel:

Se poate observa c limbajul acceptat de automatul finit nedeterminist


N este 7

 #   |$,   0.

Un automat finit determinist echivalent cu automatul finit nedeterminist


N este urmtorul:

3.6. Exerciii propuse

1. Se consider automatul finit determinist A = (,Q,,q0,F), unde = {0,1}, Q={q0,q1,q2,q3},


F={q0,q1,q2}, iar funcia de tranziie este dat n urmtorul tabel:
0 1
q0 q1 q0
q1 q2 q0
q2 q3 q0
q3 q3 q3
a) Artai c w1 = 01001011 T ( A) , dar w2 = 10100010 T ( A) .
b) Reprezentai graficul automatul A.
c) Descriei, pe scurt, limbajul acceptat de ctre automatul A.
d) Scriei o gramatic regulat G echivalent cu A.

43
2. Se consider automatul finit determinist A = (, K , , s 0 , F ) , unde = {0,1},
K = {s 0 , s 1 , s 2 , s3 }, F = {s 3 }, iar funcia de tranziie este dat n tabel urmtor:
0 1
s0 s0 s1
s1 s0 s2
s2 s0 s3
s3 s0 s3
a) Artai c w1 = 0010111 T ( A) i w2 = 101110 T ( A) .
b) Reprezentai grafic automatul A.
c) Descriei limbajul acceptat de ctre automatul A.
d) Scriei o gramatic regulat G echivalent cu automatul A dat.

3. Determinai automatele finit deterministe echivalente cu automatele finit nedeterministe


din exemplele 3.7 i 3.8.

4. Determinai automatele finit deterministe echivalente cu gramaticile regulate din


exemplele 3.1, 3.2 i 3.3.

44