Teoría de Automatas, Lenguajes Formales y Gramáticas

Anuncio
Teorı́a de Automatas, Lenguajes Formales y
Gramáticas
D. Castro Esteban
TEX & LATEX
Contenidos
1
Autómatas finitos
Autómatas finitos deterministas
Autómatas finitos no deterministas
Autómatas finitos no deterministas
1
Gramáticas regulares
Expresiones y gramáticas regulares
Autómatas finitos y gramáticas regulares
Autómatas y expresiones regulares
1
Propiedades de los lenguajes regulares
Lenguajes no regulares
Propiedades de clausura
Propiedades de decisión
Equivalencia y minimización
1
Autómatas a pila
Definiciones básicas
Autómatas a pila deterministas
Autómatas finitos deterministas
Definición
Un autómata finito determinista es una tupla D = (K , Σ, δ , s, F )
donde:
K es un conjunto (finito) de estados,
Σ es un alfabeto (finito),
δ : K × Σ −→ K es la función de transición,
s ∈ K es el estado inicial, y
F ⊆ K es el conjunto de los estados aceptadores.
Autómatas finitos deterministas
Ejemplo
Consideramos A = (K , Σ, δ , s, F ), donde K := {s, q1 , q2 },
Σ := {0, 1}, F := {q2 } y la función de transición δ se describe
mediante la tabla de transiciones:
→s
q1
∗q2
0
q1
q1
q2
1
s
q2
q2
La flecha indica el estado inicial y el asterisco indica el estado final.
El autómata acepta las cadenas que contienen la secuencia 01.
Configuración y paso de computación
Definición (Configuración, AFD)
Dado un autómata finito determinista D = (K , σ , δ , s, F ), llamaremos
configuración a toda tupla (q , w ) ∈ K × Σ∗ .
Definición (Paso de computación, AFD)
Sea D = (K , Σ, δ , s, F ) un autómata finito determinista y sean (q , w )
y (q ′ , w ′ ) dos configuraciones del mismo. Diremos que la
configuración (q ′ , w ′ ) se sigue de (q , w ) en un paso de computación,
denotado mediante (q , w ) ⊢D (q ′ , w ′ ), si existe σ ∈ Σ tal que
δ (q , σ ) = q ′ y w = σ w ′ .
(q , w ) ⊢∗D (q ′ , w ′ ) denota cero o más pasos de computación.
Lenguaje de un AFD
Definición (Lenguaje de un AFD)
Dado un autómata finito determinista D = (K , Σ, δ , s, F ), se define el
lenguaje aceptado por el autómata, denotado L(D ), como:
L(D ) := {ω ∈ Σ∗ : (s, ω ) ⊢∗D (f , ε ), con f ∈ F }.
Los lenguajes que son aceptado por un autómata finito determinista
se llaman regulares.
Representación de AFD
L
os AFD se representan, normalmente mediante su diagramas de
transición. En ella se representa el autómata mediante un grafo
orientado sujeto a las siguientes consideraciones:
cada nodo del grafo se corresponde con un estado del autómata,
dos nodos p y q están unidos mediante un arco dirigido de p a q
si y sólo si existe σ ∈ Σ, tal que δ (p, σ ) = q; dicho arco se
etiqueta con el sı́mbolo σ ; si existen diversos sı́mbolos
σ1 , . . . , σn ∈ Σ, el arco se etiqueta con σ1 , . . . , σn ,
los nodos correspondientes a estados aceptadores se
representan mediante una doble circunferencia, y
al nodo correspondiente al estado inicial llega una flecha sin
origen concreto.
Ejemplo
Ejemplo
El autómata anterior se representa mediante:
s
0, 1
0
1
0
q1
1
q2
Autómatas finitos no deterministas
Definición
Un autómata finito no determinista es una tupla N = (K , Σ, δ , s, F )
donde:
K es un conjunto (finito) de estados,
Σ es un alfabeto (finito),
δ : K × Σ −→ P(K ) es la función de transicióna b .
s ∈ K es el estado inicial, y
F ⊆ K es el conjunto de los estados aceptadores.
a
P(K ) es el conjunto de todos los subconjuntos de K , i.e. las partes de K
b
La función de transición también puede definirse como una relación
δ ⊆ K ×Σ×K.
Paso de computación
Definición
Sea N = (K , Σ, δ , s, F ) un autómata finito no determinista y sean
(q , w ) y (q ′ , w ′ ) dos configuraciones del mismo. Diremos que la
configuración (q ′ , w ′ ) se sigue de (q , w ) en un paso de computación,
denotado mediante (q , w ) ⊢D (q ′ , w ′ ), si existe σ ∈ Σ tal que
q ′ ∈ δ (q , σ ) y w = σ w ′ .
La notación (q , w ) ⊢∗N (q ′ , w ′ ) indicará que la configuración (q ′ , w ′ ) se
sigue de (q , w ) en cero o más pasos de computación.
Ejemplo
Considerar el autómata N = (K , Σ, δ , s, F ), donde K := {s, q1 , q2 },
Σ := {0, 1}, F := {q2 } y la función de transición δ se describe
mediante:
0
1
→ s {s, q1 } {s}
0/
{q2 }
q1
∗q2 {q2 } {q2 }
Ejemplo
El diagrama de transición es como sigue:
0, 1
s
0, 1
0
q1
1
q2
Equivalencia entre AFDs y AFNs
Teorema
Todo lenguaje L ⊆ Σ∗ aceptado por un autómata finito no determinista
es aceptado por un autómata finito determinista.
Demostración
Sea L ⊆ Σ∗ un lenguaje aceptado por un AFN N = (K , Σ, δ , s, F ).
Construimos un AFD D = (K ′ , Σ, δ ′ , s′ , F ′ ) que acepta L como sigue:
Definimos
K ′ := P(K ),
F ′ := {q ∈ K ′ : q ∩ F 6= 0},
/
δ ′ : K ′ × Σ → K ′ se define mediante
δ ′ (q , σ ) := δ (q × {σ }) = ∪p∈q δ (p, σ ), y
el estado inicial mediante s′ := {s}.
Demostración
Veamos, por inducción en la longitud de la cadena w, que si D acepta
w partiendo de un cierto estado q ′ , existe una estado q ∈ q ′ , tal que N
acepta w partiendo de q.
(Base) Supongamos w = ε . Por lo tanto, si D acepta ε partiendo
de q ′ , se sigue que q ′ ∈ F ′ . Tomando q ∈ q ′ ∩ F tenemos que N
acepte w partiendo de q.
(Paso inductivo) Supongamos que la afirmación es cierta para
todas las cadenas de longitud a lo más n − 1 y sea w = w1 · · · wn
una de longitud n aceptada por D partiendo de q ′ . Tenemos que
D acepta w2 · · · wn partiendo de δ ′ (q ′ , w1 ). Por lo tanto, existe un
p ∈ δ ′ (q ′ , w1 ) tal que N acepta w2 · · · wn partiendo del estado p.
Puesto que p ∈ δ ′ (q ′ , w1 ), existe un q ∈ q ′ tal que δ (q , w1 ) = p y
por ende, N acepta w partiendo de q con q ∈ q ′ .
Tomando como q ′ = {s}, si D acepta una cierta cadena w, N también
la acepta. Igualmente se demuestra que si N acepta una cadena w, D
también.
Algoritmo de conversión
Algoritmo
El algoritmo toma como entrada la descripción de un autómata finito
no determinista cualquiera A = (K , Σ, δ , s, F ) y devuelve como salida
un autómata finito determinista A′ = (K ′ , Σ, δ ′ , s′ , F ′ ) que acepta el
mismo lenguaje. Su evolución es la siguiente.
(Inicialización) Inicializa el nuevo conjunto de estados
K ′ := {{s}} y para cada σ ∈ Σ lleva a cabo la siguiente tarea:
define δ ′ ({s}, σ1 ) = δ (s, σ ) y, si δ (s, σ ) 6= {s} añade δ (s, σ ) a
K ′.
(Iteración) Si para todo q ∈ K ′ y σ ∈ Σ está definido δ ′ (q , σ ), el
algoritmo termina su ejecución devolviendo A′ = (K ′ , Σ, δ ′ , s′ , F ′ )
donde F ′ = {q ∈ K ′ ; q ∩ F 6= 0}
/ . En caso contrario, considera un
′
′
par (q , σ ) ∈ K × Σ tal que δ (q , σ ) no haya sido definido, define
δ ′ (q , σ ) = δ (q , σ ) y, si δ (q , σ ) ∈
/ K ′ , se añade a K ′ y se itera de
nuevo.
Ejemplo de conversión de AFN a AFD
Cosideramos el AFN anterior. Tomamos como estado inicial {s},
inicializamos K ′ = {{s}} y definimos las transiciones
δ ′ ({s}, 0) = {s, q1 } y δ ′ ({s}, 1) = {s}.
Actualizamos K ′ a {{s}, {s, q1 }} y definimos
δ ′ ({s, q1 }, 0) = {s, q1 } y δ ′ ({s, q1 }, 1) = {s, q2 }.
Actualizamos K ′ a {{s}, {s, q1 }, {s, q2 }} y definimos
δ ′ ({s, q2 }, 0) = {s, q1 , q2 } y δ ′ ({s, q2 }, 1) = {s, q2 }.
Actualizamos K ′ a {{s}, {s, q1 }, {s, q2 }, {s, q1 , q2 }} y definimos:
δ ′ ({s, q1 , q2 }, 0) = {s, q1 , q2 } y δ ′ ({s, q1 , q2 }, 1) = {s, q2 }.
Lo que termina el proceso.
Ejemplo de conversión de AFN a AFD
0
1
{s}
0
{s, q1 }
1
1
{s, q2 }
1
0
{s, q1 , q2 }
0
Autómatas finitos no deterministas con transiciones vacı́as
Definición
Un autómata finito con transiciones ε es una tupla E = (K , Σ, δ , s, F )
donde:
K es un conjunto (finito) de estados,
Σ es una alfabeto (finito),
δ : K × (Σ ∪ {ε }) −→ P(K ) es la función de transición,
s ∈ K es el estado inicial, y
F ⊆ K es el conjunto de los estados aceptadores.a
a
Nótese que la función de transición también puede definirse como una relación
δ ⊆ K × Σ × Σ, al igual que en el caso de los autómatas finitos no deterministas.
Paso de computación
Definición
Sea E = (K , Σ, δ , s, F ) un autómata finito no determinista con
transiciones vacı́as y sean (q , w ) y (q ′ , w ′ ) dos configuraciones del
mismo. Diremos que la configuración (q ′ , w ′ ) se sigue de (q , w ) en un
paso de computación, notado (q , w ) ⊢D (q ′ , w ′ ), si existe σ ∈ Σ ∪ {ε }
tal que δ (q , σ ) = q ′ y w = σ w ′ .
La notación (q , w ) ⊢∗D (q ′ , w ′ ) indicará, al igual que en otros casos,
que la configuración (q ′ , w ′ ) se sigue de (q , w ) en cero o más pasos
de computación.
Clausura respecto de ε
Definición (Clausura respecto de ε )
Dado un autómata finito no determinista con transiciones vacı́as
E = (K , Σ, δ , s, F ), se define la clausura de un estado q ∈ K , con
respecto de ε , de manera recursiva
q ∈ Clε (q ),
para todo p ∈ Clε (q ) y todo r ∈ Q tales que r ∈ δ (p, ε ), se
verifica r ∈ Clε (q ).
En general, dado un conjunto Q ⊆ K , se define la clausura de Q con
respecto a transiciones vacı́as de manera análoga.
Un ejemplo
Sea E = (K , Σ, δ , F , s) es autómata finito no determinista con
transiciones vacı́as descrito por el siguiente diagrama de transición:
0, 1
0, 1
s
ε
q1
0
q2
1
q3
El autómata anterior acepta el lenguaje de las cadenas que contienen
la secuencia 01.
En este caso, por ejemplo, Clε (s) = {s, q1 } y Clε (q1 ) = {q1 }.
Equivalencia con AFD
Teorema
Todo lenguaje L ⊆ Σ∗ aceptado por un autómata finito no determinista
con transiciones vacı́as es aceptado por un autómata finito
determinista.
Demostración
Sea dado un AFN–ε E = (K , Σ, δ , s, F ). Construimos un AFD
D = (K ′ , Σ, δ ′ , s′ , F ), que acepte el mismo lenguaje, como sigue
K ′ := {P ⊆ K : Clε (P ) = P },
s′ := Clε (s),
F ′ := {P ∈ K ′ : P ∩ F 6= 0}
/ ,y
dados P ∈ K ′ y σ ∈ Σ, definimos
δ ′ (P , σ ) := Clε
[
p∈P
!
δ (p, σ ) .
Demostración
Demostración.
Por inducción en la longitud de la cadena w, veamos que si D acepta
w partiendo de un cierto estado q ′ , existe una estado q ∈ q ′ , tal que E
acepta w partiendo de q.
(Base) Si w = ε y D acepta ε partiendo de q ′ , tenemos q ′ ∈ F ′ .
Tomando q ∈ q ′ ∩ F se tiene que E acepte w partiendo de q.
(Paso inductivo) Supongamos la afirmación es cierta para todas
las cadenas de longitud a lo más n − 1 y sea w = w1 · · · wn . Si w
es aceptada por D partiendo de un cierto estado q ′ , tenemos que
D acepta w2 · · · wn partiendo de δ ′ (q ′ , w1 ). Por lo tanto, existe un
p ∈ δ ′ (q ′ , w1 ) tal que E acepta w2 · · · wn partiendo del estado p.
Puesto que p ∈ δ ′ (q ′ , w1 ), existe un q ∈ q ′ tal que δ (q , w1 ) = q ′′
de manera que p ∈ Clε (q ′′ ) y por ende, que E acepta w
partiendo de q con q ∈ q ′ .
Tomando s′ = {s}, si D acepta una cierta cadena w, N también.
Igualmente se muestra que si N acepta w, D también.
Algoritmo de conversión
Algoritmo
El algoritmo toma como entrada un AFN–ε A = (K , Σ, δ , s, F ) y
devuelve un AFD con igual lenguaje. Su funcionameinto es:
(Inicialización) Inicializa K ′ := {CLε {s}} y para cada σ ∈ Σ
define
δ ′ ({s}, σ1 ) = Clε (δ (s, σ )).
Si Clε (δ (s, σ )) 6= Clε ({s}) añade Clε (δ (s, σ )) a K ′ .
(Iteración) Si todas las transiciones están definidas, el algoritmo
termina devolviendo A′ = (K ′ , Σ, δ ′ , s′ , F ′ ), con
F ′ = {q ∈ K ′ ; q ∩ F 6= 0}
/ . Si no es ası́, considera (q , σ ) ∈ K ′ × Σ
′
t.q. δ (q , σ ) no está definido, y define
δ ′ (q , σ ) = Clε (δ (q , σ ))
y, si Clε (δ (q , σ )) ∈
/ K ′ , se añade a K ′ e itera de nuevo.
Ejemplo
El estado inicial es {s, q1 } (clausura con respecto al vacı́o de s),
definimos K ′ = {{s, q1 }}) y las transiciones
δ ′ ({s, q1 }, 0) = {s, q1 } y δ ′ ({s}, 1) = {s}.
Actualizamos K ′ a {{s}, {s, q1 }} y definimos
δ ′ ({s, q1 }, 0) = {s, q1 } y δ ′ ({s, q1 }, 1) = {s, q2 }.
Actualizamos K ′ a {{s}, {s, q1 }, {s, q2 }} y definimos:
δ ′ ({s, q2 }, 0) = {s, q1 , q2 } y δ ′ ({s, q2 }, 1) = {s, q2 }.
Luego K ′ = {{s}, {s, q1 }, {s, q2 }, {s, q1 , q2 }} y definimos
δ ′ ({s, q1 , q2 }, 0) = {s, q1 , q2 } y δ ′ ({s, q1 , q2 }, 1) = {s, q2 }.
Los estados finales son F ′ = {{s, q2 }, {s, q1 , q2 }}.
Ejemplo
El autómata diagrama de transiciones del autómata construido es el
siguiente:
0
1
{s}
0
{s, q1 }
0
1
1
{s, q2 }
0
1
{s, q1 , q2 }
Contenidos
1
Autómatas finitos
Autómatas finitos deterministas
Autómatas finitos no deterministas
Autómatas finitos no deterministas
1
Gramáticas regulares
Expresiones y gramáticas regulares
Autómatas finitos y gramáticas regulares
Autómatas y expresiones regulares
1
Propiedades de los lenguajes regulares
Lenguajes no regulares
Propiedades de clausura
Propiedades de decisión
Equivalencia y minimización
1
Autómatas a pila
Definiciones básicas
Autómatas a pila deterministas
Expresiones regulares
Definición
Dado un alfabeto finito Σ, se define un expresión regular, vı́a
inducción estructural, de la siguiente manera:
(Base) 0/ ,ε y σ (con σ ∈ Σ) son expresiones regulares cuyos
lenguajes asociados son 0/ , {ε } y {σ } respectivamente.
(Inducción) Distinguimos los siguientes casos:
Dada una e.r. E, (E ) es una e.r. cuyo lenguaje es precisamente
L(E ) (el lenguaje asociado a E).
Dada una e.r. E, E ∗ es una e.r. cuyo lenguaje es L(E )∗ (la
cláusura de L(E ) con respecto a la concatenación).
Dadas dos e.r. E1 y E2 , E1 + E2 es una e.r. cuyo lenguaje es
L(E1 ) ∪ L(E2 ) (la unión de los lenguajes asociados a E1 y E2 ).
Dadas dos e.r. E1 y E2 , E1 E2 es una e.r. cuyo lenguaje asociado
es L(E1 )L(E2 ) (la concatenación de los lenguajes de E1 y E2 ).
Ejemplo
Un ejemplo sencillo de e.r. es (0 + 1)∗ 01(0 + 1)∗ . Dicha expresión
describe el conjunto de las cadenas de ceros y unos que continen la
subcadena 01. Para verlo, basta observar que (0 + 1)∗ describe
cualquier cadena de ceros y unos.
Gramática regular
Definición
Una gramática regular (lineal a derecha) es una tupla
G = (N , T , P , S ) donde
N es un conjunto finito de sı́mbolos llamados variables o
sı́mbolos no terminales,
T es un conjunto finito de sı́mbolos, llamados terminales,
satisfaciendo T ∩ N = 0/ ,
P ⊆ N × (T ∗ N ∪ T ) es un conjunto finito de elementos, llamados
producciones, de manera tal que si (p, q ) ∈ P se
denotará mediante la expresión p → q; p recibe el nombre de
cabeza y q el de cuerpo de la producción, y
S ∈ N es el sı́mbolo inicial.
Ejemplo
La gramática que describe el lenguaje asociado a (0 + 1)∗ 01(0 + 1)∗
viene dada por las producciones siguientes:
S → 0S
S → 1S
S → 01S ′
S ′ → 0S ′
S ′ → 1S ′ , y
S′ → ε .
Más compactamente,
S → 0S |1S |01S ′
S ′ → 0S |1S |ε .
Derivación
Definición
Dada una gramática regular G = (N , T , P , S ) y una cadena α v, con
α ∈ T ∗ y v ∈ N, diremos que αγ ∈ (T ∗ N ∪ T ∗ ) deriva de α v, si existe
una producción v → γ ∈ P. Si es el caso, lo indicaremos mediante la
notación α v ⇒G αγ ; en general, si una cierta cadena β ∈ (T ∗ N ∪ T ∗ )
deriva de δ ∈ (T ∗ N ∪ T ∗ ) tras un número finito de derivaciones, lo
notaremos mediante δ ⇒∗G γ .
Ejemplo
Continuando con el ejemplo anterior, es sencillo ver que se tiene, por
ejemplo,
S ⇒ 0S ⇒ 01S ⇒ 0101S ′ ⇒ 0101.
En particular, se tiene que 0101 pertenece al lenguaje de la gramática.
Autómatas finitos y gramáticas regulares
Teorema
Sea A un autómata finito. Entonces, existe una gramática regular G tal
que L(G) = L(A).
Demostración
Supongamos dado un autómata A = (K , Σ, δ , q0 , F ). Construimos la
gramática G tal que L(G) = L(A) como sigue: el conjunto de variables
de G coincide con Q (el conjunto de estados de A), el conjunto de
carácteres terminales de G es Σ y su sı́mbolo inicial es q0 . Las
producciones de G se definen como sigue: dada una variable q ∈ Q,
q → σ p (con p ∈ Q y σ ∈ Σ) es una producción si δ (q , σ ) = p; dado
un estado aceptador f ∈ F , f → ε es una producción.
Queda claro que una cierta cadena w ∈ Σ∗ se deriva del sı́mbolo
inicial de G si y sólo si es aceptado por el autómata. Por lo tanto,
L(G) = L(A).
Ejemplo
Consideremos el autómata finito determinista visto anteriormente, la
gramática del lenguaje por él aceptado es:
q0 → 1q0
q0 → 0q1
q1 → 0q1
q1 → 1q2
q2 → 0q2 ,
q2 → 1q2 , y
q2 → ε .
De gramáticas regulares a autómatas
Teorema
Sea G una gramática regular. Entonces, existe un autómata finito (no
determinista) A tal que L(A) = L(G).
Demostración
Supongamos dada una gramática regular G = (V , T , P , S ) (lineal a
derecha). Construimos el autómata A = (K , T , δ , q0 , F ) como sigue:
el conjunto de estado viene dado por las expresiones de la forma
[v ], donde v es una subcadena del cuerpo de alguna producción,
el alfabeto del autómata coincide con el conjunto de caracteres
terminales de G,
la función de transición se define mediante las reglas siguientes:
dado un estado [p], con p una variable de G, y un sı́mbolo t ∈ T ,
se define
δ ([p], t ) = {[q ] : p → q ∈ P }.
Dados t ∈ T y p ∈ T ∗ ∪ T ∗ V definiendo un estado [p], se define
δ ([tp], t ) = {[p]}
Es fácil ver, por inducción en la longitud de las cadenas, que
L(A) = L(G).
De expresiones regulares a autómatas
Teorema
Sea Σ un alfabeto finito y E una expresión regular sobre dicho
alfabeto. Entonces, existe un autómata finito (no determinista con
transiciones vaciás) A = (K , Σ, δ , q0 , F ) tal que L(A) = L(E ).
Demostración
La demostración es por inducción estructural en la expresión regular;
como subproducto, se describe un algoritmo que transforma
expresiónes regulares en autómatas finitos (no deterministas con
transiciones vaciás)
Demostración
(Caso Base) Supongamos que la e.r. es de los tipos: 0/ , ε o σ (con
σ ∈ Σ; consideramos los autómatas:
ε
σ
Los lenguajes de dichos AFN–ε son 0/ , ε ) y σ (respec).
Demostración
(Paso inductivo).- Si E = E1 + E2 , donde E1 y E2 son dos e.r. con A1 y
A2 como AF asociados (i.e. se satisface que L(E1 ) = L(A1 ) y
L(E2 ) = L(A2 )), consideramos:
A1
ε
ε
ε
ε
A2
Demostración
Si E = E1∗ , donde E1 es e.r. con A1 AF asociado, consideramos:
ε
ε
ε
ε
Demostración
Si E = E1 E2 , donde E1 y E2 son dos e.r. con A1 y A2 como AF
asociados, consideramos:
ε
A2
ε
A2
Queda claro que los lenguajes se corresponden con los de las e.r..
De autómatas a expresiones regulares
Teorema
Sea A = (K , Σ, δ , q0 , F ) un autómata finito sobre un alfabeto Σ.
Entonces, existe una expresión regular sobre el mismo alfabeto Σ,
digamos E , tal que L(E )=L(A).
Demostración
Supongamos que A es un AFD. Además, suponemos que el conjunto
de estados es {1, . . . , n}.
Construimos una familia de e.r. Rijk , con 1 ≤ k ≤ n y 1 ≤ i , j ≤ k, cuyo
interpretación es la siguiente: Rijk es la expresión regular que describe
las cadenas que hacen que A pase del estado i al estado j
atravesando, únicamente, nodos etiquetados con naturales menores o
iguales a k.
La construcción de dichas e.r. es inductiva en k.
Demostración
En primer lugar, supongamos que k = 0 (caso base). Entonces, Rij0
denota el conjunto de las cadenas que hacen transicionar al autómata
A del estado i al estado j sin pasar por estado alguno (todos los
estados están etiquetados con un natural mayor que cero). Por lo
tanto, caben dos posibilidades:
existe una transición del nodo i al nodo j o, equivalentemente,
existe un camino (arco) en el diagrama de transición de A que va
de i a j; suponiendo que dicho camino está etiquetado con los
sı́mbolos σ1 , . . . , σl , definimos Rij0 = σ1 + . . . + σl ,
no existe una tal transición; en este caso, definimos Rij0 = 0/ .
Demostración
Supongamos construidas las expresiones regulares Rijk para
1 ≤ k ≤ n. Construyamos la expresiones regulares Rijn+1 , con
1 ≤ i , j ≤ n + 1. Dados i , j, con 1 ≤ i , j ≤ n + 1, supongamos que
existe una caden que hace transicionar al autómata del estado i al j
atravesando estados etiquetados con naturales menores o iguales
que n + 1. Distinguimos los siguientes casos:
si existe la cadena en cuestión no hace transicionar al autómata
A por el estado n + 1 (la cadena da un camino del nodo i al nodo
j que no atraviesa nodos etiquetados con naturales mayores que
n en el diagrama de transiciones), dicha cadena
está comtemplada en la expresión regular Rijn ,
Demostración
si no es el caso, esto es, la cadena hace transicionar al autómata
por el estado n, partimos dicha cadena en fragmentos de la
siguiente manera:
el primer fragmento hace transicionar al autómata del estado i al
n + 1 sin pasar por n + 1 como estado intermedio,
el último fragmento hace transicionar al autómata del estado n + 1
al estado j sin pasar por n + 1 como estado intermedio, y
los fragmentos intermedios son tales que hacen pasar al
autómata del estado n + 1 al estado n + 1 sin que éste sea uno de
los intermedios.
El primer fragmento está descrito por Rin(n+1) , el último por
R(nn+1)j y los fragmentos intermedios por R(nn+1)(n+1 .
Demostración
Por lo tanto y en cualquier caso, dicha cadena queda descrita por
Rijn + Rin(n+1) (R(nn+1)(n+1 )∗ R(nn+1)j .
El lenguaje de A está dado por es la dada por la suma de las e.r. de la
n
forma R1k
, donde 1 suponemos es el estado inicial y k es un estado
final.
Contenidos
1
Autómatas finitos
Autómatas finitos deterministas
Autómatas finitos no deterministas
Autómatas finitos no deterministas
1
Gramáticas regulares
Expresiones y gramáticas regulares
Autómatas finitos y gramáticas regulares
Autómatas y expresiones regulares
1
Propiedades de los lenguajes regulares
Lenguajes no regulares
Propiedades de clausura
Propiedades de decisión
Equivalencia y minimización
1
Autómatas a pila
Definiciones básicas
Autómatas a pila deterministas
Ejemplo
Considérese el lenguaje definido sobre {0, 1}
L := {0n 1n : n ∈ N}
Intuitivamente se puede llegar a la conclusión de que dicho lenguaje
no es regular puesto que un autómata finito que lo reconozca debe
ser capaz de contar el número de ceros para compararlo con el
número de unos. Sin embargo, dado que los autómatas tienen una
capacidad de almacenamiento limitada por el número de estado, no
pueden almacenar números arbitrariamente grandes. Por lo tanto, no
puede existir un tal autómata, i.e. L no es regular
Lema de Bombeo
Lema (Lema de Bombeo)
Sea L un lenguaje regular. Entonces, existe una constante n
(dependiente de L) tal que para toda cadena ω ∈ L de longitud mayor
o igual que n, existen cadenas ω1 , ω2 , ω3 ∈ Σ∗ tales que:
ω2 6= ε ,
|ω1 ω2 | ≤ n, y
para todo k ∈ N, la cadena ω1 ω2k ω3 pertenece a L.
Función de transición extendida
Definición
Dado un autómata A = (K , Σ, δ , s, F ), se define la extensión de δ al
dominio K × Σ∗ (denotada por δ̂ ) de manera inductiva en la longitud
de las cadenas:
dado q ∈ K , definimos δ̂ (q , ε ) := q,
dados q ∈ K , ω ∈ Σ∗ y σ ∈ Σ, definimos
δ̂ (q , σ ω ) := δ (δ̂ (q , ω ), σ ).
Nota
A acepta w ∈ Σ∗ si y sólo si δ̂ (s, w ) ∈ F .
Demostración
Demostración.
Supongamos dado un lenguaje regular L y consideremos un AF
A = (K , Σ, δ , s, F ) t.q. L = L(A); supongamos además que #K = n.
Dada una cadena ω = σ1 · · · σm ∈ Σ∗ , con m ≥ n, definimos pi , para
0 ≤ i ≤ m, como el estado en el que se encuentra el autómata tras
procesar la cadena σ1 · · · σi , i.e. pi = δ̂ (s, σ1 · · · σi ) (notar que p0 = s).
Obviamente, existen 0 ≤ j < k ≤ n tales que pj = pk . Definiendo
ω1 := σ1 · · · σj , ω2 := σj +1 · · · σk , y ω3 := σk +1 · · · σm , se sigue el
resultado.
Ejemplo
Ejemplo
Consideramos el lenguaje del ejemplo anterior, veamos por reducción
al absurdo, que no es regular.
Si ası́ fuera, por el Lema de Bombeo, existirı́a un natural n ∈ N tal que
para toda cadena de longitud como poco n, digamos ω ∈ Σ∗ existen
cadenas ω1 , ω2 , ω3 ∈ Σ∗ tales que
ω2 6= ε ,
2
|ω1 ω2 | ≤ n, y
3
para todo k ∈ N, la cadena ω1 ω2k ω3 pertenece a L.
En particular, consideramos la cadena de L definida por ω = 0n 1n .
Por lo anterior, existen ω1 , ω2 , ω3 verificando 1, 2 y 3. Tomando k = 0,
se sigue que ω1 ω3 pertenece a L, lo cual es absurdo puesto que su
número de ceros es forzosamente menor que él de unos (ω2 tiene
1
longitud mayor o igual a uno, i.e. consta de como poco de un cero).
Propiedades básicas
Teorema
Las siguientes afirmaciones son ciertas.
1
La unión de dos lenguajes regulares es regular.
2
El complementario de un lenguaje regular es regular.
3
La intersección de dos lenguajes reuglares es regular.
4
La diferencia de dos lenguajes regulares es regular.
Nota
Las afirmaciones anteriores son ciertas para un número finito de
lenguajes (la demostración es por inducción).
Demostración
1. Sean L, L′ ⊆ Σ∗ dos lenguajes regulares y EL y EL′ e.r. para los
mismos. La expresión regular EL + EL′ ) da el lenguaje L ∪ L′ y, por lo
tanto, es regular.
2. Sea L un lenguaje regular dado por un AFD A. Construimos un
autómata A′ igual a A con la salvedad de que sus estados
aceptadores son los estados de rechazo de A. El autómata A′ acepta
cualquier cadena que A rechaze, i.e. determina el lenguaje Lc . Por lo
tanto, el complementario de L es un lenguaje regular.
Demostración
3. Dados dos lenguaje regulares L, L′ ⊂ Σ∗ tenemos (Leyes de
Morgan):
c
L ∩ L′ = Lc ∪ L′c .
Puesto que, tal y como se ha demostrado en 1. y 2., la unión y el
complementario de lenguajes regulares es regular, se sigue que la
intersección es regular.
4. Sean L, L′ ⊆ Σ∗ dos lenguajes regulares. Puesto que se verifica:
L \ L′ = L ∩ L′c ,
se sigue de 1. y 3. que la diferencia de lenguajes regulares es regular.
Reflexión
Definición
Dada una cadena cualquiera ω = ω1 · · · ωn ∈ Σ∗ sobre el alfabeto Σ,
se define la reflexión de la cadena ω , notada ω R , como
ω R := ωn · · · ω1 .
Definición
Dado un lenguaje L ⊆ Σ∗ , se define la reflesión del lenguaje L,
denotada por LR , como
LR := {ω R : ω ∈ L}.
Teorema
Sea L ⊆ Σ un lenguaje regular. Entonces, LR es un lenguaje regular.
Demostración
Para demostrar el enunciado haremos uso de la relación existente
entre lenguajes regulares y expresiones regulares.
Supongamos en primer lugar que el lenguaje regular L es descrito por
una expresión regular E . Procediendo por inducción estructural,
distinguimos los siguientes casos:
(Caso Base) Si E = 0/ , E = ε o E = σ , para algún σ ∈ Σ, definiendo
E R como E se tiene
L(E R ) = L(E )R = L.
Demostración
(Paso inductivo) Consideremos las restantes alternativas:
Supongamos que E = E1 + E2 , para ciertas expresiones
regulares E1 y E2 . Definiendo E R = E1R + E2R tenemos que
L(E R )
= L(E1R + E2R ) = L(E1R ) ∪ L(E2R )
= L(E1 )R ∪ L(E2 )R = L(E1 + E2 )R = L(E ).
Con respecto al caso E = E1 E2 , definiendo E R = E2R E1R tenemos
L(E R )
= L(E22 E1R ) = L(E2R )L(E1R ) = L(E2 )R L(E1 )R
= (L(E1 )L(E2 ))R = L(E1 E2 )R = L(E )R .
Finalmente, el caso E = E1∗ se sigue del anterior.
Homomorfismo
Definición
Dados dos alfabetos finitos Σ y Γ, llamaremos homomorfismo a toda
aplicación h : Σ → Γ∗ . Toda aplicación como la anterior induce, de
manera natural una aplicación h : Σ∗ → Γ∗ definida mediante
h(σ1 · · · σn ) := h(σ1 ) · · · h(σn ).
Dado un lenguaje cualquiera L ⊆ Σ, llamaremos homomorfismo de L
(con respecto a h) al lenguaje h(L) definido por
h(L) = {ω ∈ Γ : ∃ω ′ ∈ Lt.q. h(ω ′ ) = ω }.
Teorema
Sea L ⊂ Σ∗ un lenguaje regular y h : Σ → Γ un homomorfismo entre
los alfabetos (finitos) Σ y Gamma. Entonces, el homomorfismo del
lenguaje L (con respecto a h) es un lenguaje regular.
Demostración
Supongamos que el lenguaje L viene dado mediante una expresión
regular sobre el alfabeto Σ, digamos E . Construyamos, por inducción
estructural, una nueva expresión, digamos E h , que determine h(L).
(Caso Base) Supongamos de entrada que E = 0/ , E = ε ó E = σ
(con σ ∈ Σ). Entonces, definimos E h mediante E h := 0/ , E h := ε
ó E h := h(σ ) de pendiendo del caso. Está claro que, en este
caso, h(L(E )) = L(E h ).
(Paso Inductivo) Distinguimos los siguientes casos:
si E = E1 + E2 , definimos E h := E1h + E2h .
si E = E1 E2 , definimos E h := E1h E2h y, finalmente,
si E = E1∗ , definimos E h := (E h )∗ . Resulta fácil de ver que en los
tres casos anteriores se tiene que h(L(E )) = L(E h ).
En resumen, el homomorfismo de un lenguaje regular es regular.
Homomorfismo inverso
Definición
Sean Σ y Γ dos alfabetos finitos, h : Σ → Γ un homomorfismo y
L ⊂ Γ∗ un lenguaje regular. Se define el homomorfismo inverso de L
(con respecto a h), denotado h−1 (L), como:
h−1 (L) := {ω ∈ Σ∗ : h(ω ) ∈ L}.
Teorema
Sean Σ y Γ dos alfabetos finitos, h : Σ → Γ un homomorfismo y
L ⊂ Γ∗ un lenguaje regular. El homomorfismo inverso de L es un
lenguaje regular.
Demostración
Supongamos dado A = (K , Γ, δ , s, F ) aceptando L. Construyamos un
autómata A′ = (K , Σ, δ ′ , s, F ) (sólo cambia la función de transición)
definiendo:
δ ′ (q , σ ) := δ̂ (q , h(σ )),
donde δ̂ denota la función de transición extendida de A.
Queda claro que el lenguaje de A′ es precisamente h−1 (L).
Equivalencia
Teorema
Existen algoritmos que
1
dada una e.r. E , construyen un AF A tal que L(A) = L(E ),
2
dado un AF A, construyen una g.r. G tal que L(G) = L(A), y
3
dada una g.r. G, construyen una e.r. E , tal que L(E ) = L(G).
Otros problemas
Cuestión
Dado un lenguaje regular L, ¿es L no vacı́o?
Cuestión
Dado un lenguaje regular L, ¿es L el total, i.e. L = Σ∗ ?
Cuestión
Dados lenguajes regulares L1 y L2 , ¿es L1 = L2 ?
Vaciedad
Teorema
Existe un algoritmo que dado un lenguaje regular L decide si es o no
vacı́o.
Demostración para AF
Si L viene dado por un AF, dicha pregunta equivale a: ¿existe un
camino del estado inicial a un estado aceptador?
Ası́ enunciada, la pregunta tiene fácil respuesta algorı́tmica:
el estado inicial es accesible desde el estado inicial, y
si el estado p es accesible desde el estado inicial y existe un arco
de p a q, entonces el estado q es accesible desde el estado
inicial.
Lo anterior resume la construcción inductiva del conjunto de estados
accesibles desde el estado inicial, en el momento en que dicho
conjunto contenga un estado aceptador, concluimos que el lenguaje
no es vacı́o. Si dicho conjunto no se puede ampliar y no contiene
ningún estado aceptador, concluimos que el lenguaje L es vacı́o.
Demostración para ER
Si L viene dado mediante una ER E , procedemos por inducción
estructural:
(Caso Base) Si E es 0/ define el lenguaje vacı́o; si es del tipo ε o
σ (σ ∈ Σ), entonces L no es vacı́o.
(Paso Inductivo) Si E no es de los tipos anteriores, distinguimos:
Si es de la forma E1 + E2 , el lenguaje es vacı́o si y sólo si los
lenguajes de E1 y E2 lo son,
Si es del tipo E1 E2 , el lenguaje es vacı́o si y sólo si el lenguaje de
E1 o el de E2 lo son.
Finalmente, si la expresión regular es del tipo E ∗ , el lenguaje no
es vacı́o.
Demostración para GR
Si L viene dado por una GR, dicha pregunta equivale a: ¿existe una
serie de producciones que llevan del sı́mbolo inicial S a una cadena
cuya variable se puedes substituir por una cadena de sólo terminales?
Ası́ enunciada, la pregunta tiene también fácil respuesta algorı́tmica:
el sı́mbolo inicial es accesible desde el sı́mbolo inicial, y
si una variable V se obtiene mediante una producción desde una
variable que es accesible desde el sı́mbolo inicial, tb. es
accesible desde S.
En el momento en que dicho conjunto contenga una variable que se
puede substituir por una cadena sólo de terminales, concluimos que el
lenguaje no es vacı́o. Si dicho conjunto no se puede ampliar y no
contiene ninguna de tales variables, el lenguaje L es vacı́o.
Totalidad e igualdad
Totalidad
Para determinar si un lenguaje regular L es el total, basta decidir si Lc
es el vacı́o.
Igualdad
Para saber si dos lenguajes regulares L1 y L2 coinciden, basta saber
si L1 ⊆ L2 y L2 ⊆ L1 o equivalentemente, si L1 \ l2 = 0/ y L2 \ L1 = 0/ .
Relaciones de equivalencia
Definición
Sea X un conjunto. Una relación ∼⊆ X × X se dice de equivalencia,
si satisface las siguientes propiedades:
[Reflexiva] para todo x ∈ X , x ∼ x,
[Simétrica] para todos x , y ∈ X , x ∼ y implica y ∼ x, y
[Transitiva] para todos x , y , z ∈ X , x ∼ y y y ∼ z implica x ∼ z.
Clases de equivalencia y conjuntos cociente
Definición
Dada una relación ∼⊆ X × X y un elemento x ∈ X , se define la clase
de x, notada [x ]∼ , como el conjunto de todos los elementos de X
relacionados con x, i.e.
[x ] := {y ∈ X : x ∼ y }.
El conjunto X / ∼ es el conjunto cociente, i.e. el conjunto de todas las
clases de equivalencia
Nota
Dados dos elementos x , y ∈ X no relacionados mediante ∼, se
verifica [x ]∼ ∩ [y ]∼ = 0.
/ La demostración de este hecho se sigue la
propiedad transitiva: por reducción al absurdo, sean x , y ∈ X dos
elementos no relacionados tales que [x ] ∩ [y ] 6= 0/ y sea z ∈ [x ] ∩ [y ].
Puesto que x ∼ z y z ∼ y se sigue x ∼ y, lo cúal es absurdo. Por lo
que se tiene la afirmación.
Estados equivalentes
Definición
Sea A = (K , σ , δ , s, F ) un autómata finito determinista y sean
p, q ∈ K dos estados del mismo. Diremos que los estados p y q son
equivalentes, denotado por p ∼ q, si para toda cadena w ∈ Σ∗ se
verifica que δ̂ (p, w ) es de aceptación si y sólo si δ̂ (q , w ) es de
aceptación. En caso contrario, diremos que los estados son
distinguibles.
Propiedades
Teorema
La relación estados equivalentes es una relación de equivalencia.
Demostración.
Las tres propiedades se siguen directamente de la definición,
omitiremos su prueba.
Algoritmo de marcado
Teorema
Existe un algoritmo que tomando como entrada un autómata finito
determinista, calcula los pares de estados distinguibles y por ende, los
pares de estados equivalentes.
Demostración
El algoritmo procede como sigue:
(Caso Base) Si p ∈ K es un estado de aceptación y q ∈ K no lo
es, se marca el par (p, q ) como par de estados distinguibles.
Dichos estado se distinguen mediante la cadena ε .
(Paso Inductivo) Sean p, q ∈ K dos estados tales que para algún
σ ∈ Σ se tiene δ (p, σ ) = s y δ (q , σ ) = r . Si el par (r , s) esta
marcado como distinguible, se marca el par (p, q ) como
distinguible. Obviamente, una cadena que distingue p y q es aw,
donde w ∈ Σ∗ es una cadena que distingue a r y s.
Demostración
El algoritmo anterior marca todos los pares de estados distinguibles.
Para demostrarlo, supongamos que no es ası́, i.e. que existe un par
de estado p, q ∈ K distinguibles que no han sido marcados por el
algoritmo.
Los estados p y q no pueden ser distinguidos mediante la cadena ε ,
puesto que si ası́ fuera hubieran sido marcados en la primera etapa
del algoritmo (uno serı́a aceptador mientras que el otro no).
Sea w = w1 . . . wn ∈ Σ+ la cadena más corta que distingue a p y q,
los estados δ (p, w1 ) y δ (q , w1 ) son distinguidos por la cadena
w2 . . . wn . Continuando con la argumentación, llegamos a la conclusión
de que unos ciertos estados r ∈ K y s ∈ K son distinguibles por la
cadena vacı́a y por tanto conforman un par marcado en la primera
etapa del algoritmo. Por lo tanto, el par conformado por p y q hubiera
sido marcado durante la ejecución de la segunda etapa.
Ejemplo
Sea A el autómata finito:
0
C
0
1
0
D
1
E
1
En este caso, el algoritmo comienza marcando lo pares formados por
estados aceptadores y no aceptadores, i.e.: {(C , E ), (D , E )}. Tras
esta primera fase, el algoritmo pasa a la fase inductiva. Sin embargo,
en esta fase no marca nuevos pares puesto que el par (D , C ) es
indistinguible.
Equivalencia
Teorema
Existe un algoritmo que decide si dos autómatas finitos aceptan el
mismo lenguaje.
Demostración
Supongamos dados dos autómatas finitos
A = (KA , ΣA , δA , sA , FA ) y B = (KB , ΣB , δB , sB , FB )
tales que sus conjuntos de estados sean disjuntos. Consideramos un
nuevo autómata cuyo conjunto de estados viene dado por la unión de
los conjuntos KA y KB . El resto de los elementos del nuevo autómata
se definen de manera acorde a esta elección.
El autómata ası́ definido, tiene dos estados iniciales; sin embargo esto
no afecta a lo que sigue.
El algoritmo emplea el algoritmo de marcado para detectar si los
estados iniciales son equivalentes o no. Ambos autómatas definen el
mismo lenguaje si y sólo si ası́ es.
Ejemplo
Consideramos el AF del Ejemplo anterior y
0
A
1
1
B
0
Empleando el algoritmo de marcado, son distinguibles los pares de
estados: (B , A), (E , A), (C , B ), (D , B ), (E , C ) y (E , D ).
Por lo tanto, el par (A, C ) es un par de estados equivalentes y ambos
autómatas definen el mismo lenguaje.
Minimización
Teorema
Existe un algoritmo que tomando como entrada un autómata finito
determinista, produce un autómata equivalente con el menor número
posible de estados.
Demostración
Supongamos dado un autómata A = (K , Σ, δ , s, F ). El algoritmo
elimina de entrada aquellos estados que no son accesibles desde el
estado inicial. Después, construye un nuevo autómata
B = (K ′ , Σ, δ ′ , s′ , F ′ ) de la siguiente manera:
K ′ es el conjunto de clases de equivalencia de K con respecto a
∼ (equivalencia de estados),
s′ es la clase de equivalencia de s, i.e. s′ := [s]∼ ,
F ′ es el conjunto de clases de equivalencia de los elementos de
F, y
δ ′ se define de la siguiente manera: dado σ ∈ Σ y q ∈ K ′ , se
define δ ′ (q , σ ) = [δ (q , σ )]∼ . La función de transición esta bien
definida puesto que, si p ∈ [q ]∼ y [δ (q , σ )]∼ 6= [δ (p, σ )]∼ , los
estados p y q serı́an distinguibles.
Demostración
El algoritmo, para construir un tal autómata, hace uso del algoritmo de
marcado con el fin de determinar las clases de equivalencia.
Veamos que el autómata B ası́ construido tiene el menor número de
estados posibles. Por reducción al absurdo, supongamos que no es
ası́ y sea C un autómata con un número menor de estados. Como
definen el mismo lenguaje, i.e. son autómatas aquivalentes, los
estados iniciales son equivalentes. Como ninguno de los dos
autómatas posee estados aislados del inicial, cada estado de B va a
ser equivalente a alguno de C. Puesto que C tiene menos estados que
B, hay dos estados de B equivalentes entre si, lo cual resulta absurdo.
Ejemplo
Consideramos el autómata:
1
0
A
0
B
1
E
1
1
0
C
1
0
F
D
0
1
1
G
0
1
0
0
H
Ejemplo
El mı́nimo autómata que acepta el lenguaje del anterior es:
1
0
G
A, E
1
D, F
1
0
0
0
B, H
0
1
C
1
Contenidos
1
Autómatas finitos
Autómatas finitos deterministas
Autómatas finitos no deterministas
Autómatas finitos no deterministas
1
Gramáticas regulares
Expresiones y gramáticas regulares
Autómatas finitos y gramáticas regulares
Autómatas y expresiones regulares
1
Propiedades de los lenguajes regulares
Lenguajes no regulares
Propiedades de clausura
Propiedades de decisión
Equivalencia y minimización
1
Autómatas a pila
Definiciones básicas
Autómatas a pila deterministas
Autómatas a pila
Definición
Un autómata a pila es una tupla P = (K , Σ, Γ, δ , s, Z , F ) donde:
1
K es un conjunto finito de estados,
2
Σ y Γ son dos alfabetos finitos llamados de entrada y de pila
(respec.),
3
δ : K × (Σ ∪ {ε }) × Γ → P(K ) × Γ∗ es una aplicación llamada
de transición,
4
s ∈ K es el estado inicial, Z es el sı́mbolo inicial de la pila, y
5
F es el conjunto de estados aceptadores.
Configuración y paso de computación de un AP
Definición
Dado un AP P = (K , Σ, Γ, δ , s, Z , F ), llamaremos configuración del
autómata P a toda tupla (q , w , γ ) ∈ K × Σ∗ × Γ∗ . En particular,
llamaremos configuración inicial para un cadena dada w ∈ Σ∗ a la
tupla (s, w , Z ).
Definición
Supongamos dados un AP P = (K , Σ, Γ, δ , s, Z , F ), un sı́mbolo del
alfabeto de entrada σ ∈ Σ y un sı́mbolo del alfabeto de pila ρ ∈ Γ tales
que δ (q , σ , ρ ) = (Q , α ) para ciertos Q ∈ P(K ) y α ∈ Γ∗ . Para todo
p ∈ Q, w ∈ Σ∗ y γ ∈ Γ∗ , diremos que la configuración (q , σ w , ργ ) da
lugar, en un paso de computación, a la configuración (p, w , αγ ) y lo
denotaremos por (q , σ w , ργ ) ⊢P (p, w , αγ ). En general, emplearemos
la notación ⊢∗P para indicar que una configuración se sigue de otra en
un número finito de pasos (quizás nulo).
Lenguaje aceptado por estado final
Definición
Dado un autómata a pila P = (K , Σ, Γ, δ , s, Z , F ), se define el
lenguaje aceptado por P por estado final como el conjunto de las
cadenas w ∈ Σ∗ tales que partiendo de la configuración inicial para w,
el autómata alcanza en un número finito de pasos una configuración
aceptadora, i.e.
L(P ) = {w ∈ Σ∗ : (s, w , Z ) ⊢∗P (f , ε , γ ) ∈ F × {ε } × Γ∗ }.
Lenguaje aceptado por pila vacı́a
Definición
Dado un autómata a pila P = (K , Σ, Γ, δ , s, Z , F ), se define el
lenguaje aceptado por P por pila vacı́a como el conjunto de las
cadenas w ∈ Σ∗ tales que partiendo de la configuración inicial para w,
el autómata alcanza en un número finito de pasos una configuración
con cadena y pila vacı́as, i.e.
L(P ) = {w ∈ Σ∗ : (s, w , Z ) ⊢∗P (f , ε , ε ) ∈ K × {ε } × {ε }}.
Equivalencia
Teorema
Dado un lenguaje aceptado por un autómata P por estado final, existe
un autómata P ′ que acepta L por pila vacı́a. Recı́procamente, si L es
aceptado por un autómata por pila vacı́a, existe un autómata P ′ que
acepta L por estado final.
Demostración (1)
Supongamos dado un lenguaje L ⊂ Σ∗ aceptado por un AP
P = (K , Σ, Γ, δ , s, Z , F ) por estado final. La construcción de un
autómata P ′ que acepta L por pila vacı́a es como sigue: P ′ coincide
con P con las siguientes salvedades:
el sı́mbolo inicial de pila viene dado por un nuevo sı́mbolo X ,
el conjunto de estado coincide con el de P salvo por la inclusión
de dos nuevos estados: un nuevo estado inicial p0 y un nuevo
estado denotado pF encargado de vaciar la pila.
la función de transición es igual que en el autómata a pila salvo
por la inclusión de diversas transiciones: la primera está definida
mediante δ (p0 , ε , X ) = {(s, ZX )} y se encarag de apilar el
sı́mbolo inicial de pila del autómata P, mientras que las restantes
son de la forma δ (f , ε , γ ) = {(pF , ε )}, donde f ∈ F y γ ∈ Γ.
Demostración (2)
Gráficamente, representamos a continuación dicho autómata:
ε , Γ/ε
p0
ε , X /ZX
s
ε , Γ/ε
pF
Demostración (3)
Recı́procamente, supongamos que el lenguaje L es aceptado por un
autómata a pila por pila vacı́a. La construcción del autómata P ′ es
como sigue: al igual que en el caso anterior, el nuevo autómata es
esencialmente igual a P con las siguientes salvedades:
el sı́mbolo inicial de pila viene dado por un nuevo sı́mbolo Z ,
se añaden dos nuevos estados p0 (estado inicial) y pF (estado
final),
se consideran, además de las transiciones de originales P, las
siguientes: una transición inicial definida mediante
δ (p0 , ε , X ) = {(s, ZX )} y unas transiciones encargadas de
aceptar definidas por δ (q , ε , Z ) = {(pF , X )}.
Demostración (4)
En lı́neas generales, el diagrama de transiciones de P ′ tiene la pinta:
p0
ε , X /ZX
s
ε , X /X
pF
Autómata a pila determinista
Definición
Dado un autómata a pila P = (K , Σ, Γ, s, Z , F ), diremos que es
determinista si verifica:
1
2
δ (q , σ , γ ) = (Q , γ ′ ) verifica #Q ≤ 1 para todo q ∈ K , σ ∈ Σ y
γ ∈ Γ.
Si δ (q , σ , γ ) = (Q , γ ′ ) con Q 6= 0/ , entonces δ (q , ε , γ ) = (0,
/ γ ′ ).
AP y lenguajes regulares
Teorema
Dado un lenguaje regular L ⊆ Σ∗ , exite un autómata a pila
deterministas que acepta L por estado final.
Nota
Para finalizar, notemos que existen lenguajes aceptador por
autómatas a pila que no son aceptados por autómatas a pila
deterministas.
Descargar