Cap´ıtulo 10 Autómatas a pila

Transcripción

Cap´ıtulo 10 Autómatas a pila
Capı́tulo 10
Autómatas a pila
Definición 1 Se define un autómata a pila como una séptupla AP = (Σ, Γ, Q, A0 , q0 , f, F )
donde:
Σ es el alfabeto de entrada.
Γ es el alfabeto de la pila.
Q es un conjunto finito de estados.
A0 ∈ Γ es el sı́mbolo inicial de la pila.
q0 ∈ Q el estado inicial del autómata.
F ⊆ Q es el subconjunto de estados finales.
f es una aplicación denominada función de transición de ternas (estado, sı́mbolo de entrada o λ, sı́mbolo de pila) en el conjunto de las partes de Q × Γ∗
f : Q × {Σ ∪ {λ}} × Γ −→ 2Q×Γ
∗
Un autómata finito comienza su funcionamiento en lo que se llama la configuración inicial, esto
es, en el estado inicial q0 , con sólo un sı́mbolo en la pila A0 y con la cabeza lectora en el primer
sı́mbolo de la entrada. A partir de esta configuración realiza transiciones según la definición de
la función f .
Observación 2 A partir de ahora, representaremos los sı́mbolos de la siguiente manera:
a, b, c, . . . serán elementos en Σ.
A, B, C, . . . serán elementos en Γ.
x, y, z, . . . serán palabras en Σ∗ .
X, Y, Z, . . . serán palabras en Γ∗ .
1
2
CAPÍTULO 10. AUTÓMATAS A PILA
Una interpretación de la función de transición f es la siguiente:
1. Supongamos que f (q, a, A) = {(q1 , Z1 ), (q2 , Z2 ), . . . , (qn , Zn )}. Cuando el autómata se
encuentra en el estado q, lee el sı́mbolo de entrada a y tiene el sı́mbolo A en la cima de
la pila, entonces el autómata pasará a algún estado qi (elegido no determinı́sticamente),
eliminará el sı́mbolo A de la pila e introducirá en ella la palabra Zi , quedando la cabeza
de Zi en la cima de la pila.
2. Supongamos que f (q, λ, A) = {(q1 , Z1 ), (q2 , Z2 ), . . . , (qn , Zn )}. Cuando el autómata se
encuentra en el estado q y tiene el sı́mbolo A en la cima de la pila, entonces el autómata
pasará a algún estado qi (elegido no determinı́sticamente), eliminará el sı́mbolo A de la
pila e introducirá en ella la palabra Zi , quedando la cabeza de Zi en la cima de la pila.
Se entiende que el resultado de la función f para las configuraciones (estado, sı́mbolo de entrada y sı́mbolo de pila) no explı́citamente especificadas es el conjunto vacı́o. Éstas representan
configuraciones “muertas” del autómata.
Definición 3 Dado un autómata a pila AP = (Σ, Γ, Q, A0 , q0 , f, F ), su representación gráfica
puede hacerse mediante un grafo dirigido, de modo que:
Cada estado corresponde a un nodo en el grafo y está etiquetado con el nombre del estado.
Si el estado es un estado final, entonces se marca además con un asterisco.
Si el estado es el estado inicial, vendrá señalado mediante una flecha (igual que en los
autómatas finitos), y con la etiqueta del sı́mbolo inicial de la pila.
Cada transición de la forma (q, Z) ∈ f (p, a, A) corresponde a un arco del nodo p al nodo
q y con la etiqueta (a, A, Z).
Por ejemplo, el autómata AP = ({a, b, c}, {S, A, B, b}, {p, q, r}, S, p, f, {r}) cuya función de
transición es
f (p, a, S)
f (p, λ, S)
f (q, b, b)
f (q, b, B)
f (q, c, A)
f (q, λ, B)
=
=
=
=
=
=
{(p, SAB), (q, b)}
{(p, SAB)}
{(q, λ)}
{(q, λ)}
{(q, A), (q, λ)}
{(r, λ)}
3
CAPÍTULO 10. AUTÓMATAS A PILA
vendrá dado por el siguiente grafo:
S
p
(a, S, SAB)
(λ, S, SAB)
(a, S, b)
q
(λ, B, λ)
r∗
(b, b, λ)
(c, A, A)
(c, A, λ)
(b, B, λ)
Definición 4 Dado un autómata a pila AP = (Σ, Γ, Q, A0 , q0 , f, F ), definimos descripción instantánea o configuración a una terna (x, q, Z) donde q ∈ Q, x ∈ Σ∗ y Z ∈ Γ∗ . Una descripción
instantánea define el estado actual del autómata, la entrada que resta por leer y el contenido
de la pila, en un momento dado.
Definición 5 Dado un autómata a pila AP = (Σ, Γ, Q, A0 , q0 , f, F ), definimos movimiento
como el paso de una descripción instantánea a otra, y se produce como resultado de la aplicación
de la función f . Se representa mediante el sı́mbolo ⊢, que se lee como “precede a”.
Hay dos tipos de movimientos:
(az, p, AZ) ⊢ (z, q, Y Z) si (q, Y ) ∈ f (p, a, A).
(z, p, AZ) ⊢ (z, q, Y Z) si (q, Y ) ∈ f (p, λ, A).
Utilizaremos el sı́mbolo ⊢∗ para expresar la clausura (o cierre transitivo y reflexivo) de ⊢. es
decir, se entiende por D1 ⊢∗ Dn el resultado de aplicar una serie de movimientos tales que
D1 ⊢ D2 ⊢ . . . ⊢ D n .
Definición 6 Dado un autómata a pila AP = (Σ, Γ, Q, A0 , q0 , f, F ), definimos el lenguaje
asociado a AP por estado final al conjunto:
LF (AP ) = {x ∈ Σ∗ | (x, q0 , A0 ) ⊢∗ (λ, p, X) con p ∈ F , X ∈ Γ∗ } .
En este caso, diremos que AP es un autómata a pila reconocedor por estado final.
Definición 7 Dado un autómata a pila AP = (Σ, Γ, Q, A0 , q0 , f, F ), definimos el lenguaje
asociado a AP por vaciado de pila al conjunto:
LV (AP ) = {x ∈ Σ∗ | (x, q0 , A0 ) ⊢∗ (λ, p, λ) con p ∈ Q} .
En este caso, diremos que AP es un autómata a pila reconocedor por estado final.
Definición 8 Diremos que dos autómatas a pila son equivalentes si aceptan el mismo lenguaje.
4
CAPÍTULO 10. AUTÓMATAS A PILA
Por ejemplo, para el lenguaje L = {an bn | n > 0} tenemos el autómata a pila (por vaciado de
pila) AP V = ({a, b}, {S, A}, {p, q}, S, p, f, ∅)
f (p, a, S)
f (p, a, A)
f (p, b, A)
f (q, b, A)
S
p
=
=
=
=
{(p, A)}
{(p, AA)}
{(q, λ)}
{(q, λ)}
(b, A, λ)
(a, S, A)
(a, A, AA)
q
(b, A, λ)
Para este mismo lenguaje tenemos el siguiente autómata a pila (por estado final) AP F =
({a, b}, {S, A}, {p, q, r}, S, p, f, {r})
f (p, a, S)
f (p, a, A)
f (p, b, A)
f (q, b, A)
f (q, λ, S)
S
(b, A, λ)
p
(a, S, AS)
(a, A, AA)
=
=
=
=
=
{(p, AS)}
{(p, AA)}
{(q, λ)}
{(q, λ)}
{(r, S)}
q
(λ, S, S)
r∗
(b, A, λ)
Definición 9 Dado un autómata a pila AP = (Σ, Γ, Q, A0 , q0 , f, F ), diremos que es un autómata a pila determinista si verifica las dos propiedades siguientes:
∀q ∈ Q y ∀A ∈ Γ se tiene que
f (q, λ, A) 6= ∅ =⇒ f (q, a, A) = ∅, ∀a ∈ Σ.
∀q ∈ Q, ∀A ∈ Γ y ∀a ∈ Σ ∪ {λ} se tiene que f (q, a, A) contiene a lo sumo un elemento.
Es decir, desde una configuración dada, existe, a lo sumo, un posible movimiento.
Diremos que un autómata a pila es no determinista o indeterminista cuando no es determinista.
CAPÍTULO 10. AUTÓMATAS A PILA
5
Teorema 10 El conjunto de lenguajes aceptados por los autómatas a pila reconocedores por
estado final es igual al conjunto de lenguajes aceptados por los autómatas a pila reconocedores
por vaciado de pila.
Demostración.– En un primer paso, demostraremos que a partir de un autómata a pila reconocedor por estado final podemos construir un autómata a pila reconocedor por vaciado de
pila.
Sea AP F = (Σ, Γ, Q, A0 , q0 , f, F ) un autómata a pila. Construı́mos AP ′ = (Σ, Γ ∪ {B}, Q ∪
{r, s}, B, s, f ′ , ∅), con B 6∈ Γ y r, s 6∈ Q y donde f ′ está definida por:
f ′ (s, λ, B)
f ′ (q, a, A)
f ′ (q, a, A)
f ′ (q, λ, A)
f ′ (q, λ, B)
f ′ (r, λ, A)
=
=
=
=
=
=
{(q0 , A0 B)}.
f (q, a, A), ∀q ∈ Q \ F, ∀a ∈ Σ ∪ {λ} y ∀A ∈ Γ.
f (q, a, A), ∀q ∈ F, ∀a ∈ Σ y ∀A ∈ Γ.
f (q, λ, A) ∪ {(r, λ)}, ∀q ∈ F y ∀A ∈ Γ.
{(r, λ)}, ∀q ∈ F.
{(r, λ)}, ∀A ∈ Γ ∪ {B}.
Se tiene que LF (AP F ) = LV (AP ′ ).
Recı́procamente, demostraremos que a partir de un autómata a pila reconocedor por vaciado
de pila podemos construir un autómata a pila reconocedor por estado final.
Sea AP V = (Σ, Γ, Q, A0 , q0 , f, ∅) un autómata a pila. Construı́mos AP ′ = (Σ, Γ ∪ {B}, Q ∪
{r, s}, B, s, f ′ , {r}), con B 6∈ Γ y r, s 6∈ Q y donde f ′ está definida por:
f ′ (s, λ, B) = {(q0 , A0 B)}.
f ′ (q, a, A) = f (q, a, A), ∀q ∈ Q, ∀a ∈ Σ ∪ {λ} y ∀A ∈ Γ.
f ′ (q, λ, B) = {(r, λ)}∀q ∈ Q.
Se tiene que LV (AP F ) = LF (AP ′ ).
Teorema 11 Dada una gramática independiente del contexto, existe un autómata a pila equivalente, esto es, reconoce el mismo lenguaje.
Demostración.– Podemos suponer que la gramática G = (ΣN , ΣT , S, P) está en Forma Normal
de Greibach (esto no supone pérdida de generalidad). A partir de ella construiremos el autómata
a pila AP = (ΣT , ΣN , {q}, S, q, f, ∅), donde la función de transición viene dada por las reglas:
(q, λ) ∈ f (q, λ, S) si (S ::= λ) ∈ P.
(q, Z) ∈ f (q, a, A) si (A ::= aZ) ∈ P.
Se tiene que LV (AP ) = L(G).
6
CAPÍTULO 10. AUTÓMATAS A PILA
Como ejemplo, tomamos el lenguaje L = {an bn | n ≥ 0} dado por la gramática independiente del contexto G = ({S, B}, {a, b}, S, {S ::= aSB|aB|λ , B ::= b}). El autómata a pila
correspondiente vendrá dado por el autómata representado mediante el siguiente grafo:
S
p
(a, S, SB)
(a, S, B)
(λ, S, λ)
(b, B, λ)
Teorema 12 Dado un autómata a pila, existe una gramática independiente de contexto equivalente, esto es, reconoce el mismo lenguaje.
Demostración.– Supongamos que tenemos un autómata a pila AP = (Σ, Γ, Q, A0 , q0 , f, ∅)
aceptador por vaciado de pila (como ya sabemos, no supone pérdida de generalidad.) Para todo
qi , qj ∈ Q y A ∈ Γ, definimos unos nuevos sı́mbolos no terminales [qi Aqj ]; dicho sı́mbolo [qi Aqj ]
representa el conjunto de cadenas x ∈ Σ∗ que permiten al autómata eliminar el sı́mbolo A de
la cima de la pila, partiendo del estado qi y terminando en el estado qj , consumiendo todos los
sı́mbolos de x. Esto es,
{x ∈ Σ∗ | (x, qi , A) ⊢∗ (λ, qj , λ)} .
Con estos ingredientes, podemos construir la gramática independiente del contexto
G = ({S} ∪ {[qi Aqj ] | qi , qj ∈ Q , A ∈ Γ} , Σ, S, P) ,
donde las producciones P vienen dadas por las siguientes reglas:
∀qi ∈ Q, (S ::= [q0 A0 qi ]) ∈ P.
Si (qj , λ) ∈ f (qi , a, A), con a ∈ Σ ∪ {λ}, entonces ([qi Aqj ] ::= a) ∈ P.
Si (qj , Y1 Y2 · · · Yk ) ∈ f (qi , a, A), con k > 0 y a ∈ Σ ∪ {λ}, entonces
[qi Ark ] ::= a[qj Y1 r1 ][r1 Y2 r2 ] · · · [rk−1 Y krk ] | ∀(r1 , r2 , . . . , rk ) ∈ Qk ⊆ P.
Se puede demostrar que L(G) = LV (AP ), es decir:
S ⇒∗ x ⇐⇒ (x, q0 , A0 ) ⊢∗ (λ, ql , λ)

Documentos relacionados