Está en la página 1de 14

Autómatas de Pila

Teorı́a de Lenguajes

Segundo cuatrimestre de 2015


Autómatas de Pila

¿Podemos construir un autómata finito que reconozca este lenguaje?

L1 = {an b n | n ≥ 1}

No, en clases anteriores demostramos que no es regular.


Para poder reconocer lenguajes de este tipo necesitamos un formalismo con mayor
poder expresivo: un autómata de pila.
La pila es una cadena de sı́mbolos.
Las transiciones pueden depender del sı́mbolo en el tope de la pila, además
del primer sı́mbolo de la cadena de entrada.
En cada transición se desapila el sı́mbolo del tope y se puede apilar una
cadena.
L1 = {an b n | n ≥ 1}

a,z0 /az0
a,a/aa b,a/λ

b,a/λ λ,z0 /λ
q0 q1 q2
Definición

Recordemos que un autómata finito se definı́a de la siguiente manera:

A =< Q, Σ, δ, q0 , F >

Un autómata de pila M se define como:

M =< Q, Σ, Γ, δ, q0, z0 , F >

Donde:
1 Q es un conjunto finito de estados
2 Σ es el alfabeto de entrada
3 Γ es el alfabeto de la pila
4 q0 ∈ Q es el estado inicial
5 z0 ∈ Γ es el sı́mbolo inicial de la pila
6 F ⊆ Q es el conjunto de estados finales
7 δ es la función de transición: Q × (Σ ∪ {λ}) × Γ → P(Q × Γ∗ )
Configuración instantánea

En un autómata finito, tenı́amos como configuración instantánea un elemento de:

Q × Σ∗

¿Cómo será una configuración instantánea en un autómata de pila?

(q, α, γ) ∈ Q × Σ∗ × Γ∗

donde:
1 q es el estado actual
2 α es la cadena de entrada que resta consumir
3 γ es el contenido de la pila
Lenguaje aceptado

Relación de transición entre configuraciones:


∀q1 , q2 ∈ Q, a ∈ Σ, α ∈ Σ∗ , b ∈ Γ, β ∈ Γ∗ :
1 (q1 , aα, bγ) ⊢ (q2 , α, βγ) ⇐⇒ (q2 , β) ∈ δ(q1 , a, b)
2 (q1 , α, bγ) ⊢ (q2 , α, βγ) ⇐⇒ (q2 , β) ∈ δ(q1 , λ, b)
Notar que siempre se saca el tope de la pila. Si en una transición no se quiere
modificar la pila hay que volver a apilar el mismo sı́mbolo.

Lenguaje aceptado por estado final:

α ∈ L(M) ⇐⇒ ∃qf ∈ F , γ ∈ Γ | (q0 , α, z0 ) ⊢∗ (qf , λ, γ)


a,z0 /az0
a,a/aa b,a/λ

b,a/λ λ,z0 /λ
q0 q1 q2

M1 =< {q0 , q1 , q2 }, {a, b}, {a, z0}, δ, q0 , z0 , {q2 } >

δ : Q × (Σ ∪ {λ}) × Γ → P(Q × Γ∗ )

δ(q0 , a, z0 ) = {(q0 , az0 )} δ(q1 , b, a) = {(q1 , λ)}


δ(q0 , a, a) = {(q0 , aa)} δ(q1 , λ, z0 ) = {(q2 , λ)}
δ(q0 , b, a) = {(q1 , λ)} δ(q1 , a, a) = ∅
δ(q0 , b, z0 ) = ∅ ...
δ(q0 , λ, z0 ) = ∅
...
(q0 , ab, z0 ) ⊢ (q0 , b, az0 ) ⊢ (q1 , λ, z0 ) ⊢ (q2 , λ, λ) X
(q0 , aab, z0 ) ⊢ (q0 , ab, az0 ) ⊢ (q0 , b, aaz0 ) ⊢ (q1 , λ, az0 ) ×
Lenguaje aceptado por estado final:

α ∈ L(M) ⇐⇒ ∃qf ∈ F , γ ∈ Γ | (q0 , α, z0 ) ⊢∗ (qf , λ, γ)


Lenguaje aceptado por pila vacı́a:

α ∈ N(M) ⇐⇒ ∃qn ∈ Q | (q0 , α, z0 ) ⊢∗ (qn , λ, λ)

a,z0 /az0
a,a/aa b,a/λ

b,a/λ λ,z0 /λ
q0 q1 q2

a,z0 /a
a,a/aa b,a/λ

b,a/λ
q0 q1
L2 = {ω#ω r | ω ∈ (0|1)∗ }

0,z0 /0 1,z0 /1
0,0/00 1,0/10 0,0/λ
0,1/01 1,1/11 1,1/λ
#,1/1
#,0/0
#,z0 /λ
q0 q1
L3 = {ωω r |ω ∈ (0|1)∗ }

0,z0 /0 1,z0 /1
0,0/00 1,0/10 0,0/λ
0,1/01 1,1/11 1,1/λ
λ,1/1
λ,0/0
λ,z0 /λ
q0 q1
Un AP es determinı́stico si:
1 ∀q ∈ Q, z ∈ Γ : δ(q, λ, z) 6= ∅ =⇒ ∀a ∈ Σ, δ(q, a, z) = ∅
2 ∀q ∈ Q, z ∈ Γ, a ∈ Σ ∪ {λ} : |δ(q, a, z)| ≤ 1
Lenguajes aceptados por APDs ( Lenguajes aceptados por APNDs
Los AP determinı́sticos no son equivalentes a los no determinı́sticos: se
pueden generar más lenguajes con los no determinı́sticos. Ejemplo: ωω r .
Lenguajes aceptados por APD por PV ( Lenguajes aceptados por
APD por EF
Los lenguajes aceptados por APD por PV son siempre libres de prefijos, los
aceptados por APD por EF pueden no serlo.
Lenguajes aceptados por APND por PV = Lenguajes aceptados por
APND por EF = Lenguajes libres de contexto
Los APNDs por PV y por EF ambos generan todos los lenguajes libres de
contexto.
L3 = {ωω r |ω ∈ (0|1)∗ }

0,z0 /0 1,z0 /1
0,0/00 1,0/10 0,0/λ
0,1/01 1,1/11 1,1/λ
λ,1/1
λ,0/0
λ,z0 /λ
q0 q1

(q0 , 00, z0 ) ⊢ (q0 , 0, 0) ⊢ (q0 , λ, 00) ×


(q0 , 00, z0 ) ⊢ (q0 , 0, 0) ⊢ (q1 , 0, 0) ⊢ (q1 , λ, λ) X
L4 = {an b m | 0 < m < 2n}

a, z0 /AA
a, A/AAA b, A/λ

b, A/λ λ, A/λ
q0 q1 q2

¿Es determinı́stico?

a, z0 /A
a, A/AAA b,A/λ

b,A/λ
q0 q1
L5 = {ω | ω ∈ (a|b)∗ y cada prefijo de ω tiene al menos tantas a’s como b’s }

a, z0 /cz0
b, c/λ
a, c/cc

q0

También podría gustarte