Está en la página 1de 21

TEORÍA DE LA COMPUTACIÓN 1

Autómatas de Pila

Orlando Arboleda Molina


Universidad Autónoma de Occidente

Septiembre 9 de 2009
Autómatas de Pila

PDA (Push Down Automaton)


En el español AFP, es un AF (autómata de estado nito) con una
pila.
Autómatas de Pila (2)

PDA (Push Down Automaton)


En el español AFP, es una sextupla P = (Q , , Γ, ∆, q0 , T , Z )
P

I Q es un conjunto nito de estados.


es el alfabeto de entrada.
P
I

I Γ es el alfabeto de la pila.
I ∆ es Pla función de transición denida como
Qx( {}) x Γ → (Q x Γ∗ ) o 2(Q x Γ ) para determinista
S ∗

o no determinista.
I q0 es el estado inicial.
I T ⊆ Q es el conjunto de estados nales.
I Z ∈ Γ es el símbolo inicial de la pila.
AFP - Representación

I Tabla de transición
I Las las son etiquetadas con los estados
Las columnas corresponden a parejas ( {}) x Γ
PS
I

I Se adiciona 7→ para resaltar al estado inicial


I Se adiciona ∗ a cada uno de los estados de nalización
I Diagrama de transición (Gráco).
I Los estados son vértices (círculos).
I Se predene el estado inicial.
I Se resaltan los estados de nalización con unPcirculo doble.
I Las etiquetas de las aristas son de la forma , Γ : Γ∗
correspondiente a simbolo procesado, simbolo del tope de la
pila y cadena insertada en el tope de la pila.
AFP - Representación (2)
Ejemplo de AFP usado el Diagrama de transición

Ejemplo de AFP usando la Tabla de transición

a, Z b, Z , Z a, A b , A , A
7→ q0 q0 , AZ q0 , AA q1 , 
q1 q2 , Z q1 , 
∗ q2
AFP - Representación (3)

Como se puede apreciar en el AFD anterior. su función de


transición es:
∆(q0 , a, Z ) = (q0 , AZ ) ∆(q0 , a, A) = (q0 , AA)
∆(q0 , b, A) = (q1 , ) ∆(q1 , b, A) = (q1 , )
∆(q1 , , Z ) = (q2 , Z )
Lenguaje aceptado por un AFP

I Lenguaje aceptado por estado nal.


I Idea: procesar la cadena y terminar en uno de los estados
nales.
I Lenguaje aceptado por pila vacía o pila nula.
I Idea: procesar la cadena y concluir con una pila sin simbolos.
Lenguaje aceptado por estado nal

Sea el AFP P = (Q , , Γ, ∆, q0 , T , Z ), el lenguaje aceptado por


P
estado nal L(P ) es:

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

donde: p∈T , β ∈ Γ∗

Nota: El contenido de la pila es irrelevante.


Lenguaje aceptado por pila vacía

Sea el AFP P = (Q , , Γ, ∆, q0 , Z ), el lenguaje aceptado por pila


P
vacía o pila nula N (P ) es:

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

donde: p∈Q

Nota: El estado en que se termina es irrelevante.


Autómatas de Pila Determinista

DPDA (Deterministic Push Down Automaton)


En el español AFPD, es una sextupla P = (Q , , Γ, ∆, q0 , T , Z )
P

I Q es un conjunto nito de estados.


es el alfabeto de entrada.
P
I

I Γ es el alfabeto de la pila.
I ∆ es Pla función de transición denida como
Qx( {}) x Γ → (Q x Γ∗ ).
S

I q0 es el estado inicial.
I T ⊆ Q es el conjunto de estados nales.
I Z ∈ Γ es el símbolo inicial de la pila.
AFPD's (2)

Casos especiales de transiciones

I Que el contenido de la pila permanezca inalterado


∆(q , a, s ) = (q ', s ).
I Que se extraiga el tope de la pila ∆(q , a, s ) = (q ', ).
I Que no se procese el simbolo de la cinta (transición
espontánea)∆(q , , s ) = (q ', γ).

Garantía del determinismo


Para el mismo estado, entrada en la cinta y simbolo en la pila, no
debe existir mas de un movimiento. Es decir ∆(q , a, s ) y ∆(q , , s )
no pueden estar denidos simultáneamente.
AFPD's (3)

Observaciones

I Se permite que la transición ∆(q , a, s ) no este denida para


algunos valores de q ∈ Q , a ∈ Σ y s ∈ Γ.
I 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.
I La denición de la función de transición requiere que haya por
lo menos un símbolo en la pila. No hay cómputos con la pila
vacía.
Ejemplos

Ejemplo1
Para construir un AFDP para L = { ai bi : i ≥1}
Idea:
Copiar las a's en la pila y luego extraerlas cuando aparezcan las b's.
Ejemplos (2)
Solución Ejemplo1

I por pila vacía - AFDP para L = { ai bi : i ≥1}

I por estado de nalización


Ejemplos (3)
procesamiento de cadenas Ejemplo1

I sea w = aabb
(q0 , aabb, Z ) ` (q0 , abb, AZ ) ` (q0 , bb, AAZ ) ` (q1 , b, AZ )
` (q1 , , Z ) ` (q2 , , Z )

I sea w = aabbb

(q0 , aabb, Z ) ` (q0 , abb, AZ ) ` (q0 , bb, AAZ ) ` (q1 , b, AZ )


` (q1 , b, Z ) ` (q2 , b, Z ) No es de aceptación
Ejemplos (4)
Ejemplo2
Para construir un AFDP para L = { x n y m : n , m ≥ 0, n ≥ m }
Idea:
Copiar las x 's en la pila y luego extraerlas cuando aparezcan las y 's.
La cadena se aceptará si al nal no quedan elementos en la pila (la
cantidad era igual) o si quedan elementos en la pila (habían mas
x 's que y 's).
En este caso es más facil solucionarlo con un AFPD por estado de
nalización.
Ejemplos (5)

Ejemplo2
Para construir un AFDP para L = { x n y m : n , m ≥ 0, n ≥ m }
Ejemplos (5)

procesamiento de cadenas Ejemplo2

I sea w = xxx
(q0 , xxx , Z ) ` (q1 , xxx , Z ) ` (q1 , xx , xZ )
` (q1 , x , xxZ ) `
(q1 , , xxxZ )

Ejercicios: Realizar el procesamiento de cadenas para:


1. w = xxy
2. w = xxyy
3. w = xyy
Ejemplos (6)
Ejemplo3
AFDP para { wcw R : w ∈ {a, b}∗ }
Idea:
Copiar en pila la cadena w hasta que se encuentra a c de ahi en
adelante desempilar.
Ejemplos (7)
Ejemplo4
AFDP para el lenguaje sobre {a, b} compuesto por cadenas con
igual cantidad de a0 s y b0 s (no se requiere un orden especico).
Idea:
En simbolos contrarios desempilar, sino seguir empilando.
Ejercicios

1. Construir AFP ´s por pila vacía para todos los Ejemplos dados
anteriormente.
2. Construir AFP ´s para los siguientes lenguajes:
2.1 L1 = { ai b i : i ≥ 0 }
2.2 L2 = { ai b 2i : i ≥ 1 }
2.3 L3 = { ai bai : i ≥ 1 }
2.4 L4 = { ww R : w ∈ {0, 1}∗ } Es posible ?