Automatas de Pila-2

30
Aut´ omatas de Pila 1 Aut´ omatas de Pila Aut´omatas de Pila determinista Denici´ on 1 Un aut´ omata de pila determinista (AFPD) es una 7-upla, P = (Q, Σ, Γ, ,q 0 ,T,Z  ) donde: 1. Q es un conjunto nito de estados. 2. Σ es el alfabeto de entrada. 3. Γ es el alfabeto de la pila. 4. q 0 Q es el estado inicial. 5. Z Γ s ´ ımbolo inicial de la pila.

Transcript of Automatas de Pila-2

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 1/30

Automatas de Pila 1

Automatas de Pila

Automatas de Pila determinista

Definicion 1

Un aut´ omata de pila determinista  (AFPD) es una 7-upla,

P  = (Q,Σ,Γ,, q0, T ,Z  ) donde:

1. Q es un conjunto finito de estados.

2. Σ es el alfabeto de entrada.

3. Γ es el alfabeto de la pila.

4. q0 ∈ Q es el estado inicial.

5. Z ∈ Γ sımbolo inicial de la pila.

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 2/30

Automatas de Pila 2

6. T  ⊆ Q conjunto de estados finales.

7. es la funcion de transicion tal que:

: Q × (Σ ∪ {}) × Γ → (Q × Γ∗)

Observacion 1

1. En un momento, la unidad de control del automata esca-nea un sımbolo a sobre la cinta de entrada y el sımbolo s

en el tope de la pila.

(q,a,s) = (q, γ )

Este paso computacional representa: La unidad de control

pasa a q y se mueve a la derecha en la cinta de entrada,

borra el sımbolo s del tope, escribe la cadena γ  y pasa a

escanear el nuevo tope.

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 3/30

Automatas de Pila 3

Definicion 2

Casos especiales de transiciones.

1. (q,a,s) = (q, s). El contenido de la pila no se altera.

2. (q,a,s) = (q, ) el sımbolo s en el tope de la pila se

borra, y el control finito pasa a escanear el nuevo tope de

la pila, que es el sımbolo colocado inmediatamente debajo

de s.

3. (q,,s) = (q, γ ) Esta es una transicion o transicion

espontanea. El sımbolo sobre la cinta no se procesa y launidad de control no se mueve a la derecha, pero el tope

s de la pila es reemplazado por la cadena γ .

Observacion 2

a ) Para garantizar el determinismo,

(q,a,s) y (q,,s) con a ∈ Σ, q ∈ Q y s ∈ Γno pueden estar simultaneamente definidos ( de lo

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 4/30

Automatas de Pila 4

contrario el automata tendrıa una opcion no determi-

nista).

b) Las transiciones en un AFPD permiten que el automa-

ta cambie el contenido de la pila, sin procesar (o con-

sumir) sımbolos sobre la cinta de entrada.

c) En el modelo AFDP se permite que la transicion

(q,a,s) no este definida, para algunos valores q ∈

Q, a ∈ Σ, s ∈ Γ.d ) El determinismo se da cuando no hay alternativas de

movimiento para el mismo estado, usando la misma

entrada y el mismo sımbolo de pila.

e) La definicion de la funcion de transicion requiere

que haya por lo menos un sımbolo en la pila. No hay

computos con la pila vacıa.

Lenguaje aceptado por un AP

Existen dos criterios para determinar el lenguaje aceptado por

un AP:

1. Sea P  = (Q,Σ,Γ,, q0, T ,Z  ) un automata de pila, en-

tonces L(P ),el lenguaje aceptado por un P  por estadofinal, es:

L(P ) = {w ∈ Σ∗ : (q0,w ,Z  ) ∗ ( p,,β )}

donde, p ∈ T, β ∈ Γ∗

El contenido de la pila es irrelevante.

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 5/30

Automatas de Pila 5

(q0,w ,Z  ): configuracion inicial.

( p,,β ): configuracion de aceptacion.

2. Sea la sextupla P  = (Q,Σ,Γ,, q0, Z ) un automata de

pila, entonces N (P ),el lenguaje aceptado por un P  por

pila nula o pila vacıa:

N (P ) = {w ∈ Σ∗ : (q0,w ,Z  ) ∗ ( p,,)}

donde, p ∈ Q

N(P) es el conjunto de entradas w que P  puede

consumir, vaciando al mismo tiempo su pila.

Ejemplo 1

Sea L = {a

i

b

i

: i ≥ 1} sobre Σ = {a, b}.

Solucion: La idea es copiar las aes en la pila y borrar una

a por cada b que sea leıda en la cinta. Una cadena es acepta-

da si es procesada completamente y en la pila solo queda el

marcador en el fondo Z .

(q0,a ,Z  ) = (q0, AZ )

(q0,a ,A) = (q0, AA)

(q0, b ,A) = (q1, )

(q1, b ,A) = (q1, )

(q1, ,Z  ) = (q2, Z )

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 6/30

Automatas de Pila 6

Sea w = aabb veamos el procesamiento de la cadena:

(q0,aabb,Z ) (q0,abb,AZ ) (q0,bb,AAZ )

(q1,b,AZ ) (q1, ,Z  )

(q2, ,Z  )

La ultima es una configuracion de aceptacion por tanto w es

acepatada.

Sea w = aabbb

(q0,aabbb,Z ) (q0,abbb,AZ ) (q0,bbb,AAZ )

(q1,bb,AZ ) (q1, b ,Z  )

(q2, b ,Z  )

La cadena no se ha proceado completamente y (q2, b ,Z  ) no

es una configuracion de aceptacion, por tanto w no es acep-

tada.

La ultima transicion realizada:

(q1, b ,Z  ) (q1,b,Z ) (q2, b ,Z  )

Si en el AP esta la transicion (q1, ,Z  ) y la transicion (q1, b ,Z  )

el automata no serıa determinista, ademas por que si estuvie-ra se podrıa tener una solucion no determinista.

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 7/30

Automatas de Pila 7

Sea w = aaabb

(q0,aaabb,Z ) (q0,aabb,AZ ) (q0,abb,AAZ )

(q0,bb,AAAZ ) (q1,b,AAZ )

(q1,,AZ )

A pesar que la cadena se proceso completamente (q1,,AZ )

no es una configuracion de aceptacion, por tanto w no es acep-tada.

Podemos construir el mismo AFDP pero por vaciado de pila

de manera facil, en vez de la transicion (q1, ,Z  ) = (q2, Z ),

usamos (q1, ,Z  ) = (q2, ).

(q0,a ,Z  ) = (q0, AZ )(q0,a ,A) = (q0, AA)

(q0, b ,A) = (q1, )

(q1, b ,A) = (q1, )

(q1, ,Z  ) = (q2, )

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 8/30

Automatas de Pila 8

Sea w = aabb veamos el procesamiento de la cadena:

(q0,aabb,Z ) (q0,abb,AZ ) (q0,bb,AAZ )

(q1,b,AZ ) (q1, ,Z  )

(q2, , )

se procesa la palabra por completo y se vacıa la pila.

Ejemplo 2

Podemos construir un AFPD que reconozca:

L = {xnym : n,m ≥ 0, n ≥ m}

(q0, ,Z  ) = (q1, Z )

(q1,x ,) = (q1, x)

(q1, y ,x) = (q2, )

(q2, y ,x) = (q2, )

(q2, ,Z  ) = (q3, Z )

Sea w = xxx

(q0,xxx,Z ) (q1,xxx,Z ) (q1,xx,xZ )

(q1,x,xxZ ) (q1,,xxxZ )

La pila quedo llena xxxZ  y el automata en el estado q1

re-concio por completo la cadena.

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 9/30

Automatas de Pila 9

Sea w = xxy

(q0,xxy,Z ) (q1,xxy,Z ) (q1,xy,xZ )

(q1,y,xxZ ) (q2,,xZ )

Aunque la pila no quedo del todo vacıa (quedo xZ ) se reco-

nocio toda la cadena completa y el automata quedo en un

estado de aceptacion q2

.

Sea w = xxyy

(q0,xxyy,Z ) (q1,xxyy,Z ) (q1,xyy,xZ )

(q1,yy,xxZ ) (q2,y,xZ ) (q2, ,Z  )

(q3, ,Z  )

La cadena es procesada por completo, en la pila queda elsımbolo inicial de pila y por tanto la cadena es aceptada.

Sea w = xyy

(q0,xyy,Z ) (q1,xyy,Z ) (q1,yy,xZ )

(q2, y ,Z  )

A pesar de que se esta en un estado de aceptacion la cadena nose termino de escanear, la transicion (q2, y ,Z  ) no esta definida

en este automata. Por tanto la cadena no es reconocida por

el automata.

Observacion 3

El lenguaje:

L = {wwI  | w ∈ {a, b}∗}

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 10/30

Automatas de Pila 10

es un LIC que no puede ser reconocido por ningun AFDP.

El problema es que cuando se cuando se esta leyendo la cade-

na sımbolo a sımbolo no se sabe cuando esta en la mitad de

la cadena y cuando hay que pasar de meter sımbolos a sacar.

Ejemplo 3

El AFDP que acepta el lenguaje:

L = {wcwI  : w ∈ {a, b}∗}

La GIC es:

S  → SaS  | SbS  | c

Son varias ideas:

1. Cuando hay una a en la cinta de entrada y una B en el

tope de la pila, el automata ya escaneo una b, por tanto

se debe colocar en la pila AB para poder escanear ab

despues de la c. Similarmente pasa cuando b esta en la

cinta y en el tope de la pila esta A.

2. Cuando el automata recorre toda la cadena de la parte

izquierda al pasar por c deja la pila como esta y cambiade estado.

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 11/30

Automatas de Pila 11

(q0,a ,Z  ) = (q0, AZ )

(q0, b ,Z  ) = (q0, BZ )

(q0, c ,Z  ) = (q2, Z )(acepta la cadena c)

(q0,a ,A) = (q0, AA)

(q0, b ,B) = (q0, BB)

(q0,a ,B) = (q0, AB)

(q0, b ,A) = (q0, BA)

(q0, c ,A) = (q1, A)

(q0, c ,B) = (q1, B)

(q1,a ,A) = (q1, )

(q1, b ,B) = (q1, )

(q1, ,Z  ) = (q2, Z )

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 12/30

Automatas de Pila 12

Definicion 3

Un lenguaje L se dice que es independiente de contexto

determinista si y solo si es aceptado por un automata

de pila determinista por el criterio de estados finales.

Teorema 1

Si L es un lenguaje aceptado por un AFPD P  por elcriterio de pila vacıa, entonces existe otro AFPD

P  que acepta el lenguaje por el criterio de estados

finales.

Observacion 4

El resultado inverso no es cierto, hay lenguajes que son acep-

tados por AFPD por el criterio de estado final que no puedenser aceptados por el criterio de pila vacıa.

Ejemplo 4

Sea el siguiente AFPD sobre Σ = {a, b} que reconoce el mis-

mo numero de aes que de bes, T  = {q1}.

(q0,a ,A) = (q0, AA)

(q0, b ,B) = (q0, BB)

(q0,a ,B) = (q0, )

(q0, b ,A) = (q0, )

(q0, ,Z  ) = (q1, Z )

(q1,a ,Z  ) = (q0, AZ )

(q1, b ,Z  ) = (q0, BZ )

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 13/30

Automatas de Pila 13

Este AFDP no se puede construir por el criterio de pila vacıa,

si este automata lo convertimos al criterio de pila vacıa no

reconocerıa cadenas como,w = aabbab, solo reconocerıa hasta

aabb y quedarıa la pila vacıa.

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 14/30

Automatas de Pila 14

Sea w = aabbab

(q0,aabbab,Z ) (q1,aabbab,) (q0,abbab,A)

(q0,bbab,AA) (q0,bab,A)

(q0,ab,)

la pila se quedarıa vacıa y no podrıa seguir funcionando, por

tanto no reconoe w = aabbab

Teorema 2

Si L es un lenguaje regular, entonces L = L(P )

para algun AFDP.

Un AFDP puede simular un AFD, el AFDP introduce algun

sımbolo Z  en su pila por que debe tenerla, pero la ignora y

solo ve el estado. Formalmente sea:M = (Q,Σ, q0, δM , T ) un AFD

Construimos

P  = (Q,Σ, q0, {Z }, δP , q0,Z ,T  ) un AFD

donde Γ = Z , definiendo δP (q,a,Z ) = {( p,Z )} para todos

los estados p y q en Q, tales que δM (q, a) = p, entoncesdecimos que:

(q0,w ,Z  ) P  ( p,,Z ) si y solo siδM (q, a) = p

Es decir, P  simula M  usando su estado.

Observacion 5

Puesto que M  y P  aceptan terminando en uno de los estadosde T , concluimos que sus lenguajes son identicos.

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 15/30

Automatas de Pila 15

Observacion 6

Si queremos que un AFDP acepte por pila vacıa. Su capacidad

de reconocimiento de lenguajes resulta bastante limitada.

Definicion 4

Un lenguaje L se dice que tiene la propiedad del prefijo

si no hay dos cadenas diferentes x, y ∈ L tales que x es un

prefijo de y.

Ejemplo 5

El lenguaje {wcwI } tiene la propiedad del prefijo, es decir no

es posible que existan dos cadenas wcwI  y xcxI , una de las

cuales es prefijo de la otra, a menos que sea la misma cadena.

Ejemplo 6

El lenguaje {0∗} no tiene la propiedad del prefijo, existen

pares de cadenas en este lenguaje una de las cuales es prefijo

de la otra.

Teorema 3

Un lenguaje L es N (P ) para algun AFDP P  si y solo

si L tiene la propiedad del prefijo y L es L(P 

)para algun AFDP P .

Observacion 7

Si tenenemos un lenguaje L, independiente del contexto

determinista que no cumple la propiedad del prefijo es

facil transformarlo en otro lenguaje similar que cumple la

propiedad del prefijo y puede ser aceptado por un automa-ta con pila determinista por el criterio de pila vacıa.

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 16/30

Automatas de Pila 16

Basta con considerar un sımbolo $ /∈ L y entonces el

lenguaje viene dado por:

L{$} = {x$ : x ∈ L}

$ es un sımbolo de fin de palabra.

Observacion 8

Un lenguaje L puede ser aceptado por un automata con piladeterminista por el criterio de pila vacıa si y solo si puede ser

aceptado por un automata de pila determinista por el criterio

de estados finales y L tiene la propiedad del prefijo.

Ejemplo 7

Sea L = {0∗} entonces podemos obtener:

L$ = {0$, 02$, 03$, . . .}

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 17/30

Automatas de Pila 17

Automatas con pila no- deterministas (AFPN

Definicion 5

1. Un automata finito con pila no determinista (AFPN)

consta de los mismos parametros de un AFPD,P  = (Q,Σ,Γ,, q0, T ,Z  )

donde la funcion de transicion es de la forma:

: Q × (Σ ∪ {}) × Γ → Pf (Q × Γ∗)

donde Pf (Q× Γ∗) es un conjunto de subconjuntos finitos

de Q × Γ∗.

2. Para q ∈ Q, a ∈ Σ ∪ {} y s ∈ Γ

(q,a,s) = {(q1, γ 1), (q2, γ 2), . . . , (qn, γ n)}

Donde γ i ∈ Γ∗

Observacion 9

A diferencia de los AFDP, en los AFPN las transiciones ,

(q,,s) no tiene restriccion alguna.

Ejemplo 8

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 18/30

Automatas de Pila 18

Disenar un AFPN que acepte el lenguaje {aibi : i ≥ 0} sobre

Σ = {a, b}.

(q0,a ,Z  ) = (q0, AZ )

(q0, ,Z  ) = (q2, Z )(acepta )

(q0,a ,A) = (q0, AA)

(q0, b ,A) = (q1, )

(q1, b ,A) = (q1, )(q1, ,Z  ) = (q2, Z )

El no determinismo se da por la presencia simultanea de:

(q0,a ,Z  ) y (q0, ,Z  )

Podemos construir un AFPN por el criterio de pila vacıa:

1. Quitamos la transicion (q0, ,Z  ) = (q2, Z ).

2. Agregamos la transicion (q0, ,Z  ) = (q1, Z ).

3. Hacemos un cambio en la transicion (q1, ,Z  ) = (q2, Z )

por (q1, ,Z  ) = (q2, )

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 19/30

Automatas de Pila 19

La cadena vacıa se reconoce con las siguientes transiciones:

(q0, ,Z  ) (q1, ,Z  ) (q2, , )

Sea w = aabb

(q0,aabb,Z ) (q0,abb,AZ ) (q0,bb,AAZ )

(q1,b,AZ ) (q1, ,Z  )

(q2, , )

Ejemplo 9

Se puede construir un AFPN que reconozca:

{wwR : w ∈ Σ∗}

para Σ = {a, b}

El no determinismo se usa para permitirle al automata adivi-

nar cual es la mitad de la cadena de entrada.

1. Si acierta, procede a comparar el resto de la cadena de

entrada con los sımbolos acumulados en la pila.

2. Si no acierta el automata seguira acumulando sımbolosen la pila y no habra aceptacion.

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 20/30

Automatas de Pila 20

(q0,a ,Z  ) = (q0, AZ )

(q0, b ,Z  ) = (q0, BZ )

(q0, ,Z  ) = (q2, Z )(acepta )

(q0,a ,A) = {(q0, AA), (q1, )}

(q0, b ,B) = {(q0, BB), (q1, )}

(q0,a ,B) = (q0, AB)

(q0, b ,A) = (q0, BA)

(q1,a ,A) = (q1, )

(q1, b ,B) = (q1, )

(q1, ,Z  ) = (q2, Z )

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 21/30

Automatas de Pila 21

Automatas con pila y LIC

Teorema 4

Si L = L(P ) para algun automata con pila AFPN P ,

entoncesL = N (P 

)para algun AFPN

. Es decir,

P  acepta por pila vacıa lo que P  acepta por estado

final.

Demostracion:

Sea P  = (Q,Σ,Γ,, q0, T ,Z  ), P  se disena modificando P 

de tal manera que vacıe su pila cuando P  haya aceptado una

cadena de entrada.

P  = {Q ∪ { p0, p}, p0,Σ,Γ ∪ {Z 0}, Z 0, δ}

1) Se anaden p0 estado inicial y p.

2) Tambien se anade Z 0 es el nuevo sımbolo de pila.

3)Se mantienen todas las transiciones de P  y se anaden las

siguientes:

δ( p0, ,Z  0) = {(q0, ZZ 0}δ(q,,Y ) = {( p,Y }, ∀q ∈ T, Y  ∈ Γ ∪ {Z 0}

δ( p,,Y ) = {( p,Y }, ∀Y  ∈ Γ ∪ {Z 0}

Ejemplo 10

Sea el AFNP por el criterio de estado final que reconoce todas

las cadenas sobre Σ = {a, b} que tienen igual numero de aes

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 22/30

Automatas de Pila 22

que de bes, T  = {q1}.

(q0,a ,Z  ) = (q0, AZ )

(q0, b ,A) = (q0, BZ )

(q0,a ,A) = (q0, AA)

(q0, b ,B) = (q0, BB)

(q0,a ,B) = (q0, )

(q0, b ,A) = (q0, )

(q0, ,Z  ) = (q1, Z )

Se podrıa de manera intuitiva la transformacion del

AFPN ({L(P )}) → AFPN ({N (P )})

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 23/30

Automatas de Pila 23

La transformacion

AFPN ({L(P )}) → AFPN ({N (P )})

se puede realizar de manera mas rigurosa:

1) Agregamos p0, p y Z 02) Las mismas transiciones de P 

( p0, ,Z  0) = (q0, ZZ 0)(q0,a ,Z  ) = (q0, AZ )

(q0, b ,B) = (q0, BZ )

(q0,a ,A) = (q0, AA)

(q0, b ,B) = (q0, BB)

(q0,a ,B) = (q0, )

(q0, b ,A) = (q0, )(q0, ,Z  ) = (q1, Z )

(q1, ,a) = ( p,a)

(q1, , b) = ( p,b)

(q1, ,Z  ) = ( p,Z )

(q1, ,Z  0) = ( p,Z 0)

( p,,a) = ( p,)( p,,b) = ( p,)

( p,,Z ) = ( p,)

( p,,Z 0) = ( p,)

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 24/30

Automatas de Pila 24

( p0,abab,Z 0) = (q0,abab,ZZ 0)

= (q0,bab,AZZ 0)

= (q0,ab,ZZ 0)

= (q0,b,AZZ 0)

= (q0, ,ZZ 0)

= (q1, ,ZZ 0)

= ( p,,ZZ 0)

= ( p,,Z 0)

= ( p,,)

( p0,abb,Z 0) = (q0,abb,ZZ 0)

= (q0,bb,AZZ 0)

= (q0,b ,ZZ 0)= (q0, ,BZZ 0)

Como se leyo toda la cadena y la pila no quedo vacıa, por

tanto abb no es reconocida por el automata de pila.

Teorema 5

Si L = N (P ) para algun automata de pila AFPN P ,

entonces L = L(P ) para algun AFPN P . Es decir,P  ecepta por estado final lo que P  acepta por pila

vacıa.

Demostracion.

Sea

P  = (Q,Σ,Γ,, q0, Z )

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 25/30

Automatas de Pila 25

entonces el automata

P  = (Q ∪ { p0, qf },Σ,Γ ∪ {Z 0}, p0, Z 0, {qf }, δ)

Se construye a partir de P  siguiendo los siguientes pasos:

1) Se anaden dos nuevos estados p0 y qf .

2) Se anade tambien a Γ, {Z 0}, este sera el sımbolo inicial de

la pila.3) Se mantienen todas las transiciones de P , anadiendo las

siguientes transiciones:

δ( p0, ,Z  0) = {(q0, ZZ 0}

δ(q,,Z 0) = {(qf , Z 0}, ∀q ∈ Q

GIC y automatas de Pila

Los lenguajes aceptados por los AFPN son exactamente los

lenguajes independientes de contexto.

Teorema 6

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 26/30

Automatas de Pila 26

Dada una GIC G, existe un AFPN P  tal que L(G) =

L(P ).

Demostracion. Para una gramatica

G = (N,Σ,S ,P  r) se construye un AFPN que utliza la pila

para simular la derivacion de cadenas realizadas por G.

P  requiere de solo tres estados, independiente del numero devariables y producciones de G.

P  = (Q,Σ,Γ, T , q0, Z,)

Q = {q0, q1, q2}, T  = {q2} y Γ = Σ ∪ N ∪ {Z }

La funcion de transicion se define ası:

1. (q0, ,Z  ) = {(q1, SZ )} Transicion en la cual P  co-

loca a S  en el tope de la pila para iniciar el proceso dereconocimiento de la cadena.

2. Para cada A ∈ N 

(q1, ,A) = {(q1, u)}

A → u es una produccion de la gramatica G

Mediante estas transiciones se simulan las derivaciones, sien el tope de la pila esta A y en la derivacion esta A → u,

el tope de la pila A se sustituye por u.

3. Para cada a ∈ Σ

(q1,a ,a) = {(q1, )}

P  borra los terminales del tope al consumirlos sobre lacinta de entrada.

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 27/30

Automatas de Pila 27

4.

(q1, ,Z  ) = {(q2, Z )}

P  ingresa al estado de aceptacion q2 cuando detecta el

marcador de fondo Z .

Ejemplo 11

Sea G una gramatica independiente del contexto cuyasproducciones son:

S → aSa | bSb | c

Esta gramatica reconoce:

L(G) = {wcwI  | w ∈ {a, b}∗}

Entonces el automata de pila que reconoce esta gramatica

es la siguiente:

(q0, ,Z  ) = {(q1, SZ )}

(q1, ,S  ) = {(q1,aSa), (q1,bSb), (q1, c)}

(q1,a ,a) = (q1, b , b) = (q1, c , c) = {(q1, )}

(q1

, ,Z  ) = (q2

, )

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 28/30

Automatas de Pila 28

Sea w = abbcbba

(q0, abbcbba,Z ) = (q1, abbcbba,SZ )

= (q1, abbcbba, aSaZ )

= (q1, bbcbba, SaZ )

= (q1, bbcbba, bSbaZ )

= (q1,bcbba,SbaZ )

= (q1, bcbba, bSbbaZ )= (q1,cbba,SbbaZ )

= (q1, cbba, cbbaZ )

= (q1,bba,bbaZ )

= (q1,ba,baZ )

= (q1,a,aZ )

= (q1, ,Z  )= (q2, , )

Definicion 6

Sea la gramatica G = (N,Σ,S ,P  r) en la FNG se puede cons-

truir un AFPN tal que L(G) = N (P ).

P  = (Q,Σ,Γ, q0, Z,)

donde la funcion de transicion se define como sigue:

A → aZ , a ∈ Σ, A ∈ N,Z ∈ N ∗, entonces (q,a,A) =

{(q, Z )}

S → , entonces (q,,S ) = {(q, )}

Ejemplo 12

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 29/30

Automatas de Pila 29

Sea la gramatica G que reconoce el lenguaje, podemos obtener

un AFPN tal que L(G) = N (P ).

L = {xnymzk | n,m ≥ 0 : k = n + m}

S  → xAz | yBz |

A → xAz | B |

B → yBz |

Sea C = z y reemplazamos:

S  → xAC  | yBC  |

A → xAC  | B |

B → yBC  |

C  → z

Quitamos la regla de redenominacion para obtener la FNG de

A

S  → xAC  | yBC  |

A → xAC  | yBC  |

B → yBC  |

C  → z

8/8/2019 Automatas de Pila-2

http://slidepdf.com/reader/full/automatas-de-pila-2 30/30

Automatas de Pila 30

Construimos el AFPN

(q,x,S ) = {(q,AC )}

(q,y,S ) = {(q,BC )}

(q,,S ) = {(q, )}

(q,x,A) = {(q,AC )}

(q,y,A) = {(q,BC )}

(q,,A) = {(q, )}(q,y,B) = {(q,BC )}

(q,,B) = {(q, )}

(q,z,C ) = {(q, )}

Sea w = xxyzzz

(q,xxyzzz,S ) (q,xyzzz,AC ) (q,yzzz,ACC )

(q,zzz,BCCC ) (q,zzz,CCC )

(q,,)

Por tanto w es reconocida

Sea w = xxyzz

(q,xxyzz,S ) (q,xyzz,AC ) (q,yzz,ACC ) (q,zz,BCCC ) (q,zz,CCC )

(q,,C )

Se leyo la cadena por completo pero la pila no quedo vacıa,

por tanto w no es reconocida.