Sunteți pe pagina 1din 6

MODULUL IV

Automate pushdown

4.1. Automate pushdown

Un automat pushdown este, practic, un automat finit nedeterminist prevzut cu o memorie


organizat sub form de stiv.

5 6 8 Banda de intrare
citire de pe banda

Unitatea
de control Memoria pushdown (stiva)
:8

:6
:5

Definiia 4.1: Un automat pushdown P este un sistem   , , , ,


, , , unde:
se numete alfabetul de intrare;
K se numete mulimea strilor;
se numete alfabetul memoriei pushdown
reprezint funcia de tranziie a automatului i este definit astfel:
:      PK  

, ,   +, ,|+ , , 

 !"#$%&'(#'
%&*!('
n funcie de forma irului , se disting urmtoarele trei cazuri:
1) dac ,  , atunci se efectueaz o operaie pop asupra memoriei pushdown;
2) dac ,  / , atunci se nlocuiete simbolul  din vrful stivei cu simbolul /,
fr a se efectua nici o operaie pop sau push;
3) dac ,  / , atunci simbolul  se nlocuiete cu simbolul , iar asupra
simbolului / se efectueaz o operaie push.

 reprezint starea iniial a automatului;
Z se numete simbolul iniial al memoriei pushdown;
F se numete mulimea strilor finale ale automatului.

Definiia 4.2: Spunem c automatul pushdown  trece din configuraia 


, 2, 3 n
configuraia +, 2, ,3 i notm acest lucru prin dac perechea +, , 
, 2, , unde

, + ,  , 2 ,  , 3, , .

45
Definiia 4.3: Notm prin nchiderea tranzitiv i reflexiv a relaiei ce definete
micarea unui automat.

Definiia 4.4: Un automat pushdown  poate s accepte un cuvnt 2 n dou moduri:


1) Spunem c automatul  accept cuvntul w cu stare final dac exist
si 3

astfel nct 
, 2,  
, , 3.
2) Spunem ca automatul  accept cuvntul w cu memorie pushdown vid dac exist


astfel nct 
, 2,  
, , .

Observaia 4.1: n cazul automatelor pushdown care accept cu memorie vid se consider
implicit c  .

Definiia 4.5: Limbajul acceptat de un automat pushdown este format din mulimea tuturor
cuvintelor acceptate de el, indiferent de mod.

Exemplul 4.1: Considerm automatul pushdown   , , , ,


, ,  care s accepte
limbajul <  ! = ! |> ? 0 cu stare final, definit astfel:

 , =
  
,
5 ,
6 
 , 
 

:

, ,   
5 ,  

5 , ,   
5 , 

5 , =,   
6 , 

6 , =,   
6 , 

6 , ,   
, 

Cuvntul 25  === < deoarece:



, ===, :  
5 , ===,   
5 , ===,   
5 , ===,  


6 , ==,   
6 , =,   
6 , ,  
, , 

Observaia 4.2: Automatul  accept cuvntul 25 i cu memorie pushdown vid, dar ar fi


trebuit s avem  .

Cuvntul 26  == < deoarece:



, ==,  
5 , ==,   
5 , ==,   
5 , ==,  


6 , =,   
6 , ,  

46
Observaia 4.3: Cuvntul 25 nu ar fi fost acceptat nici cu memorie pushdown vid, deoarece
am terminat de citit cuvantul, dar nu am golit memoria pushdown.

Exemplul 4.2: Un automat pushdown care accepta limbajul <  22 C |2 , = .
2  D5 D6 D! 2 C  D! D!E5 D5

Observaia 4.4: Se poate demonstra, folosind lema de pompare, c limbajul L nu este regulat
nu exist niciun automat finit care s-l accepte.

Observaia 4.5: Limbajul L este un limbaj independent de context, deoarece este generat de
urmtoarea gramatic independent de context F  G, H, I, :
G  I
H  , =
P: I 
I I
I =I=

Automatul pushdown   , , , ,
, ,  este definit astfel:
 , =
  
,
5 ,
6 
 , =, 
 
6 
:

, ,   
5 ,  

, =,   
5 , = 

, ,   
, 

, =,   
, =

, , =  
, =

, =, =  
, ==

, ,   
5 , 

, , =  
5 , =

, ,   
5 , 

5 , ,   
5 , 

5 , =, =  
5 , 

5 , ,   
6 , 

Fie 25  ==. Atunci:



, ==, :  
, ==,   
, =, =  
5 , =, = 

5 , ,   
5 , ,  
6 , , 
6 25 este acceptat

47
4.2. Construcia unui automat pushdown echivalent cu o gramatic independent de
context

Fie F  G, H, I,  o gramatic independent de context. Construim automatul pushdown


echivalent J  , , , ,
, ,  astfel:
H
  

 G H  
 I
K
Funcia de tranziie se construiete astfel:
 
, , J  
, 3|J 3  pentru J G
 
, ,   
,  pentru  H

Exemplul 4.3: Considerm urmtoarea gramatic independent de context G care genereaz


expresii aritmetice simple n variabila :
F  G, H, I, 
G  I, M, H, 
H  , N, N, 
P: I M 1
M M N H 2
M H 3
H H 4
H 5
M 6
 7

Artm c 2    N   <F:

I
V M
V H
V H
V V  M
V  V  M N H
V  H N H
5 W X Y Z [ 6 W

V   N H
V   N H
V   N H 
V   N 
Y Z X Y

V   N  
V   N  
Z Z

Construim automatul pushdown echivalent:

J  , , , ,
, , 
 , N, N, 
  

 I, M, H, , , N, N, 
 I

48
:

, , I  
, M

, , M  
, M N H, 
, H

, , H  
, H , 
, 

, ,   \]
, M^, 
, _

Fie 2    N  . Atunci:


,   N  , I 
,  N  , M 
,   N  , H


,   N  , H  
,   N  ,  
, 
 N  ,  


,  N  ,  
,  N  ,  
,  N  , M


,  N  , M 
,  N  , M N H 
,  N  , H N H


,  N  , N H 
,  N  ,  N H 
, N , NH

,  , H 
,  , H  
,  ,  
,  , 



, ,  
, ,  
, ,  
, ,  
, , 

4.3. Construcia unei gramatici independente de context echivalent cu un automat


pushdown

Fie J  , , , ,
, ,  un automat pushdown care accept cu memorie vid.
Construim o gramatic independent de context F  G, H, I,  echivalent cu el astfel:

G  I b
+c|
, + ,  
H
mulimea produciilor P se construiete astfel:

, I b

c
 dac 
, ,   +, d5 d6 d8  atunci adugm produciile:
b
e8 c b+/5 e5 cbe5 /6 e6 c be8E5 /8 e8 c, e5 , e6 , , e8  
 dac avem f  0, atunci introducem i producia b
+c 

Exemplul 4.4: Fie limbajul <  01! 0|> ? 1 care este acceptat de automatul pushdown
J  , , , ,
, , , definit astfel:

 , =
  
,
5 ,
6 
 , 

49
:

, 0,   
5 ,  

5 , 1,   
5 , 

5 , 0,   
6 , 

6 , ,   
6 , 

Construim gramatica independent de context F  G, H, I,  echivalent cu J astfel:

G  I b
+c|
, + ,  
T  , =
mulimea produciilor P este urmtoarea:

I b

c
I b

5 c
I b

6 c
b
5 
6 c 0
b
6
6 c 
b
5 
c 1b
5 
c
b
5 
5 c 1b
5 
5 c
b
5 
6 c 1b
5 
6 c
b

c 0b
5 
cb

c
b

5 c 0b
5 
5 cb
5
5 c
b

6 c 0b
5 
6 cb
6
6 c
b

5 c 0b
5 
cb

5 c
b

6 c 0b
5 
cb

6 c
b

c 0b
5 
5 cb
5
c
b

6 c 0b
5 
5 cb
5
6 c
b

c 0b
5 
6 cb
6
c
b

5 c 0b
5 
6 cb
6
5 c

Gramatica F  G, H, I, se poate simplifica, astfel obinndu-se:

G  I, b

6 c, b
5 
6 c, b
6
6 c, b
5 
6 c
T  , =
mulimea produciilor P este urmtoarea:

I b

6 c
b
5 
6 c 0
b
6
6 c 
b
5 
6 c 1b
5 
6 c
b

6 c 0b
5 
6 cb
6
6 c

50