automatas de pila

Post on 25-Jun-2015

239 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

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 ?

top related