automatas de pila

21

Upload: rainer-diaz

Post on 25-Jun-2015

238 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Automatas de Pila

TEORÍA DE LA COMPUTACIÓN 1Autómatas de Pila

Orlando Arboleda Molina

Universidad Autónoma de Occidente

Septiembre 9 de 2009

Page 2: Automatas de Pila

Autómatas de Pila

PDA (Push Down Automaton)

En el español AFP, es un AF (autómata de estado �nito) con una

pila.

Page 3: Automatas de 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.

Page 4: Automatas de 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.

Page 5: Automatas de 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

Page 6: Automatas de Pila

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 ?

Page 7: Automatas de Pila

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.

Page 8: Automatas de Pila

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.

Page 9: Automatas de Pila

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.

Page 10: Automatas de Pila

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.

Page 11: Automatas de 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.

Page 12: Automatas de Pila

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.

Page 13: Automatas de Pila

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.

Page 14: Automatas de Pila

Ejemplos (2)

Solución Ejemplo1

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

I por estado de �nalización

Page 15: Automatas de Pila

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

Page 16: Automatas de Pila

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.

Page 17: Automatas de Pila

Ejemplos (5)

Ejemplo2

Para construir un AFDP para L = { xnym : n,m ≥ 0, n ≥ m }

Page 18: Automatas de Pila

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

Page 19: Automatas de Pila

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.

Page 20: Automatas de Pila

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.

Page 21: Automatas de Pila

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 ?