SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
1
Capítulo 11.
Autómatas a pila
11.1. Concepto de AP
Definición, Representación, Lenguaje
reconocido, AP por vaciado de pila, AP
por estado final, AP determinista.
11.2. Equivalencia entre AP por vaciado
de pila y AP por estado final
11.3. AP y lenguajes independientes de
contexto
Obtener un AP para aceptar el lenguaje
generado por una GIC. Obtener una GIC
para generar el lenguaje aceptado por un
AP.
2
11.1. Concepto de Autómata a pila
Introducción
De igual manera que los lenguajes regulares se pueden
representar mediante autómatas finitos deterministas, los
lenguajes independientes del contexto tienen su correspondencia
en otro tipo de dispositivo: el Autómata a Pila (AP).
Un autómata a pila es un dispositivo que tiene acceso a:
• Una secuencia de símbolos de entrada, que en general se
representa por una cinta que se desplaza frente a un
mecanismo de captación de dichos símbolos.
• El símbolo superior de una memoria en pila (LIFO)
Un autómata a pila se encuentra en cada momento en un estado
determinado y el estado siguiente depende de los tres elementos
siguientes:
• estado actual
• símbolo de entrada
• símbolo superior de la pila
Generalmente, el autómata a pila es no determinista en el
sentido de que se permite que haya varias acciones posibles en
cada momento.
3
Un AP puede realizar dos tipos de operaciones elementales:
1.Dependientes de la entrada.
Se lee la cinta y se avanza la cabeza lectora,
En función:
• del estado actual (qi)
• del símbolo leído en la cinta (a)
• del símbolo en la cima de la pila (Z)
Se pasa a un nuevo estado, se elimina el elemento Z de la
cima de la pila y se introduce en su lugar una cadena de
símbolos.
2.Independientes de la entrada.
Las mismas operaciones que en el caso anterior, sólo que
no se lee la cinta, ni se avanza la cabeza lectora. Se
maneja la pila sin la información de entrada.
4
Definición formal de un AP
Un autómata a pila es una séptupla:
AP= (Σ, Γ, Q, A0, q0, f, F)
donde :
1. Σ es el alfabeto de entrada
2. Γ es el alfabeto de la pila
3. Q es un conjunto finito de estados
4. A0 ∈ Γ es el símbolo inicial de la pila
5. q0 ∈ Q el estado inicial del autómata
6. F ⊆ Q es el subconjunto de estados finales
7. 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 Q×Γ*
f : Q×{Σ∪{λ}}× Γ → 2
Q×Γ*
(subconjunto finito)
Un AP comienza su funcionamiento en la configuración inicial:
• en el estado inicial (q0)
• con sólo un símbolo en la pila (A0)
• 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.
5
Interpretación de la función de transición
Representaremos con:
(a, b,...) los elementos de Σ
(A, B, C..) los de Γ
(x, y, z,...) los de Σ*
(X, Y, Z,...) los de Γ*
La interpretación de f es:
a) 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; el
autómata pasará a algún estado qi (recordar que es no
determinista), 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.
b) 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; el autómata pasará a algún
estado qi (recordar que es no determinista), 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. Estas
representan configuraciones “muertas” del autómata.
6
Representación gráfica
AP=({a,b,c},{S,A,B,b},{p,q,r},S,p,f,{r})
f(p,a,S)={(p,SAB), (q,b)}
f(p,λ,S)={(p,SAB)}
f(q,b,b)={(q,λ)}
f(q,b,B)={(q,λ)}
f(q,c,A)={(q,A),(q,λ)}
f(q,λ,B)={(r,λ)}
• Cada estado corresponde a un nodo en el grafo y está
etiquetado con el nombre del estado (si es un estado final se
marca además con *)
• Cada transición (q, Z)∈f(p, a, A) corresponde a un arco del
nodo p al nodo q y tiene la etiqueta (a,A,Z).
• Las etiquetas de los arcos pueden tener la forma:
(a,A,λ), (a,A,B), (a,A,BC...), (λ,A,λ), (λ,A,B), (λ,A,BC...)
siendo (a∈Σ, A,B,C∈Γ).
• No hay transiciones de forma:
(..., λ, ...), (ab..., ..., ...) o (..., AB..., ...)
p q
S
(a,S,SAB)
(λ,S,SAB)
(b,b,λ)
(c,A,A)
(c,A,λ)
(b,B,λ)
(a,S,b) r*
(λ,B,λ)
7
Descripción instantánea
Una descripción instantánea o configuración es una terna (q, x,
Z) donde q∈Q, x∈Σ*, Z∈Γ* que define: el estado del autómata,
la entrada que resta por leer y el contenido de la pila en un
momento dado.
Movimientos
Un movimiento es 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 por el símbolo ├ , que se lee como “precede a”.
Hay dos tipos de movimientos:
(q, az, AZ) ├ (p, z, YZ) si (p, Y)∈f(q, a, A)
(q, z, AZ) ├ (p, z, YZ) si (p, Y)∈f(q, λ, A)
(q,p∈Q, a∈Σ, A∈Γ, z∈Σ*, Z,Y∈Γ*)
Utilizaremos el símbolo ├* para expresar el cierre transitivo y
reflexivo de ├ . Es decir se entiende por Ii ├* Ij el resultado de
una serie movimientos tales que
Ii ├* Ij ⇒ Ii ├ Ik ......├ Ij
8
Lenguaje aceptado por un autómata a pila
Se describe el proceso de aceptación o rechazo de una palabra
de Σ* mediante una sucesión de movimientos.
Un AP= (Σ, Γ, Q, A0, q0, f, F) puede reconocer palabras del
alfabeto de entrada de dos formas distintas:
- por estado final:
LF(AP) = {x | (q0, x, A0) ├* (p, λ, X), con p∈F, X∈Γ*}
- por vaciado de pila :
LV(AP) = { x | (q0, x, A0) ├* (p, λ, λ) con p∈Q}
LF(AP) y LV(AP) representan a los lenguajes reconocidos por el
autómata AP por estado final y por vaciado de pila
respectivamente.
Cuando la aceptación se realiza por vaciado de pila, el conjunto
de estados finales F es irrelevante.
Equivalencia de AP
Dos autómata a pila (por vaciado de pila o por estado final),
AP1 y AP2, son equivalentes, si aceptan el mismo lenguaje, es
decir, si L(AP1)=L(AP2).
9
Ejemplo:
Autómata a pila para el lenguaje L={an
bn
| n > 0}
APV=({a,b},{S,A},{p,q},S,p,f,∅)
f(p,a,S)={(p,A)}
f(p,a,A)={(p,AA)}
f(p,b,A)={(q, λ)}
f(q,b,A)={(q, λ)}
APF=({a,b},{S,A},{p,q,r},S,p,f,{r})
f(p,a,S)={(p,AS)}
f(p,a,A)={(p,AA)}
f(p,b,A)={(q,λ)}
f(q,b,A)={(q,λ)}
f(q,λ,S)={(r,S)}
Movimientos para (p,aabb,S) (p,abb,S) (p,aab,S)
Otro ejemplo:
Autómata a pila para el lenguaje
L={wwR
| w∈{a,b}*, wR
– imagen inversa de w}.
p q
S
(a,S,A)
(a,A,AA)
(b,A,λ)
(b,A,λ)
p q
S
(a,S,AS)
(a,A,AA)
(b,A,λ)
(b,A,λ) r*(λ,S,S)
10
Autómatas a pila deterministas
Decimos que un autómata a pila es determinista si se verifica lo
siguiente:
1. ∀ q∈Q, ∀ A∈Γ:
f(q, λ, A) ≠ ∅ ⇒ ∀ a∈Σ: f(q, a, A) = ∅
2. ∀q∈Q, ∀A∈Γ, ∀a∈ Σ∪{λ}:
f(q, a, A) contiene como máximo un elemento.
A lo sumo, desde una configuración cualquiera existe como
mucho un posible movimiento.
A diferencia de los autómatas finitos, se entiende que un AP es
no determinista, a menos que se diga lo contrario.
Ejemplo:
AP (por vaciado de pila) para L={an
bm
cp
| n≥0, m≥1, p≥ n+m}
¿Determinista o no?
Construir un APP determinista para L={an
bm
cp
| n≥0, m≥1, p=
n+m}.
p q r
S
(a,S,AS)
(a,A,AA)
(b,A,AA)
(b,S,AS)
(b,A,AA)
(c,A,λ)
(c,S,S)
(c,A,λ)
(λ,S,λ)
11
11.2. Equivalencia de APF y APV
Teorema:
El conjunto de lenguajes aceptados por estado final por los
autómatas a pila LAPF es igual que el conjunto de lenguajes
aceptados por vaciado por pila de los autómatas a pila LAPV.
Método de demostración:
1. LAPF ⊆ LAPV
Sea AP= (Σ, Γ, Q, A0, q0, f, F) un autómata a pila y LF(AP) el
lenguaje aceptado (por estado final) de este autómata.
Construimos AP’= (Σ, Γ∪{B}, Q∪{s,r}, B, s, f’, ∅), con B∉Γ
y s,r∉Q, donde f’ esta definido por:
f’(s,λ,B)={(q0,A0B)}
f’(q,a,A)=f(q,a,A) para todo q∈Q, q∉F, a∈Σ∪{λ} y A∈Γ
f’(q,a,A)=f(q,a,A) para todo q∈F, a∈Σ y A∈Γ
f’(q,λ,A)=f(q,λ,A) ∪{(r, λ)} para todo q∈F y A∈Γ
f’(q,λ,B)= {(r, λ)} para todo q∈F
f’(r,λ,A)= {(r, λ)} para todo A∈Γ∪{B}
Se puede mostrar que LF(AP)=LV(AP’). Por tanto se verifica que
LAPF ⊆ LAPV.
12
2. LAPV ⊆ LAPF
Sea AP= (Σ, Γ, Q, A0, q0, f, F) un autómata a pila y LV(AP) el
lenguaje aceptado (por vaciado de pila) de este autómata.
Construimos AP’= (Σ, Γ∪{B}, Q∪{s,r}, B, s, f’, {r}), con B∉Γ
y s,r∉Q, donde f’ esta definido por:
f’(s,λ,B)={(q0,A0B)}
f’(q,a,A)=f(q,a,A) para todo q∈Q, a∈Σ∪{λ} y A∈Γ
f’(q,λ,B)= {(r, λ)} para todo q∈Q
Se puede mostrar que LV(AP)=LF(AP’). Por tanto se verifica que
LAPV ⊆ LAPF.
De LAPF ⊆ LAPV y LAPV ⊆ LAPF se sigue que LAPV = LAPF, lo que
demuestra el teorema.
13
11.3. AP y lenguajes independientes del
contexto
Construcción de un AP a partir de una GIC
Teorema:
Sea APΣ el conjunto de todos los autómatas a pila sobre un
alfabeto Σ y LAP_Σ={L | L=L(AP) y AP∈ APΣ} la familia de
lenguajes sobre Σ aceptados por los autómatas a pila. (Da igual
si se acepta el lenguaje por estado final o por vaciado de pila.)
Sea LG_2_Σ la familia de todos los lenguajes sobre Σ generados
por gramáticas del tipo 2 (lenguajes independientes del
contexto).
⇒ LG_2_Σ = LAP_Σ .
Método de demostración:
1. LG_2_Σ⊆ LAPV_Σ
Para cada GIC, G, existe un autómata a pila por vaciado de
pila, AP, tal que L(G)=LV(AP).
⇒ Encontrar un algoritmo para construir AP a partir de una
gramática genérica G.
2. LG_2_Σ⊇ LAPV_Σ
Para cada autómata a pila, AP, por vaciado a de pila existe
una GIC, G, tal que L(G)=LV(AP).
⇒ Encontrar un algoritmo para construir G a partir de un AP
genérico.
LG_2_Σ⊆ LAPV_Σ y LG_2_Σ⊇ LAPV_Σ ⇒ LG_2_Σ=LAPV_Σ
Se verifica: Lic_Σ= LG_2_Σ=LAPV_Σ=LAPF_Σ=LAP_Σ
14
GIC ⇒ AP reconocedor por vaciado de pila
Ejemplo:
Lenguaje L={ an
bn
| n≥0}:
S::=aSb|λ ⇒(bien formada) S::= aSb|ab|λ
1. Transformar gramática en FNG:
G=({a,b},{S,B},S,P)
P={S::= aSB|aB|λ, B::= b}
2. Construir autómata:
AP= ({a,b}, {S,B}, {q}, S, q, f, ∅), donde f se define por:
f(q,λ,S)={(q, λ)} f(q,b,B)={(q,λ)}
f(q,a,S)={(q,SB),(q,B)}
(q,aabb,S) ├ (q,abb,SB)├ (q,bb,SBB)├ (q,bb,BB)├ (q,b,B)├ (q,λ,λ)
otra posibilidad: (q,aabb,S) ├ (q,abb,B) no
(q,abb,S) ├ (q,bb,SB)├ (q,bb,B)├ (q,b,λ) no
otra posibilidad:
(q,abb,S) ├ (q,abb,λ) no
(q,abb,S) ├ (q,bb,B)├ (q,b,λ) no
q
S (λ,S,λ)
(a,S,SB)
(a,S,B)
(b,B,λ)
15
Otra posibilidad:
Gramática en FNG
G=({a,b},{S,B},S,P)
P={S::= aSB|aB|λ, B::= b}
AP= ({a,b}, {S,B,a,b}, {q}, S, q, f, ∅), donde f se define:
f(q,λ,S)={(q,aSB),(q,aB),(q,λ)}
f(q,λ,B)={(q,b)}
f(q,a,a)={(q,λ)}
f(q,b,b)={(q,λ)}
(q,aabb,S)├ (q,aabb,aSB)├ (q,abb,SB)├ (q,abb,aBB)├ (q,bb,BB)├
(q,bb,bB)├ (q,b,B)├ (q,b,b)├ (q,λ, λ)
(q,abb,S)├ (q,abb,aSB)├ (q,bb,SB)├ (q,bb,aBB) no
otra posibilidad:
(q,abb,S)├ (q,abb,λ) no
(q,abb,S)├ (q,abb,aB)├ (q,bb,B)├ (q,bb,b)├ (q,b,λ) no
(λ,S,aSB)
(λ,S,aB)
(λ,S,λ)
(λ,B,b)
(a,a,λ)
(b,b, λ)
qS
16
Algoritmo:
Sea la gramática G = (ΣT, ΣN, S, P), que suponemos en forma
normal de Greibach. A partir de ella construimos un autómata
a pila AP= (Σ, Γ, Q, A0, q0, f, F) como sigue:
Algoritmo 1:
Σ = ΣT, Γ= ΣN, Q={q}, A0 = S, q0=q, F= ∅
y f se define por:
1. (q, λ) ∈ f(q, λ, S) si (S::= λ) ∈ P
2. (q, Z) ∈ f(q, a, A) si (A::= aZ) ∈ P
Algoritmo 2:
Σ = ΣT, Γ= ΣN∪ΣT, Q={q}, A0 = S, q0=q, F= ∅
y f se define por:
1. (q, λ) ∈ f(q, λ, S) si (S::= λ) ∈ P
2. (q, aZ) ∈ f(q, λ, A) si (A::= aZ) ∈ P
3. f(q, a, a)={(q, λ)} para todo a∈ΣT
17
Ejemplo:
Lenguaje de las paréntesis (bien formada):
S::=SS|aSb|λ ⇒ S::= SS|aSb|ab|λ
1. Transformar gramática en FNG (proceso sin S::= λ):
G=({a,b},{S,B,C},S,P)
P= {S::= aSBC|aBC|aSB|aB|λ
C::= aSBCC|aBCC|aSBC|aBC|aSB|aB, B::= b}
2. Construir autómata:
AP= ({a,b}, {S,B,C}, {q}, S, q, f, ∅), donde f se define:
f(q,λ,S)={(q, λ)}
f(q,a,S)={(q,SBC),(q,BC),(q,SB),(q,B)}
f(q,a,C)={(q,SBCC),(q,BCC),(q,SBC),(q,BC),(q,SB),(q,B)}
f(q,b,B)={(q,λ)}
(q,abaababb,S)├ (q,baababb,BC)├ (q,aababb,C)├ (q,ababb,SB)├
(q,babb,BCB)├ (q,abb,CB)├ (q,bb,BB)├ (q,b,B)├ (q,λ,λ)
18
GIC ⇒ AP reconocedor por estado final
Idea:
Construir el AP por vaciado de pila (de un estado) y añadir dos
estados nuevos:
Algoritmo:
Sea la gramática G = (ΣT, ΣN, S, P), que suponemos en forma
normal de Greibach. A partir de ella construimos un autómata
a pila AP como sigue:
1. Construir el autómata AP’= (Σ’, Γ’, {q}, S, q, f’, F’) que
acepta por vaciado de pila con el algoritmo dado anteriormente.
Sea q el único estado de este autómata.
2. AP=(Σ’, Γ’∪ A0, {q, r, s}, A0, s, f, {r}) con A0∉Γ’ y f
definido por:
f(s, λ, A0)={(q, SA0)}
f(q, a, A)=f’(q,a,A) para todo a∈Σ’ ∪{λ} y A∈Γ’
f(q, λ, A0)={(r, A0)}
s
A0
(λ,A0,SA0)
q
(λ,S,λ)
(a,S,SB)
(a,S,B)
(b,B,λ)
r*
(λ,A0,A0)
19
Construcción de una GIC a partir de un AP genérico
Sea el autómata a pila AP=(Σ, Γ, Q, A0, q0, f, ∅) (que acepta por
vaciado de pila). Para todo qi,qj ∈Q, A∈Γ:
El símbolo [qiAqj] 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. Formalmente:
{ x∈Σ*
/ (qi,x,A) ├* (qj,λ,λ) }
A partir de este autómata, y de la definición anterior,
construimos la siguiente GIC: G=(ΣT, ΣN, S, P), donde:
ΣT=Σ, ΣN={S}∪{[qiAqj] | qi, qj∈Q , A∈Γ}
y el conjunto de producciones P:
1. para todo qi ∈ Q:
S::=[q0A0qi] ∈ P
2. por cada (qj, Y1Y2…Yk) ∈ f(qi, a, A), donde k >0, y
a∈Σ∪{λ}:
{[qiArk] ::= a[qjY1r1][r1Y2 r2] … [rk-1Yk rk],
para todas las listas de estados (r1,r2,… ,rk) ∈Qk
} ⊂ P
3. por cada (qj, λ) ∈ f(qi, a, A), donde a∈Σ∪{λ}:
{[qiAqj] ::= a, para todo qj∈Q } ⊂ P
Se puede demostrar que L(G)=LV(AP), es decir:
S →* x, si y sólo si, (q0,x,A0)├* (qj,λ,λ), para algún qj
Eso completa la demostración para LG_2_Σ⊇ LAPV_Σ.
Dado que LG_2_Σ⊆ LAPV_Σ (construcción de AP a partir de G) se
verifica LG_2_Σ= LAPV_Σ.
20
Ejemplo:
Autómata (por vaciado de pila):
AP= ({a,b}, {S,B}, {q}, S, q, f, ∅), donde f se define por:
f(q,λ,S)={(q, λ)} f(q,b,B)={(q,λ)}
f(q,a,S)={(q,SB),(q,B)}
Gonstruir G a partir de AP:
G=({a,b}, ΣN, A, P)
ΣN={A, [qSq], [qBq]}
P={ A::=[qSq] , [qSq]::= λ, [qBq]::= b
[qSx]::=a[qBx] con x∈Q ⇒ [qSq]::=a[qBq]
[qSx]::=a[qSy][yBx] con x,y ∈Q ⇒ [qSq]::=a[qSq][qBq] }
Usamos otros símbolos y simplificamos:
P={ A::=S, S::=λ|aB|aSB, B::=b} ⇒ {A::=λ|aB|aAB, B::=b}
Autómata:
(q,aaabbb,S) ├ (q,aabbb,SB)├ (q,abbb,SBB) ├ (q,bbb,BBB)├
(q,bb,BB)├ (q,b,B)├ (q,λ,λ)
Gramática:
A→aAB→aaABB→aaaBBB→aaabBB→ aaabbB→ aaabbb
Otro ejemplo:
q
S (λ,S,λ)
(a,S,SB)
(a,S,B)
(b,B,λ)
q
S (a,S,SAA)
(b,A,λ)
(b,S,λ)

Weitere ähnliche Inhalte

Was ist angesagt?

1.4 software numerico
1.4 software numerico1.4 software numerico
1.4 software numerico
morenito9001
 

Was ist angesagt? (20)

GRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUASGRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUAS
 
Tutorial de JFLAP
Tutorial de JFLAPTutorial de JFLAP
Tutorial de JFLAP
 
Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajes
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata
 
Autómatas Finitos
Autómatas FinitosAutómatas Finitos
Autómatas Finitos
 
Automatas y gramaticas
Automatas y gramaticasAutomatas y gramaticas
Automatas y gramaticas
 
maquinas de turing jflap
maquinas de turing jflapmaquinas de turing jflap
maquinas de turing jflap
 
Autómata de Pila
Autómata de Pila Autómata de Pila
Autómata de Pila
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Automata Finito No Determinista
Automata Finito No DeterministaAutomata Finito No Determinista
Automata Finito No Determinista
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Desarrollo momento 3
Desarrollo momento 3Desarrollo momento 3
Desarrollo momento 3
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
Lenguajes no regulares
Lenguajes no regularesLenguajes no regulares
Lenguajes no regulares
 
Autómatas de pila
Autómatas de pila Autómatas de pila
Autómatas de pila
 
Tipos de Autómatas 
Tipos de Autómatas Tipos de Autómatas 
Tipos de Autómatas 
 
Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formales
 
1.4 software numerico
1.4 software numerico1.4 software numerico
1.4 software numerico
 

Ähnlich wie Autómata de pila (AP)

Automatas de pila_no_det
Automatas de pila_no_detAutomatas de pila_no_det
Automatas de pila_no_det
Oscar Eduardo
 
No determinista autómatas finitos
No determinista autómatas finitosNo determinista autómatas finitos
No determinista autómatas finitos
Juan Garcia
 

Ähnlich wie Autómata de pila (AP) (20)

Presentacion Enguelbert Garcia
Presentacion Enguelbert GarciaPresentacion Enguelbert Garcia
Presentacion Enguelbert Garcia
 
Máquinas de turing o máquinas con cola
Máquinas de turing o máquinas con colaMáquinas de turing o máquinas con cola
Máquinas de turing o máquinas con cola
 
Expocision u3
Expocision  u3Expocision  u3
Expocision u3
 
Recapitulación
RecapitulaciónRecapitulación
Recapitulación
 
Máquinas de turing o máquinas con cola
Máquinas de turing o máquinas con colaMáquinas de turing o máquinas con cola
Máquinas de turing o máquinas con cola
 
La máquina sin memoria
La máquina sin memoriaLa máquina sin memoria
La máquina sin memoria
 
Automatas de pila_no_det
Automatas de pila_no_detAutomatas de pila_no_det
Automatas de pila_no_det
 
Depende del contexto
Depende del contextoDepende del contexto
Depende del contexto
 
Teoría de Autómata
Teoría de AutómataTeoría de Autómata
Teoría de Autómata
 
No determinista autómatas finitos
No determinista autómatas finitosNo determinista autómatas finitos
No determinista autómatas finitos
 
Autómatas finitos no deterministas actualizado
Autómatas finitos no deterministas actualizadoAutómatas finitos no deterministas actualizado
Autómatas finitos no deterministas actualizado
 
Automatas Infinitos
Automatas Infinitos Automatas Infinitos
Automatas Infinitos
 
Apunte4
Apunte4Apunte4
Apunte4
 
Revisando la jerarquía de chomsky
Revisando la jerarquía de chomskyRevisando la jerarquía de chomsky
Revisando la jerarquía de chomsky
 
Cuadro descriptivo
Cuadro descriptivoCuadro descriptivo
Cuadro descriptivo
 
Conversion
ConversionConversion
Conversion
 
AUTOMATAS.PPT
AUTOMATAS.PPTAUTOMATAS.PPT
AUTOMATAS.PPT
 
Automatas finitos
Automatas finitosAutomatas finitos
Automatas finitos
 
Tipos de flip flops
Tipos de flip flopsTipos de flip flops
Tipos de flip flops
 
Autómatas finitos no deterministas
Autómatas finitos no deterministasAutómatas finitos no deterministas
Autómatas finitos no deterministas
 

Mehr von Rodrigo GC (9)

Serie de Taylor
Serie de TaylorSerie de Taylor
Serie de Taylor
 
La conjetura de poincaré
La conjetura de poincaréLa conjetura de poincaré
La conjetura de poincaré
 
Matemáticas Discreta y Combinatoria Ralph P. Grimaldioria
Matemáticas Discreta y Combinatoria Ralph P. GrimaldioriaMatemáticas Discreta y Combinatoria Ralph P. Grimaldioria
Matemáticas Discreta y Combinatoria Ralph P. Grimaldioria
 
Fórmulas de integración
Fórmulas de integraciónFórmulas de integración
Fórmulas de integración
 
Calculus ~ Spivak
Calculus ~ SpivakCalculus ~ Spivak
Calculus ~ Spivak
 
Campos electromagnéticos
Campos electromagnéticosCampos electromagnéticos
Campos electromagnéticos
 
Movimiento en una dimensión, vectores
Movimiento en una dimensión, vectoresMovimiento en una dimensión, vectores
Movimiento en una dimensión, vectores
 
Campo eléctrico
Campo eléctricoCampo eléctrico
Campo eléctrico
 
IES "Falla de seguridad en iPhone 4, 5 y iPad 2"
IES "Falla de seguridad en iPhone 4, 5 y iPad 2"IES "Falla de seguridad en iPhone 4, 5 y iPad 2"
IES "Falla de seguridad en iPhone 4, 5 y iPad 2"
 

Kürzlich hochgeladen

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
EduardoJosVargasCama1
 

Kürzlich hochgeladen (20)

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 

Autómata de pila (AP)

  • 1. 1 Capítulo 11. Autómatas a pila 11.1. Concepto de AP Definición, Representación, Lenguaje reconocido, AP por vaciado de pila, AP por estado final, AP determinista. 11.2. Equivalencia entre AP por vaciado de pila y AP por estado final 11.3. AP y lenguajes independientes de contexto Obtener un AP para aceptar el lenguaje generado por una GIC. Obtener una GIC para generar el lenguaje aceptado por un AP.
  • 2. 2 11.1. Concepto de Autómata a pila Introducción De igual manera que los lenguajes regulares se pueden representar mediante autómatas finitos deterministas, los lenguajes independientes del contexto tienen su correspondencia en otro tipo de dispositivo: el Autómata a Pila (AP). Un autómata a pila es un dispositivo que tiene acceso a: • Una secuencia de símbolos de entrada, que en general se representa por una cinta que se desplaza frente a un mecanismo de captación de dichos símbolos. • El símbolo superior de una memoria en pila (LIFO) Un autómata a pila se encuentra en cada momento en un estado determinado y el estado siguiente depende de los tres elementos siguientes: • estado actual • símbolo de entrada • símbolo superior de la pila Generalmente, el autómata a pila es no determinista en el sentido de que se permite que haya varias acciones posibles en cada momento.
  • 3. 3 Un AP puede realizar dos tipos de operaciones elementales: 1.Dependientes de la entrada. Se lee la cinta y se avanza la cabeza lectora, En función: • del estado actual (qi) • del símbolo leído en la cinta (a) • del símbolo en la cima de la pila (Z) Se pasa a un nuevo estado, se elimina el elemento Z de la cima de la pila y se introduce en su lugar una cadena de símbolos. 2.Independientes de la entrada. Las mismas operaciones que en el caso anterior, sólo que no se lee la cinta, ni se avanza la cabeza lectora. Se maneja la pila sin la información de entrada.
  • 4. 4 Definición formal de un AP Un autómata a pila es una séptupla: AP= (Σ, Γ, Q, A0, q0, f, F) donde : 1. Σ es el alfabeto de entrada 2. Γ es el alfabeto de la pila 3. Q es un conjunto finito de estados 4. A0 ∈ Γ es el símbolo inicial de la pila 5. q0 ∈ Q el estado inicial del autómata 6. F ⊆ Q es el subconjunto de estados finales 7. 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 Q×Γ* f : Q×{Σ∪{λ}}× Γ → 2 Q×Γ* (subconjunto finito) Un AP comienza su funcionamiento en la configuración inicial: • en el estado inicial (q0) • con sólo un símbolo en la pila (A0) • 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.
  • 5. 5 Interpretación de la función de transición Representaremos con: (a, b,...) los elementos de Σ (A, B, C..) los de Γ (x, y, z,...) los de Σ* (X, Y, Z,...) los de Γ* La interpretación de f es: a) 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; el autómata pasará a algún estado qi (recordar que es no determinista), 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. b) 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; el autómata pasará a algún estado qi (recordar que es no determinista), 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. Estas representan configuraciones “muertas” del autómata.
  • 6. 6 Representación gráfica AP=({a,b,c},{S,A,B,b},{p,q,r},S,p,f,{r}) f(p,a,S)={(p,SAB), (q,b)} f(p,λ,S)={(p,SAB)} f(q,b,b)={(q,λ)} f(q,b,B)={(q,λ)} f(q,c,A)={(q,A),(q,λ)} f(q,λ,B)={(r,λ)} • Cada estado corresponde a un nodo en el grafo y está etiquetado con el nombre del estado (si es un estado final se marca además con *) • Cada transición (q, Z)∈f(p, a, A) corresponde a un arco del nodo p al nodo q y tiene la etiqueta (a,A,Z). • Las etiquetas de los arcos pueden tener la forma: (a,A,λ), (a,A,B), (a,A,BC...), (λ,A,λ), (λ,A,B), (λ,A,BC...) siendo (a∈Σ, A,B,C∈Γ). • No hay transiciones de forma: (..., λ, ...), (ab..., ..., ...) o (..., AB..., ...) p q S (a,S,SAB) (λ,S,SAB) (b,b,λ) (c,A,A) (c,A,λ) (b,B,λ) (a,S,b) r* (λ,B,λ)
  • 7. 7 Descripción instantánea Una descripción instantánea o configuración es una terna (q, x, Z) donde q∈Q, x∈Σ*, Z∈Γ* que define: el estado del autómata, la entrada que resta por leer y el contenido de la pila en un momento dado. Movimientos Un movimiento es 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 por el símbolo ├ , que se lee como “precede a”. Hay dos tipos de movimientos: (q, az, AZ) ├ (p, z, YZ) si (p, Y)∈f(q, a, A) (q, z, AZ) ├ (p, z, YZ) si (p, Y)∈f(q, λ, A) (q,p∈Q, a∈Σ, A∈Γ, z∈Σ*, Z,Y∈Γ*) Utilizaremos el símbolo ├* para expresar el cierre transitivo y reflexivo de ├ . Es decir se entiende por Ii ├* Ij el resultado de una serie movimientos tales que Ii ├* Ij ⇒ Ii ├ Ik ......├ Ij
  • 8. 8 Lenguaje aceptado por un autómata a pila Se describe el proceso de aceptación o rechazo de una palabra de Σ* mediante una sucesión de movimientos. Un AP= (Σ, Γ, Q, A0, q0, f, F) puede reconocer palabras del alfabeto de entrada de dos formas distintas: - por estado final: LF(AP) = {x | (q0, x, A0) ├* (p, λ, X), con p∈F, X∈Γ*} - por vaciado de pila : LV(AP) = { x | (q0, x, A0) ├* (p, λ, λ) con p∈Q} LF(AP) y LV(AP) representan a los lenguajes reconocidos por el autómata AP por estado final y por vaciado de pila respectivamente. Cuando la aceptación se realiza por vaciado de pila, el conjunto de estados finales F es irrelevante. Equivalencia de AP Dos autómata a pila (por vaciado de pila o por estado final), AP1 y AP2, son equivalentes, si aceptan el mismo lenguaje, es decir, si L(AP1)=L(AP2).
  • 9. 9 Ejemplo: Autómata a pila para el lenguaje L={an bn | n > 0} APV=({a,b},{S,A},{p,q},S,p,f,∅) f(p,a,S)={(p,A)} f(p,a,A)={(p,AA)} f(p,b,A)={(q, λ)} f(q,b,A)={(q, λ)} APF=({a,b},{S,A},{p,q,r},S,p,f,{r}) f(p,a,S)={(p,AS)} f(p,a,A)={(p,AA)} f(p,b,A)={(q,λ)} f(q,b,A)={(q,λ)} f(q,λ,S)={(r,S)} Movimientos para (p,aabb,S) (p,abb,S) (p,aab,S) Otro ejemplo: Autómata a pila para el lenguaje L={wwR | w∈{a,b}*, wR – imagen inversa de w}. p q S (a,S,A) (a,A,AA) (b,A,λ) (b,A,λ) p q S (a,S,AS) (a,A,AA) (b,A,λ) (b,A,λ) r*(λ,S,S)
  • 10. 10 Autómatas a pila deterministas Decimos que un autómata a pila es determinista si se verifica lo siguiente: 1. ∀ q∈Q, ∀ A∈Γ: f(q, λ, A) ≠ ∅ ⇒ ∀ a∈Σ: f(q, a, A) = ∅ 2. ∀q∈Q, ∀A∈Γ, ∀a∈ Σ∪{λ}: f(q, a, A) contiene como máximo un elemento. A lo sumo, desde una configuración cualquiera existe como mucho un posible movimiento. A diferencia de los autómatas finitos, se entiende que un AP es no determinista, a menos que se diga lo contrario. Ejemplo: AP (por vaciado de pila) para L={an bm cp | n≥0, m≥1, p≥ n+m} ¿Determinista o no? Construir un APP determinista para L={an bm cp | n≥0, m≥1, p= n+m}. p q r S (a,S,AS) (a,A,AA) (b,A,AA) (b,S,AS) (b,A,AA) (c,A,λ) (c,S,S) (c,A,λ) (λ,S,λ)
  • 11. 11 11.2. Equivalencia de APF y APV Teorema: El conjunto de lenguajes aceptados por estado final por los autómatas a pila LAPF es igual que el conjunto de lenguajes aceptados por vaciado por pila de los autómatas a pila LAPV. Método de demostración: 1. LAPF ⊆ LAPV Sea AP= (Σ, Γ, Q, A0, q0, f, F) un autómata a pila y LF(AP) el lenguaje aceptado (por estado final) de este autómata. Construimos AP’= (Σ, Γ∪{B}, Q∪{s,r}, B, s, f’, ∅), con B∉Γ y s,r∉Q, donde f’ esta definido por: f’(s,λ,B)={(q0,A0B)} f’(q,a,A)=f(q,a,A) para todo q∈Q, q∉F, a∈Σ∪{λ} y A∈Γ f’(q,a,A)=f(q,a,A) para todo q∈F, a∈Σ y A∈Γ f’(q,λ,A)=f(q,λ,A) ∪{(r, λ)} para todo q∈F y A∈Γ f’(q,λ,B)= {(r, λ)} para todo q∈F f’(r,λ,A)= {(r, λ)} para todo A∈Γ∪{B} Se puede mostrar que LF(AP)=LV(AP’). Por tanto se verifica que LAPF ⊆ LAPV.
  • 12. 12 2. LAPV ⊆ LAPF Sea AP= (Σ, Γ, Q, A0, q0, f, F) un autómata a pila y LV(AP) el lenguaje aceptado (por vaciado de pila) de este autómata. Construimos AP’= (Σ, Γ∪{B}, Q∪{s,r}, B, s, f’, {r}), con B∉Γ y s,r∉Q, donde f’ esta definido por: f’(s,λ,B)={(q0,A0B)} f’(q,a,A)=f(q,a,A) para todo q∈Q, a∈Σ∪{λ} y A∈Γ f’(q,λ,B)= {(r, λ)} para todo q∈Q Se puede mostrar que LV(AP)=LF(AP’). Por tanto se verifica que LAPV ⊆ LAPF. De LAPF ⊆ LAPV y LAPV ⊆ LAPF se sigue que LAPV = LAPF, lo que demuestra el teorema.
  • 13. 13 11.3. AP y lenguajes independientes del contexto Construcción de un AP a partir de una GIC Teorema: Sea APΣ el conjunto de todos los autómatas a pila sobre un alfabeto Σ y LAP_Σ={L | L=L(AP) y AP∈ APΣ} la familia de lenguajes sobre Σ aceptados por los autómatas a pila. (Da igual si se acepta el lenguaje por estado final o por vaciado de pila.) Sea LG_2_Σ la familia de todos los lenguajes sobre Σ generados por gramáticas del tipo 2 (lenguajes independientes del contexto). ⇒ LG_2_Σ = LAP_Σ . Método de demostración: 1. LG_2_Σ⊆ LAPV_Σ Para cada GIC, G, existe un autómata a pila por vaciado de pila, AP, tal que L(G)=LV(AP). ⇒ Encontrar un algoritmo para construir AP a partir de una gramática genérica G. 2. LG_2_Σ⊇ LAPV_Σ Para cada autómata a pila, AP, por vaciado a de pila existe una GIC, G, tal que L(G)=LV(AP). ⇒ Encontrar un algoritmo para construir G a partir de un AP genérico. LG_2_Σ⊆ LAPV_Σ y LG_2_Σ⊇ LAPV_Σ ⇒ LG_2_Σ=LAPV_Σ Se verifica: Lic_Σ= LG_2_Σ=LAPV_Σ=LAPF_Σ=LAP_Σ
  • 14. 14 GIC ⇒ AP reconocedor por vaciado de pila Ejemplo: Lenguaje L={ an bn | n≥0}: S::=aSb|λ ⇒(bien formada) S::= aSb|ab|λ 1. Transformar gramática en FNG: G=({a,b},{S,B},S,P) P={S::= aSB|aB|λ, B::= b} 2. Construir autómata: AP= ({a,b}, {S,B}, {q}, S, q, f, ∅), donde f se define por: f(q,λ,S)={(q, λ)} f(q,b,B)={(q,λ)} f(q,a,S)={(q,SB),(q,B)} (q,aabb,S) ├ (q,abb,SB)├ (q,bb,SBB)├ (q,bb,BB)├ (q,b,B)├ (q,λ,λ) otra posibilidad: (q,aabb,S) ├ (q,abb,B) no (q,abb,S) ├ (q,bb,SB)├ (q,bb,B)├ (q,b,λ) no otra posibilidad: (q,abb,S) ├ (q,abb,λ) no (q,abb,S) ├ (q,bb,B)├ (q,b,λ) no q S (λ,S,λ) (a,S,SB) (a,S,B) (b,B,λ)
  • 15. 15 Otra posibilidad: Gramática en FNG G=({a,b},{S,B},S,P) P={S::= aSB|aB|λ, B::= b} AP= ({a,b}, {S,B,a,b}, {q}, S, q, f, ∅), donde f se define: f(q,λ,S)={(q,aSB),(q,aB),(q,λ)} f(q,λ,B)={(q,b)} f(q,a,a)={(q,λ)} f(q,b,b)={(q,λ)} (q,aabb,S)├ (q,aabb,aSB)├ (q,abb,SB)├ (q,abb,aBB)├ (q,bb,BB)├ (q,bb,bB)├ (q,b,B)├ (q,b,b)├ (q,λ, λ) (q,abb,S)├ (q,abb,aSB)├ (q,bb,SB)├ (q,bb,aBB) no otra posibilidad: (q,abb,S)├ (q,abb,λ) no (q,abb,S)├ (q,abb,aB)├ (q,bb,B)├ (q,bb,b)├ (q,b,λ) no (λ,S,aSB) (λ,S,aB) (λ,S,λ) (λ,B,b) (a,a,λ) (b,b, λ) qS
  • 16. 16 Algoritmo: Sea la gramática G = (ΣT, ΣN, S, P), que suponemos en forma normal de Greibach. A partir de ella construimos un autómata a pila AP= (Σ, Γ, Q, A0, q0, f, F) como sigue: Algoritmo 1: Σ = ΣT, Γ= ΣN, Q={q}, A0 = S, q0=q, F= ∅ y f se define por: 1. (q, λ) ∈ f(q, λ, S) si (S::= λ) ∈ P 2. (q, Z) ∈ f(q, a, A) si (A::= aZ) ∈ P Algoritmo 2: Σ = ΣT, Γ= ΣN∪ΣT, Q={q}, A0 = S, q0=q, F= ∅ y f se define por: 1. (q, λ) ∈ f(q, λ, S) si (S::= λ) ∈ P 2. (q, aZ) ∈ f(q, λ, A) si (A::= aZ) ∈ P 3. f(q, a, a)={(q, λ)} para todo a∈ΣT
  • 17. 17 Ejemplo: Lenguaje de las paréntesis (bien formada): S::=SS|aSb|λ ⇒ S::= SS|aSb|ab|λ 1. Transformar gramática en FNG (proceso sin S::= λ): G=({a,b},{S,B,C},S,P) P= {S::= aSBC|aBC|aSB|aB|λ C::= aSBCC|aBCC|aSBC|aBC|aSB|aB, B::= b} 2. Construir autómata: AP= ({a,b}, {S,B,C}, {q}, S, q, f, ∅), donde f se define: f(q,λ,S)={(q, λ)} f(q,a,S)={(q,SBC),(q,BC),(q,SB),(q,B)} f(q,a,C)={(q,SBCC),(q,BCC),(q,SBC),(q,BC),(q,SB),(q,B)} f(q,b,B)={(q,λ)} (q,abaababb,S)├ (q,baababb,BC)├ (q,aababb,C)├ (q,ababb,SB)├ (q,babb,BCB)├ (q,abb,CB)├ (q,bb,BB)├ (q,b,B)├ (q,λ,λ)
  • 18. 18 GIC ⇒ AP reconocedor por estado final Idea: Construir el AP por vaciado de pila (de un estado) y añadir dos estados nuevos: Algoritmo: Sea la gramática G = (ΣT, ΣN, S, P), que suponemos en forma normal de Greibach. A partir de ella construimos un autómata a pila AP como sigue: 1. Construir el autómata AP’= (Σ’, Γ’, {q}, S, q, f’, F’) que acepta por vaciado de pila con el algoritmo dado anteriormente. Sea q el único estado de este autómata. 2. AP=(Σ’, Γ’∪ A0, {q, r, s}, A0, s, f, {r}) con A0∉Γ’ y f definido por: f(s, λ, A0)={(q, SA0)} f(q, a, A)=f’(q,a,A) para todo a∈Σ’ ∪{λ} y A∈Γ’ f(q, λ, A0)={(r, A0)} s A0 (λ,A0,SA0) q (λ,S,λ) (a,S,SB) (a,S,B) (b,B,λ) r* (λ,A0,A0)
  • 19. 19 Construcción de una GIC a partir de un AP genérico Sea el autómata a pila AP=(Σ, Γ, Q, A0, q0, f, ∅) (que acepta por vaciado de pila). Para todo qi,qj ∈Q, A∈Γ: El símbolo [qiAqj] 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. Formalmente: { x∈Σ* / (qi,x,A) ├* (qj,λ,λ) } A partir de este autómata, y de la definición anterior, construimos la siguiente GIC: G=(ΣT, ΣN, S, P), donde: ΣT=Σ, ΣN={S}∪{[qiAqj] | qi, qj∈Q , A∈Γ} y el conjunto de producciones P: 1. para todo qi ∈ Q: S::=[q0A0qi] ∈ P 2. por cada (qj, Y1Y2…Yk) ∈ f(qi, a, A), donde k >0, y a∈Σ∪{λ}: {[qiArk] ::= a[qjY1r1][r1Y2 r2] … [rk-1Yk rk], para todas las listas de estados (r1,r2,… ,rk) ∈Qk } ⊂ P 3. por cada (qj, λ) ∈ f(qi, a, A), donde a∈Σ∪{λ}: {[qiAqj] ::= a, para todo qj∈Q } ⊂ P Se puede demostrar que L(G)=LV(AP), es decir: S →* x, si y sólo si, (q0,x,A0)├* (qj,λ,λ), para algún qj Eso completa la demostración para LG_2_Σ⊇ LAPV_Σ. Dado que LG_2_Σ⊆ LAPV_Σ (construcción de AP a partir de G) se verifica LG_2_Σ= LAPV_Σ.
  • 20. 20 Ejemplo: Autómata (por vaciado de pila): AP= ({a,b}, {S,B}, {q}, S, q, f, ∅), donde f se define por: f(q,λ,S)={(q, λ)} f(q,b,B)={(q,λ)} f(q,a,S)={(q,SB),(q,B)} Gonstruir G a partir de AP: G=({a,b}, ΣN, A, P) ΣN={A, [qSq], [qBq]} P={ A::=[qSq] , [qSq]::= λ, [qBq]::= b [qSx]::=a[qBx] con x∈Q ⇒ [qSq]::=a[qBq] [qSx]::=a[qSy][yBx] con x,y ∈Q ⇒ [qSq]::=a[qSq][qBq] } Usamos otros símbolos y simplificamos: P={ A::=S, S::=λ|aB|aSB, B::=b} ⇒ {A::=λ|aB|aAB, B::=b} Autómata: (q,aaabbb,S) ├ (q,aabbb,SB)├ (q,abbb,SBB) ├ (q,bbb,BBB)├ (q,bb,BB)├ (q,b,B)├ (q,λ,λ) Gramática: A→aAB→aaABB→aaaBBB→aaabBB→ aaabbB→ aaabbb Otro ejemplo: q S (λ,S,λ) (a,S,SB) (a,S,B) (b,B,λ) q S (a,S,SAA) (b,A,λ) (b,S,λ)