6
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 lângă o bandă de intrare, şi o stivă (o listă LIFO). Într-o astfel de stivă, intrarea şi ieşirea unui simbol se face numai la capul stivei. Când 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, când 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ă utilizăm o stivă de "farfurii", cuplată cu un control finit pentru a recunoaşte o mulţime neregulată. Fie limbajul I.D.C. L={ }, care nu este regulat (posibil de demonstrat acest lucru folosind lema de pompare) şi fie gramatica G=({S},{0,1,c},S,P) unde mulţimea regulilor este P= . Pentru a recunoaşte limbajul L, vom utiliza un control finit cu două stări q 1 şi q 2 şi o memorie push-down pe care vom plasa "farfurii" albastre, roşii şi verzi. Dispozitivul va opera după următoarele reguli: Maşina porneşte cu o farfurie roşie pe stivă şi cu controlul finit în starea q 1 . Dacă simbolul de intrare este 0 şi starea este q 1 , dispozitivul plasează o farfurie albastră pe stivă, iar dacă simbolul de intrare este 1 şi starea q 1 , atunci plasează o farfurie verde pe stivă şi, în ambele cazuri, rămâne în starea q 1 . Dacă intrarea este c şi starea q 1 , îşi schimbă starea în q 2 fără a acţiona asupra stivei. Dacă intrarea este 0, starea q 2 şi pe stivă se află o farfurie albastră, scoate farfuria şi rămâne în q 2 , iar dacă

3.1.Automate Pushdown

Embed Size (px)

DESCRIPTION

2.6.Expresii Regulate Si Automate Finite

Citation preview

3

3.1. Automate Push-down

Vom introduce un nou tip de dispozitiv care s accepte limbajele I.D.C., numit automat push-downxe "automat:push-down determinist".

Un automat push-downxe "automat:push-down determinist" are, pe lng o band de intrare, i o stivxe "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 stivxe "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 stivxe "stiv" de "farfurii", cuplat cu un control finit pentru a recunoate o mulime neregulat.

Fie limbajul I.D.C. L={}, 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=.

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 stivxe "stiv" i cu controlul finit n starea q1.

Dac simbolul de intrare este 0 i starea este q1, dispozitivul plaseaz o farfurie albastr pe stivxe "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 stivxe "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 stivxe "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-downxe "automat:push-down determinist" ca fiind un dispozitiv format din: band de intrare, control finit i memorie push-down (stivxe "stiv"), precum n Figura 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-downxe "automat:push-down determinist" 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-downxe "automat:push-down determinist" se definete prin:

Definiia 3.1.1 Un automat push-downxe "automat:push-down determinist" nedeterministxe "automat:push-down nedeterminist", M, este un sistem format din:

M = ,

unde:

Q este o mulime finit de stri

este un alfabet finit al benzii de intrare

este un alfabet finit al memoriei push-down

stare iniial

simbol de start al memoriei push-down

mulimea strilor finale

Interpretarea expresiei , unde , 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 apoi avanseaz cu un simbol pe banda de intrare.

Interpretarea expresiei , unde , 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 fr s avanseze pe banda de intrare.

Exemplul 3.1.2 n exemplul anterior, automatul push-down accept limbajul {} prin memorie vid (v.definiia 3.1.4). S descriem formal acest automat.

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

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 tranziiexe "diagram:de tranziie", din figura 2.3.2, care recunoate cuvintele limbajului:

{anbn | n 0}.

Definiia 3.1.2 O configuraie instantanee este o pereche , unde i , unde cel mai din stnga simbol al lui este vrful stivei push-down, iar reprezint coninutul stivei.

Dac , , , i , atunci scriem:

a : (q,Z) (p,) (Intrarea "a" trece automatul M din (q,Z) n (p,).)

Dac pentru fiecare , i irurile , avem:

ai : (qi,i) (qi+1,i+1) , atunci scriem: a1 an : (q1,1) (qi+1,i+1)

Similar, se poate folosi descrierea instantaneexe "descrierea instantanee", constituit din tripletul i atunci scriem:

(p,w,) dac (p, ).

Definiia 3.1.3 Limbajul acceptat prin stri finalexe "Limbajul acceptat:prin stri finale" de ctre automatul M este

EMBED Equation.3.

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

EMBED Equation.3.

Exemplul 3.1.3 S construim automatul push-down care accept limbajul {}.

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

Spre exemplu, irul de intrare 001100 este acceptat de automatul pushdown deoarece exist un calcul de configuraii care se finalizeaz prin golirea memoriei push-down dup citirea benzii de intrare:

EMBED Equation.3

EMBED Equation.3

EMBED Equation.3

EMBED Equation.3

EMBED Equation.3

EMBED Equation.3

EMBED Equation.3+

,

deci 001100. 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 stivxe "stiv". Dac a "bnuit" corect atunci va reui s-i goleasc stiva. De aici apare nedeterminismul.

Observaia 3.1.2

a) Un automat push-downxe "automat:push-down determinist" este deterministxe "automat:push-down determinist" dac sunt ndeplinite urmtoarele condiii:

- pentru fiecare corespunztoare, nu conine mai mult de un element;

- pentru fiecare , dac atunci (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

aiBanda de intrare

ZCapul stiveiZ0Figura 3.1.1

CONTROL

FINIT (Q)

Figura 3.2.2

q

pq

0, A AA

1, A

srpq

rpq

1, A

, Z0

0, Z0 AZ0

, Z0

_1264673499.unknown

_1264673515.unknown

_1264673523.unknown

_1264673527.unknown

_1264673531.unknown

_1264673533.unknown

_1264673534.unknown

_1264673535.unknown

_1264673532.unknown

_1264673529.unknown

_1264673530.unknown

_1264673528.unknown

_1264673525.unknown

_1264673526.unknown

_1264673524.unknown

_1264673519.unknown

_1264673521.unknown

_1264673522.unknown

_1264673520.unknown

_1264673517.unknown

_1264673518.unknown

_1264673516.unknown

_1264673507.unknown

_1264673511.unknown

_1264673513.unknown

_1264673514.unknown

_1264673512.unknown

_1264673509.unknown

_1264673510.unknown

_1264673508.unknown

_1264673503.unknown

_1264673505.unknown

_1264673506.unknown

_1264673504.unknown

_1264673501.unknown

_1264673502.unknown

_1264673500.unknown

_1264673483.unknown

_1264673491.unknown

_1264673495.unknown

_1264673497.unknown

_1264673498.unknown

_1264673496.unknown

_1264673493.unknown

_1264673494.unknown

_1264673492.unknown

_1264673487.unknown

_1264673489.unknown

_1264673490.unknown

_1264673488.unknown

_1264673485.unknown

_1264673486.unknown

_1264673484.unknown

_1264673474.unknown

_1264673478.unknown

_1264673481.unknown

_1264673482.unknown

_1264673479.unknown

_1264673476.unknown

_1264673477.unknown

_1264673475.unknown

_1264673470.unknown

_1264673472.unknown

_1264673473.unknown

_1264673471.unknown

_1264673468.unknown

_1264673469.unknown

_1264673467.unknown