Sunteți pe pagina 1din 5

3.1.

Automate Push-down
Vom introduce un nou tip de dispozitiv care s accepte limbajele I.D.C., numit
automat push-down.
Un automat push-down are, pe lng o band de intrare, i o stiv (o list LIFO).
ntr-o astfel de stiv, intrarea i ieirea unui simbol se face numai la capul stivei. Cnd un
simbol intr n stiv, simbolul care anterior a fost capul stivei devine al doilea, cel care a
fost al doilea devine al treilea .a.m.d. n mod similar, cnd un simbol este scos din stiv,
simbolul care anterior acestei scoateri era al doilea, ajunge n capul stivei, cel care era al
treilea devine al doilea .a.m.d.
O astfel de stiv se poate compara cu un teanc de farfurii n care se ridic sau se
pune o farfurie deasupra teancului.
Exemplul 3.1.1 S utilizm o stiv de "farfurii", cuplat cu un control finit pentru a
recunoate o mulime neregulat.
~ | w {0,1}

Fie limbajul I.D.C. L={ wcw


}, care nu este regulat (posibil de
demonstrat acest lucru folosind lema de pompare) i fie gramatica
G=({S},{0,1,c},S,P)
unde mulimea regulilor este P={S 0S0, S 1S1, S c} .
Pentru a recunoate limbajul L, vom utiliza un control finit cu dou stri q1 i q2 i
o memorie push-down pe care vom plasa "farfurii" albastre, roii i verzi. Dispozitivul va
opera dup urmtoarele reguli:
Maina pornete cu o farfurie roie pe stiv i cu controlul finit n starea q1.
Dac simbolul de intrare este 0 i starea este q1, dispozitivul plaseaz o farfurie albastr pe
stiv, iar dac simbolul de intrare este 1 i starea q1, atunci plaseaz o farfurie verde pe
stiv i, n ambele cazuri, rmne n starea q1.
Dac intrarea este c i starea q1, i schimb starea n q2 fr a aciona asupra stivei.
Dac intrarea este 0, starea q2 i pe stiv se afl o farfurie albastr, scoate farfuria i
rmne n q2, iar dac este 1, starea q2 i pe stiv este o farfurie verde, scoate farfuria i
rmne tot n q2.
Dac dispozitivul este n starea q2 i pe stiv este o farfurie roie, scoate farfuria indiferent
de intrare.
n alte situaii dispozitivul nu face nici o micare.
Dispozitivul accept irul de intrare dac, dup citirea lui, stiva devine goal.
Vom defini un automat push-down ca fiind un dispozitiv format din: band de
intrare, control finit i memorie push-down (stiv), precum n Figura 3.1.1..
aiBanda de intrare

CONTROL
FINIT (Q)

ZCapul stiveiZ0Figura 3.1.1

Dispozitivul este nedeterminist, avnd un numr finit de anse de micare n


fiecare situaie. Micrile vor fi de dou tipuri:
- tranziie cu simbol de intrare: n funcie de simbolul de intrare, de captul stivei i de
starea controlului finit, sunt posibile anumite micri care constau fiecare din: o nou
stare a controlului finit i un ir (posibil vid) de simboluri care nlocuiete capul stivei.
Dup alegerea unei micri posibile, dispozitivul avanseaz cu un simbol pe banda de
intrare.
- "-tranziie" : este similar cu micarea tip I., dar nu e utilizat nici un simbol de intrare.
Limbajul acceptat de un automat push-down se poate defini n dou moduri:
mulimea irurilor de intrare care conduc la golirea memoriei push-down sau
mulimea irurilor de intrare pentru care automatul intr ntr-o stare final.
Cele dou tipuri de acceptri sunt echivalente.
Formal, un automat push-down se definete prin:
Definiia 3.1.1 Un automat push-down nedeterminist, M, este un sistem format din:
M = (Q, , , , q 0 , Z 0 , F) ,
unde:
Q este o mulime finit de stri
este un alfabet finit al benzii de intrare
este un alfabet finit al memoriei push-down
q 0 Q stare iniial
Z 0 simbol de start al memoriei push-down
F Q mulimea strilor finale
: Q ( ) P (Q * )
(q, a, Z) {(p1 , 1 ), (p 2 , 2 ),..., (p m , m )} ,
Interpretarea
expresiei
unde
*
q, p i Q, a , Z , i , i 1, m , este aceea c automatul push-down aflat n starea q,
cu a pe banda de intrare i Z n capul stivei, poate trece ntr-una din strile pi nlocuind pe
Z cu i i apoi avanseaz cu un simbol pe banda de intrare.
(q, , Z) {(p1 , 1 ), (p 2 , 2 ),..., (p m , m )} ,
Interpretarea
expresiei
unde
*
q, p i Q, Z , i , i 1, m , este aceea c automatul push-down aflat n starea q i
avnd pe Z n capul stivei, indiferent de simbolul aflat pe banda de intrare i schimb
starea ntr-una din strile pi i nlocuiete pe Z cu i fr s avanseze pe banda de intrare.
Exemplul 3.1.2
n exemplul anterior, automatul push-down accept limbajul {
~ | w {0,1}
wcw
} prin memorie vid (v.definiia 3.1.4). S descriem formal acest
automat.

M=({q1,q2},{0,1,c},{R,A,V},,q1,R, )

(q1 ,0, R) {(q1 , AR)}


(q ,1, R) {(q , VR)}
1
1

(q1 ,0, A) {(q 1 , AA)}

(q1 ,0, V) {(q 1 , AV)}


(q1 ,1, A) {(q 1 , VA)}

(q1 ,1, V) {(q 1 , VV)}

(q1 , c, A) {(q 2 , A)}

(q1 , c, V) {(q 2 , V)}


(q1 , c, R) {(q 2 , R)}

(q 2 ,0, A) {(q 2 , )}
(q 2 ,1, V) {(q 2 , )}

(q 2 , , R) {(q 2 , )}

Observaia 3.1.1 Automatul din Exemplul 3.1.2 este determinist pentru c are o singur
posibilitate de micare la fiecare pas.
Un astfel de automat, idiferent dac este determinist sau nedeterminist, se poate i
el reprezenta printr-o diagram de tranziie[23], similar cu cea pentru automatul finit, cu
excepia faptului ca una dintre etichetele unui arc ntre starea p i starea q, este de forma:
(a, A BC) dac
(q, BC) (p,a,A)
sau, folosind forma din [13]:
(a, A, BC)
dac
(q, BC) (p,a,A)
S considerm automatul push-down, definit printr-o diagram de tranziie, din figura
2.3.2, care recunoate cuvintele limbajului:
{anbn | n 0}.
0, Z0 AZ0

0, A AA
p
q

, Z0

Figura 3.2.2

1, A
r
p
q

s
r
p
q
configuraie

1, A

, Z0
Definiia 3.1.2 O
instantanee este o pereche (q, ) , unde q Q i * ,
unde cel mai din stnga simbol al lui este vrful stivei push-down, iar reprezint
coninutul stivei.
Dac a {} , , * , Z i (p, ) (q, a, Z) , atunci scriem:
a : (q,Z) M (p,) (Intrarea "a" trece automatul M din (q,Z) n (p,).)
*
Dac pentru fiecare a 1 ..., a n {} , q 1 ,..., q n 1 Q i irurile 1 ,..., n 1
, avem:
*
ai : (qi,i) M (qi+1,i+1) i 1, n , atunci scriem: a1 an : (q1,1) M (qi+1,i+1)
Similar, se poate folosi descrierea instantanee, constituit din tripletul q, aw, Z
q, aw, Z M (p,w,) dac (p, ) (q, a, Z) .
i atunci scriem:
Definiia 3.1.3 Limbajul acceptat prin stri finale de ctre automatul M este

L(M) {w w , (q0 , w, Z0 ) p, , , , p F}
*

Definiia 3.1.4 Limbajul acceptat prin stiv vid de ctre automatul M este

N(M) {w w *, (q0 , w, Z0 ) p, , , p Q}
*

Exemplul 3.1.3
S construim automatul push-down care accept limbajul {
~ | w {0,1}
ww
}.

M=({q1,q2},{0,1},{z0,A,B},,q1,Z0, )

(q1 ,0, Z0 ) {(q1 , AZ0 )}


(q ,1, Z ) {(q , BZ )}
1
0
1
0

(q1 ,0, A) {(q1 , AA), (q 2 , )}

(q1 ,0, B) {(q1 , AB)}


(q1 ,1, A) {(q1 , BA)}

(q1 ,1, B) {(q1 , BB), (q 2 , )}

(q 2 ,0, A) {(q 2 , )}

(q 2 ,1, B) {(q 2 , )}

(q1 , , Z 0 ) {(q1 , )}
(q 2 , , Z 0 ) {(q 2 , )}

Spre exemplu, irul de intrare 001100 este acceptat de automatul push-down


deoarece exist un calcul de configuraii care se finalizeaz prin golirea memoriei pushdown dup citirea benzii de intrare:
(q1 ,001100, Z 0 ) M (q1 ,01100, AZ0 ) M (q1 ,1100, AAZ0 ) M
M (q1 ,100, BAAZ0 ) M (q 2 ,00, AAZ0 ) M (q 2 ,0, AZ 0 ) M
(q 2 , , Z 0 ) M
+EMBED Equation.3 M (q 2 , , ) ,
deci 001100 N(M) .
Problema care apare n acest exemplu este de a determina mijlocul cuvntului de
pe banda de intrare. Pentru determinarea mijlocului, singura condiie cunoscut este de a
avea pe banda de intrare doi de 0 consecutivi sau doi de 1 consecutivi. ns aceast
condiie nu determin n mod precis mijlocul cuvntului de intrare, situaia nefiind unic.
Astfel, automatul push-down poate "bnui" c a ajuns la mijlocul cuvntului de intrare ori
de cte ori apar doi de 0 sau doi de 1 consecutivi. Deci, de cte ori automatul ntlnete
dou simboluri identice pe banda de intrare, are de ales ntre dou variante: "bnuiete" c
aici este mijlocul i trece n starea q2, care ncepe s tearg stiva, sau "bnuiete" c nu
este la mijloc i continu s memoreze n stiv. Dac a "bnuit" corect atunci va reui si goleasc stiva.
De aici apare nedeterminismul.
Observaia 3.1.2
a) Un automat push-down este determinist dac sunt ndeplinite urmtoarele condiii:
- pentru fiecare q Q, a i Z corespunztoare, (q, a, Z) nu conine mai mult de
un element;
- pentru fiecare q Q i Z , dac (q, , Z) atunci (q, a, Z) , a
(aceste condiii evit situaia n care ar fi posibile att o -mutare ct i o mutare nevid,
genernd astfel nedeterminism).

b) Pentru automatele push-down n general, modelul determinist i cel nedeterminist nu


sunt echivalente. Acest lucru se demonstreaz n 3.9., seciune dedicat limbajelor
independente de context deterministe