automatas de pila
TRANSCRIPT
TEORÍA DE LA COMPUTACIÓN 1Autó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 )
I Q es un conjunto �nito de estados.
I∑
es el alfabeto de entrada.
I Γ es el alfabeto de la pila.
I ∆ es la función de transición de�nida como
Q x (∑ ⋃
{ε}) x Γ → (Q x Γ∗) o 2(Q x Γ∗) para determinista
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 estadosI Las columnas corresponden a parejas (
∑ ⋃{ε}) x Γ
I Se adiciona 7→ para resaltar al estado inicialI 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 prede�ne el estado inicial.I Se resaltan los estados de �nalización con un circulo doble.I Las etiquetas de las aristas son de la forma
∑, Γ : Γ∗
correspondiente a simbolo procesado, simbolo del tope de lapila 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 )
Que cadenas puede reconocer ?
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
estado �nal L(P) es:
L(P) = { wε∑∗ : (q0,w ,Z )
∗` (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
vacía o pila nula N(P) es:
N(P) = { wε∑∗ : (q0,w ,Z )
∗` (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 )
I Q es un conjunto �nito de estados.
I∑
es el alfabeto de entrada.
I Γ es el alfabeto de la pila.
I ∆ es la función de transición de�nida como
Q x (∑ ⋃
{ε}) x Γ → (Q x Γ∗).
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 determinismoPara 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 de�nidos simultáneamente.
AFPD's (3)
Observaciones
I Se permite que la transición ∆(q, a, s) no este de�nida 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 de�nició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 = { aibi : 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 = { aibi : 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 = { xnym : 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 = { xnym : 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 { wcwR : 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 a′s y b′s (no se requiere un orden especi�co).
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 = { aibi : i ≥ 0 }2.2 L2 = { aib2i : i ≥ 1 }2.3 L3 = { aibai : i ≥ 1 }2.4 L4 = { wwR : w ∈ {0, 1}∗ } Es posible ?