Está en la página 1de 30

Aut´omatas de Pila

1

Aut´omatas de Pila

Aut´omatas de Pila 1 Aut´omatas de Pila Aut´omatas de Pila determinista Definici´on 1 Un aut´omata de

Aut´omatas de Pila determinista

Definici´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 finito 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.

Aut´omatas de Pila

2

6. T Q conjunto de estados finales.

7. es la funci´on de transici´on tal que:

: Q × ∪ { }) × Γ (Q × Γ )

Observaci´on 1

1. En un momento, la unidad de control del aut´omata esca- nea un s´ımbolo a sobre la cinta de entrada y el s´ımbolo s en el tope de la pila.

cinta de entrada y el s´ımbolo s en el tope de la pila. ( q, a,

(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.

Aut´omatas de Pila

3

Aut´omatas de Pila 3 Definici´on 2 Casos especiales de transiciones. 1. ( q, a, s )

Definici´on 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

espont´anea. El s´ımbolo sobre la cinta no se procesa y la unidad de control no se mueve a la derecha, pero el tope s de la pila es reemplazado por la cadena γ.

´

es

una

transici´on

o

transici´on

Observaci´on 2

a) Para garantizar el determinismo,

Γ

no pueden estar simult´aneamente definidos ( de lo

(q, a, s) y (q, , s) con a

Σ, q

Q y s

Aut´omatas de Pila

4

contrario el aut´omata tendr´ıa una opci´on no determi- nista).

b) Las transiciones en un AFPD permiten que el aut´oma- 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 transici´on (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 definici´on de la funci´on de transici´on requiere que haya por lo menos un s´ımbolo en la pila. No hay c´omputos 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, Σ, Γ, , q 0 , T, Z) un aut´omata de pila, en- tonces L(P ),el lenguaje aceptado por un P por estado final, es:

L(P) = {w Σ : (q 0 , w, Z) (p, , β)}

donde, p T, β Γ

El

contenido

de

la

pila

es

irrelevante.

Aut´omatas de Pila

5

(q 0 , w, Z): configuraci´on inicial. (p, , β): configuraci´on de aceptaci´on.

2. Sea la sextupla P = (Q, Σ, Γ, , q 0 , Z) un aut´omata de pila, entonces N (P ),el lenguaje aceptado por un P por pila nula o pila vac´ıa:

N(P) = {w Σ : (q 0 , 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}.

Soluci´on: 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 s´olo queda el marcador en el fondo Z.

(q 0 , a, Z)

=

(q 0 , AZ)

(q 0 , a, A)

=

(q 0 , AA)

(q 0 , b, A)

=

(q 1 , )

(q 1 , b, A)

=

(q 1 , )

(q 1 , , Z)

=

(q 2 , Z)

Aut´omatas de Pila

6

Aut´omatas de Pila 6 Sea w = aabb veamos el procesamiento de la cadena: ( q

Sea w = aabb veamos el procesamiento de la cadena:

(q 0 , aabb, Z) (q 0 , abb, AZ) (q 0 , bb, AAZ)

(q 1 , b, AZ) (q 1 , , Z)

(q 2 , , Z)

La ultima´

es una configuraci´on de aceptaci´on por tanto w es

acepatada.

Sea w = aabbb

(q 0 , aabbb, Z) (q 0 , abbb, AZ) (q 0 , bbb, AAZ)

(q 1 , bb, AZ) (q 1 , b, Z)

(q 2 , b, Z)

La cadena no se ha proceado completamente y (q 2 , b, Z) no es una configuraci´on de aceptaci´on, por tanto w no es acep- tada. La ultima´ transici´on realizada:

(q 1 , b, Z) (q 1 , b, Z) (q 2 , b, Z)

Si en el AP est´a la transici´on (q 1 , , Z) y la transici´on (q 1 , b, Z) el aut´omata no ser´ıa determinista, adem´as por que si estuvie- ra se podr´ıa tener una soluci´on no determinista.

Aut´omatas de Pila

7

Sea w = aaabb

(q 0 , aaabb, Z) (q 0 , aabb, AZ) (q 0 , abb, AAZ) (q 0 , bb, AAAZ) (q 1 , b, AAZ)

(q 1 , , AZ)

A pesar que la cadena se proceso completamente (q 1 , , AZ) no es una configuraci´on de aceptaci´on, por tanto w no es acep- tada.

Podemos construir el mismo AFDP pero por vaciado de pila de manera f´acil, en vez de la transici´on (q 1 , , Z) = (q 2 , Z), usamos (q 1 , , Z) = (q 2 , ).

(q 0 , a, Z)

=

(q 0 , AZ)

(q 0 , a, A)

=

(q 0 , AA)

(q 0 , b, A)

=

(q 1 , )

(q 1 , b, A)

=

(q 1 , )

(q 1 , , Z)

=

(q 2 , )

( q 1 , ) ( q 1 , b, A ) = ( q 1

Aut´omatas de Pila

8

Sea w = aabb veamos el procesamiento de la cadena:

(q 0 , aabb, Z) (q 0 , abb, AZ) (q 0 , bb, AAZ)

(q 1 , b, AZ)

(q 1 , , Z)

(q 2 , , )

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

Ejemplo 2

Podemos construir un AFPD que reconozca:

L = {x n y m : n, m 0, n m}

L = { x n y m : n, m ≥ 0 , n ≥ m

(q 0 , , Z)

=

(q 1 , Z)

(q 1 , x, )

=

(q 1 , x)

(q 1 , y, x)

=

(q 2 , )

(q 2 , y, x)

=

(q 2 , )

(q 2 , , Z)

=

(q 3 , Z)

Sea w = xxx

(q 0 , xxx, Z)

(q 1 , xxx, Z) (q 1 , xx, xZ)

(q 1 , x, xxZ) (q 1 , , xxxZ)

La pila qued´o llena xxxZ y el aut´omata en el estado q 1 re- conci´o por completo la cadena.

Aut´omatas de Pila

9

Sea w = xxy

(q 0 , xxy, Z)

(q 1 , xxy, Z) (q 1 , xy, xZ)

(q 1 , y, xxZ) (q 2 , , xZ)

Aunque la pila no quedo del todo vac´ıa (qued´o xZ) se reco- noci´o toda la cadena completa y el aut´omata qued´o en un estado de aceptaci´on q 2 .

Sea w = xxyy

(q 0 , xxyy, Z) (q 1 , xxyy, Z) (q 1 , xyy, xZ)

(q 1 , yy, xxZ) (q 2 , y, xZ) (q 2 , , Z)

(q 3 , , Z)

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

Sea w = xyy

(q 0 , xyy, Z)

(q 1 , xyy, Z)

(q 1 , yy, xZ)

(q 2 , y, Z)

A pesar de que se est´a en un estado de aceptaci´on la cadena no

se termin´o de escanear, la transici´on (q 2 , y, Z) no esta definida en este aut´omata. Por tanto la cadena no es reconocida por

el aut´omata.

Observaci´on 3

El lenguaje:

L = {ww I | w ∈ {a, b} }

Aut´omatas de Pila

10

es un LIC que no puede ser reconocido por ning´un AFDP.

El problema es que cuando se cuando se est´a leyendo la cade- na s´ımbolo a s´ımbolo no se sabe cuando est´a 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 = {wcw I : w ∈ {a, b} }

La GIC es:

Son varias ideas:

S

SaS | SbS | c

1. Cuando hay una a en la cinta de entrada y una B en el tope de la pila, el aut´omata ya escaneo una b, por tanto se debe colocar en la pila AB para poder escanear ab desp´ues de la c. Similarmente pasa cuando b est´a en la cinta y en el tope de la pila est´a A.

2. Cuando el aut´omata recorre toda la cadena de la parte izquierda al pasar por c deja la pila como est´a y cambia de estado.

Aut´omatas de Pila

11

Aut´omatas de Pila 11 ( q 0 , a, Z ) = ( q 0 ,

(q 0 , a, Z)

=

(q 0 , AZ)

(q 0 , b, Z)

=

(q 0 , BZ)

(q 0 , c, Z) = (q 2 , Z)(acepta la cadena c)

(q 0 , a, A)

=

(q 0 , AA)

(q 0 , b, B)

= (q 0 , BB)

(q 0 , a,

B)

= (q 0 , AB)

(q 0 , b, A)

=

(q 0 , BA)

(q 0 , c, A)

=

(q 1 , A)

(q 0 , c, B)

=

(q 1 , B)

(q 1 ,

a, A)

=

(q 1 , )

(q 1 , b, B)

=

(q 1 , )

(q 1 , , Z)

=

(q 2 , Z)

Aut´omatas de Pila

12

Definici´on 3

Un

lenguaje

L

se

dice

que

es

independiente

de

contexto

determinista

si

y

s´olo

si

es

aceptado

por

un

aut´omata

de

pila

determinista

por

el

criterio

de

estados

finales.

Teorema 1

 

Si

L

es

un

lenguaje

aceptado

por

un

AFPD

P

por

el

criterio

de

pila

vac´ıa,

entonces

existe

otro

AFPD

P

que

acepta

el

lenguaje

por

el

criterio

de

estados

finales.

Observaci´on 4

El resultado inverso no es cierto, hay lenguajes que son acep- tados por AFPD por el criterio de estado final que no pueden ser aceptados por el criterio de pila vac´ıa.

Ejemplo 4

Sea el siguiente AFPD sobre Σ = {a, b} que reconoce el mis- mo n´umero de aes que de bes, T = {q 1 }.

(q 0 ,

a, A)

=

(q 0 , AA)

(q 0 , b, B)

=

(q 0 , BB)

(q 0 , a, B)

=

(q 0 , )

(q 0 , b, A)

=

(q 0 , )

(q 0 , , Z)

=

(q 1 , Z)

(q 1 , a, Z)

=

(q 0 , AZ)

(q 1 , b, Z)

=

(q 0 , BZ)

Aut´omatas de Pila

13

Aut´omatas de Pila 13 Este AFDP no se puede construir por el criterio de pila vac´ıa,

Este AFDP no se puede construir por el criterio de pila vac´ıa, si este aut´omata lo convertimos al criterio de pila vac´ıa no reconocer´ıa cadenas como, w = aabbab, s´olo reconocer´ıa hasta aabb y quedar´ıa la pila vac´ıa.

no reconocer´ıa cadenas como, w = aabbab , s´olo reconocer´ıa hasta aabb y quedar´ıa la pila

Aut´omatas de Pila

14

Sea w = aabbab

(q 0 , aabbab, Z)

(q 1 , aabbab, ) (q 0 , abbab, A) (q 0 , bbab, AA) (q 0 , bab, A) (q 0 , 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

alg´un

AFDP.

Un AFDP puede simular un AFD, el AFDP introduce alg´un s´ımbolo Z en su pila por que debe tenerla, pero la ignora y s´olo ve el estado. Formalmente sea:

M = (Q, Σ, q 0 , δ M , T )

Construimos

un AFD

P = (Q, Σ, q 0 , {Z}, δ P , q 0 , 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, entonces decimos que:

(q 0 , w, Z) P (p, , Z)

si y s´olo siδ M (q, a) = p

Es decir, P simula M usando su estado.

Observaci´on 5

Puesto que M y P aceptan terminando en uno de los estados de T , concluimos que sus lenguajes son id´enticos.

Aut´omatas de Pila

15

Observaci´on 6

Si queremos que un AFDP acepte por pila vac´ıa. Su capacidad de reconocimiento de lenguajes resulta bastante limitada.

Definici´on 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 {wcw I } tiene la propiedad del prefijo, es decir no es posible que existan dos cadenas wcw I y xcx I , 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

si

lenguaje

L

tiene

L

la

es N (P )

para

del

alg´un

AFDP

prefijo

y

P

L

y es L(P )

si

s´olo

para

alg´un

propiedad P .

AFDP

 

Observaci´on 7

propiedad P . AFDP   Observaci´on 7 Si tenenemos un lenguaje L , independiente del contexto

Si tenenemos un lenguaje L, independiente del contexto determinista que no cumple la propiedad del prefijo es f´acil transformarlo en otro lenguaje similar que cumple la propiedad del prefijo y puede ser aceptado por un aut´oma- ta con pila determinista por el criterio de pila vac´ıa.

Aut´omatas de Pila

16

Aut´omatas de Pila 16 Basta con considerar un s´ımbolo $ ∈ / L y entonces el

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.

Observaci´on 8

Un lenguaje L puede ser aceptado por un aut´omata con pila determinista por el criterio de pila vac´ıa si y s´olo si puede ser aceptado por un aut´omata 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$, 0 2 $, 0 3 $,

.}

Aut´omatas de Pila

17

Aut´omatas con pila no- deterministas (AFPN

Definici´on 5

1. Un aut´omata finito con pila no determinista (AFPN) consta de los mismos par´ametros de un AFPD,

P = (Q, Σ, Γ, , q 0 , T, Z)

donde la funci´on de transici´on es de la forma:

: Q × ∪ { }) × Γ P f (Q × Γ )

donde P f (Q × Γ ) es un conjunto de subconjuntos finitos de Q × Γ .

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

(q, a, s) = {(q 1 , γ 1 ), (q 2 , γ 2 ),

Donde γ i Γ

, (q n , γ n )}

Observaci´on 9

A diferencia de los AFDP, en los AFPN las transiciones , (q, , s) no tiene restricci´on alguna.

Ejemplo 8

Aut´omatas de Pila

18

Dise˜nar un AFPN que acepte el lenguaje {a i b i : i 0} sobre Σ = {a, b}.

(q 0 , a,

Z)

=

(q 0 , AZ)

(q 0 , , Z)

=

(q 2 , Z)(acepta )

(q 0 , a, A)

=

(q 0 , AA)

(q 0 , b, A)

=

(q 1 , )

(q 1 , b, A)

=

(q 1 , )

(q 1 , , Z)

=

(q 2 , Z)

, ) ( q 1 , , Z ) = ( q 2 , Z )

El no determinismo se da por la presencia simult´anea de:

(q 0 , a, Z) y (q 0 , , Z)

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

1. Quitamos la transici´on (q 0 , , Z) = (q 2 , Z).

2. Agregamos la transici´on (q 0 , , Z) = (q 1 , Z).

3. Hacemos un cambio en la transici´on (q 1 , , Z) = (q 2 , Z) por (q 1 , , Z) = (q 2 , )

Aut´omatas de Pila

19

Aut´omatas de Pila 19 La cadena vac´ıa se reconoce con las siguientes transiciones: ( q 0

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

(q 0 , , Z)

Sea w = aabb

(q 1 , , Z) (q 2 , , )

(q 0 , aabb, Z) (q 0 , abb, AZ) (q 0 , bb, AAZ)

(q 1 , b, AZ) (q 1 , , Z)

(q 2 , , )

Ejemplo 9

Se puede construir un AFPN que reconozca:

{ww R : w Σ }

para Σ = {a, b}

El no determinismo se usa para permitirle al aut´omata adivi- nar cu´al 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 aut´omata seguir´a acumulando s´ımbolos en la pila y no habr´a aceptaci´on.

Aut´omatas de Pila

20

(q 0 , a, Z)

=

(q 0 , AZ)

(q 0 , b, Z)

=

(q 0 , BZ)

(q 0 , , Z)

= (q 2 , Z)(acepta )

(q 0 ,

a, A)

= {(q 0 , AA), (q 1 , )}

(q 0 , b, B)

= {(q 0 , BB), (q 1 , )}

(q 0 , a,

B)

= (q 0 , AB)

(q 0 , b, A)

=

(q 0 , BA)

(q 1 ,

a, A)

=

(q 1 , )

(q 1 , b, B)

=

(q 1 , )

(q 1 , , Z)

=

(q 2 , Z)

= ( q 1 , ) ( q 1 , b, B ) = ( q

Aut´omatas de Pila

21

Aut´omatas con pila y LIC

Teorema 4

Si

entonces

P

final.

L = L(P )

acepta

para

alg´un

para

vac´ıa

aut´omata

alg´un

lo

con

pila

P .

Es

acepta

L = N (P )

por

pila

AFPN

P

que

AFPN

P ,

decir,

por

estado

Demostraci´on:

Sea P = (Q, Σ, Γ, , q 0 , T, Z), P se dise˜na modificando P de tal manera que vac´ıe su pila cuando P haya aceptado una cadena de entrada.

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

1) Se a˜naden p 0 estado inicial y p. 2) Tambi´en se a˜nade Z 0 es el nuevo s´ımbolo de pila. 3)Se mantienen todas las transiciones de P y se a˜naden las siguientes:

δ(p 0 , , Z 0 ) = {(q 0 , 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 n´umero de aes

Aut´omatas de Pila

22

que de bes, T = {q 1 }.

(q 0 , a, Z)

=

(q 0 , AZ)

(q 0 , b, A)

=

(q 0 , BZ)

(q 0 ,

a, A)

=

(q 0 , AA)

(q 0 , b, B)

= (q 0 , BB)

(q 0 , a,

B)

=

(q 0 , )

(q 0 , b, A)

=

(q 0 , )

(q 0 , , Z)

=

(q 1 , Z)

, ) ( q 0 , , Z ) = ( q 1 , Z )

Se podr´ıa de manera intuitiva la transformaci´on del AF P N ({L(P )}) AF P N ({N (P )})

, Z ) Se podr´ıa de manera intuitiva la transformaci´on del AF P N ( {

Aut´omatas de Pila

23

La transformaci´on

AF P N ({L(P )}) AF P N ({N (P )}) se puede realizar de manera m´as rigurosa:

1) Agregamos p 0 , p y Z 0 2) Las mismas transiciones de P

(p 0 , , Z 0 )

(q 0 ,

(q 0 , b, B)

a, A)

(q 0 , b, B)

a, Z)

(q 0 ,

(q 0 , ZZ 0 ) (q 0 , AZ) (q 0 , BZ) (q 0 , AA) = (q 0 , BB)

=

=

=

=

(q 0 , a,

B)

=

(q 0 , )

(q 0 , b, A)

=

(q 0 , )

(q 0 , , Z)

=

(q 1 , Z)

(q 1 , , a)

=

(p, a)

(q 1 , , b)

=

(p, b)

(q 1 , , Z)

=

(p, Z)

(q 1 , , Z 0 )

=

(p,

Z 0 )

(p, , a)

=

(p, )

(p, , b)

=

(p, )

(p, , Z)

=

(p, )

(p, , Z 0 )

=

(p, )

Aut´omatas de Pila

24

(p 0 , abab, Z 0 ) = (q 0 , abab, ZZ 0 )

(p 0 , abb, Z 0 )

= (q 0 , bab, AZZ 0 )

= (q 0 , ab, ZZ 0 )

= (q 0 , b, AZZ 0 )

=

= (q 1 , , ZZ 0 )

= (p, , ZZ 0 )

= (p, , Z 0 )

= (p, , )

(q 0 , , ZZ 0 )

= (q 0 , abb, ZZ 0 )

= (q 0 , bb, AZZ 0 )

= (q 0 , b, ZZ 0 )

=

(q 0 , , BZZ 0 )

Como se leyo toda la cadena y la pila no qued´o vac´ıa, por tanto abb no es reconocida por el aut´omata de pila.

Teorema 5

Si

L = N (P )

para

alg´un

aut´omata

de

pila

AFPN

P ,

entonces

L = L(P )

para

alg´un

AFPN

Es

decir,

P

ecepta

por

estado

final

lo

que

P . P

acepta

por

pila

vac´ıa.

Demostraci´on.

Sea

P = (Q, Σ, Γ, , q 0 , Z)

Aut´omatas de Pila

25

entonces el aut´omata

P = (Q ∪ {p 0 , q f }, Σ, Γ ∪ {Z 0 }, p 0 , Z 0 , {q f }, δ)

Se construye a partir de P siguiendo los siguientes pasos:

1) Se a˜naden dos nuevos estados p 0 y q f . 2) Se a˜nade tambien a Γ, {Z 0 } , este ser´a el s´ımbolo inicial de la pila. 3) Se mantienen todas las transiciones de P , a˜nadiendo las siguientes transiciones:

δ( p 0 , , Z 0 ) = { ( q 0 , ZZ (p 0 , , Z 0 ) = {(q 0 , ZZ 0 }

δ( q, , Z 0 ) = { ( q f , Z 0 } (q, , Z 0 ) = {(q f , Z 0 }, q Q

GIC y aut´omatas de Pila

f , Z 0 } , ∀ q ∈ Q GIC y aut´omatas de Pila Los

Los lenguajes aceptados por los AFPN son exactamente los lenguajes independientes de contexto.

Teorema 6

Aut´omatas de Pila

26

Dada

una

GIC

G,

existe

un

AFPN

P

tal

que

L(G) =

L(P).

Demostraci´on. Para una gram´atica

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

para simular la derivaci´on de cadenas realizadas por G.

P requiere de s´olo tres estados, independiente del n´umero de

variables y producciones de G.

P = (Q, Σ, Γ, T, q 0 , Z, )

Q = {q 0 , q 1 , q 2 }, T = {q 2 } y Γ = Σ

La funci´on de transici´on se define as´ı:

N ∪ {Z}

1. (q 0 , , Z) = {(q 1 , SZ)} Transici´on en la cual P co- loca a S en el tope de la pila para iniciar el proceso de reconocimiento de la cadena.

2. Para cada A N

A u

es

(q 1 , , A)

=

una

producci´on

{(q 1 , u)}

de

la

gram´atica G

Mediante estas transiciones se simulan las derivaciones, si en el tope de la pila est´a A y en la derivaci´on est´a A u, el tope de la pila A se sustituye por u.

3. Para cada a Σ

(q 1 , a, a)

=

{(q 1 , )}

P borra los terminales del tope al consumirlos sobre la

cinta de entrada.

Aut´omatas de Pila

27

4.

(q 1 , , Z)

= {(q 2 , Z)}

P ingresa al estado de aceptaci´on q 2 cuando detecta el marcador de fondo Z.

Ejemplo 11

Sea G una gram´atica independiente del contexto cuyas producciones son:

S aSa | bSb | c

Esta gram´atica reconoce:

L(G) = {wcw I | w ∈ {a, b} }

Entonces el aut´omata de pila que reconoce esta gram´atica es la siguiente:

(q 0 , , Z)

= {(q 1 , SZ)}

(q 1 , , S) = {(q 1 , aSa), (q 1 , bSb), (q 1 , c)}

(q 1 , a, a)

(q 1 , b, b) = (q 1 , c, c) = {(q 1 , )}

=

(q 1 , , Z) = (q 2 , )

Aut´omatas de Pila

28

Sea w = abbcbba

(q 0 , abbcbba, Z) = (q 1 , abbcbba, SZ)

= (q 1 , abbcbba, aSaZ)

= (q 1 , bbcbba, SaZ)

= (q 1 , bbcbba, bSbaZ)

= (q 1 , bcbba, SbaZ)

= (q 1 , bcbba, bSbbaZ)

= (q 1 , cbba, SbbaZ)

= (q 1 , cbba, cbbaZ)

= (q 1 , bba, bbaZ)

= (q 1 , ba, baZ)

= (q 1 , a, aZ)

= (q 1 , , Z)

= (q 2 , , )

Definici´on 6

Sea la gram´atica G = (N, Σ, S, P r ) en la FNG se puede cons- truir un AFPN tal que L(G) = N (P ).

P = (Q, Σ, Γ, q 0 , Z, )

donde la funci´on de transici´on se define como sigue:

A → aZ , a ∈ Σ , A ∈ N, Z ∈ N ∗

A

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

{(q, Z)}

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

S

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

Ejemplo 12

Aut´omatas de Pila

29

Sea la gram´atica G que reconoce el lenguaje, podemos obtener un AFPN tal que L(G) = N (P ).

L = {x n y m z k | 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 redenominaci´on para obtener la FNG de

A

S xAC | yBC | A xAC | yBC | B yBC | C z

Aut´omatas de Pila

30

Construimos el AFPN

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

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

=

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

=

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

(q, , S)

{(q, )}

(q, , A)

{(q, )}

(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 ley´o la cadena por completo pero la pila no qued´o vac´ıa, por tanto w no es reconocida.