Cap´ıtulo 8 Propiedades de los Lenguajes Regulares

Transcripción

Cap´ıtulo 8 Propiedades de los Lenguajes Regulares
Capı́tulo 8
Propiedades de los Lenguajes
Regulares
Definición 1 (Lenguaje regular) Un lenguaje L se denomina regular si y sólo si existe un
autómata finito determinista A tal que L = L(A).
Se pueden dar definiciones equivalentes, utilizando expresiones regulares o gramáticas regulares,
ya que, como hemos visto en temas anteriores, estos formalismos definen la misma clase de
lenguajes.
Preguntas 1
¿Existe algún método para saber si un lenguaje dado es regular o no?.
¿Son los lenguajes que se obtienen al aplicar determinadas operaciones a lenguajes regulares también regulares?.
¿Cómo se puede decidir (de forma automática) si un lenguaje regular tiene ciertas propiedades: si es finito, vacı́o, o infinito?.
8.1.
Identificación de lenguajes no regulares
Teorema 2 (Lema de Bombeo o Pumping Lemma) Sea L un lenguaje regular. Entonces existe una constante n ∈ N tal que para toda palabra x ∈ L con |x| ≥ n, existe una
descomposición de x en tres subcadenas, x = uvw verificando las siguientes propiedades:
a) |uv| ≤ n
b) |v| > 0
c) uvi w ∈ L, para todo i ∈ N.
1
CAPÍTULO 8. PROPIEDADES DE LOS LENGUAJES REGULARES
2
Demostración.– Si L es finito, basta con tomar n > máx{|x| | x ∈ L}. Por tanto, a partir de
ahora, y en toda la demostración, supondremos que L es infinito.
Como L es regular, existe un autómata finito determinista mı́nimo A = (Q, Σ, q0 , f, F ) tal que
L(A) = L. Definimos n := |Q|.
Sea x = a1 a2 a3 . . . am ∈ L una palabra arbitraria del lenguaje, con m ≥ n. Como x ∈ L, se
sigue que el autómata A acepta x. Consideremos la sequencia de transiciones que recorre A
para aceptar x:
a1
a2
a3
am
q0 −→
q1 −→
q2 −→
· · · −→
qm ,
con q0 , . . . , qm ∈ Q, y qm ∈ F . Esta cadena tiene m+1 estados. Como A tiene n estados distintos,
y m + 1 > n, se sigue que en dicha secuencia de transiciones existe un estado repetido, esto
es, existen dos enteros j, k, 0 ≤ j < k ≤ n tal que qj = qk . Consideremos ahora las siguientes
palabras:
u := a1 · · · aj
v := aj+1 · · · ak
w := ak+1 · · · am
Obviamente se tiene que x = uvw. Veamos que se verifican el resto de las propiedades:
a) |uv| ≤ n, pues |uv| = k ≤ n.
b) |v| > 0, pues |v| = k − j > 0.
c) uvi w ∈ L, para todo i ∈ N, pues, como se ve en el esquema de abajo, la cadena v =
aj+1 · · · ak puede eliminarse, o bien “bombearse” sin que cambie el estado al que se llega
al finalizar la palabra:
v = aj+1 , . . . , ak
u = a1 , . . . , aj
q0
w = ak+1 , . . . , am
qj = qk
qm
Ası́, uvi w = a1 · · · aj (aj · · · ak )i ak · · · am ∈ L, ∀i ∈ N.
8.1.1.
Aplicación del Lema de Bombeo
El lema de bombeo se puede utilizar para demostrar que ciertos lenguajes no son regulares. Para
demostrar que un lenguaje no es regular basta probar que no lo cumple. Estas demostraciones
son siempre por contradicción y siguen el siguiente esquema:
1. Se supone que L es regular y, por tanto, debe cumplir el lema de bombeo.
CAPÍTULO 8. PROPIEDADES DE LOS LENGUAJES REGULARES
3
2. Se elige un valor genérico n (no especificado) para la constante.
3. Se selecciona una palabra x ∈ L (en función de n) con |x| ≥ n.
4. Se descompone x en uvw, tal que |uv| ≤ n y |v| > 0, de todas las formas posibles.
5. Se demuestra que para todas estas descomposiciones, existe siempre i ∈ N tal que uvi w 6∈
L.
6. Si se consigue demostrar que para todas estas descomposiciones existe siempre un tal
i ∈ N, tal que uvi w 6∈ L, entonces L no cumple el lema y, por tanto, no es regular.
Veamos, por ejemplo, que el lenguaje L = {am b2m | m ∈ N} no es regular.
Supongamos que L es regular. Sea n = N ∈ N la constante del lema de bombeo, y elegimos
la palabra x := aN b2N . Se tiene que x ∈ L, y además |x| = 3N ≥ n. Por el Lema de Bombeo,
existen palabras u, v, w tales que x = uvw, y tales que |uv| ≤ n y |v| > 0. Por la forma de
la palabra x y por con estas dos propiedades, podemos concluir que la descomposición tiene la
siguiente forma:
u := ai
con i ∈ N
j
v := a
con j > 0
N −i−j 2N
w := a
b
y además, i + j ≤ N . Lo más importante es que, necesariamente, v tendrá la forma v = aj
para cierto j ∈ N, 0 < j ≤ N . Ası́ pues, uv0 w = uw = aN −j b2N . Por tanto uv0 w 6∈ L (ya que
2(N − j) 6= 2N ), en contradicción con la última propiedad del Lema de Bombeo. Por tanto, el
lenguaje no es regular.
Ejemplo 1
¿Es el lenguaje L := {xx−1 | x ∈ {0, 1}∗ } regular?.
Sea el lenguaje L := {an bm cm | m, n ≥ 1}. Demuestra que L cumple el lema de bombeo.
¿Es L un lenguaje regular?.
P
¿Es el lenguaje L := {am |m = ni=0 i , n ≥ 0} regular?.
Sea Σ = {−, ., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9} y sea x ∈ R un número real. Sea Lx el lenguaje de
las cadenas que son las truncaciones de la expansión decimal de x. Por ejemplo,
L256 =
L−15.7 =
Lπ =
L 943 =
990
L√2
{λ, 2, 25, 256, 256., 256.0, 256.00, 256.000, . . .}
{λ, −, −1, −15, −15., −15.7, −15.70, −15.700, . . .}
{λ, 3, 3., 3.1, 3.14, 3.141, 3.1415, . . .}
{λ, 0, 0., 0.7, 0.72, 0.725, 0.7252, 0.72525, 0.725252,
0.7252525, 0.72525252, 0.725252525, . . .}
= {λ, 1, 1., 1.4, 1.41, 1.414, , 1.4142, 1.41421, 1.414213, . . .}
CAPÍTULO 8. PROPIEDADES DE LOS LENGUAJES REGULARES
4
Demuestra que Lx es regular si y sólo si x es un número racional. Este ejemplo indica lo
limitado que es (computacionalmente) la noción de lenguaje regular.
Demuestra que el lenguaje HTML no es un lenguaje regular.
8.2.
Operaciones sobre Lenguajes
Teorema 3 Dados dos lenguajes regulares L1 y L2 , los lenguajes L1 ∪ L2 , L1 L2 y L∗1 también
son regulares.
Demostración.– Si L1 y L2 son regulares, existen dos expresiones regulares α1 y α2 tales que
L1 = L(α1 ) y L2 = L(α2 ). Utilizando la definición de las operaciones de cierre, concatenación
y suma de expresiones regulares:
L1 ∪ L2 = L(α1 ) ∪ L(α2 ) = L(α1 + α2 )
L1 L2 = L(α1 )L(α2 ) = L(α1 α2 )
L∗1 = L(α1 )∗ = L(α1∗ )
Es decir, existen expresiones regulares que describen los lenguajes L1 ∪ L2 , L1 L2 y L∗1 y, por
tanto, estos lenguajes son regulares.
Teorema 4 Dado un lenguaje regular L, su complemento L también es regular.
Demostración.– Dado que L es regular, existe un AFD A = (Q, Σ, q0 , f, F ), tal que L(A) = L.
Consideremos el autómata A′ = (Q, Σ, q0 , f, Q \ F ). Trivialmente, el autómata A′ únicamente
acepta las palabras rechazadas por el autómata A, y por tanto L(A′ ) = Σ∗ \ L = L.
Observación 5 Es imprescindible que el autómata en la demostración sea determinista.
¿Qué ocurrirı́a si fuese no determinista?.
Teorema 6 Dados dos lenguajes regulares L1 y L2 , el lenguaje L1 ∩ L2 también es regular.
Demostración.– Por las leyes de Morgan:
L1 ∩ L2 = L1 ∪ L2 .
Teorema 7 Dados dos lenguajes regulares L1 y L2 , el lenguaje diferencia L1 \ L2 también es
regular.
CAPÍTULO 8. PROPIEDADES DE LOS LENGUAJES REGULARES
5
Demostración.– Por las leyes de Morgan:
L1 \ L2 = L1 ∩ L2 .
Teorema 8 Dado un lenguaje regular L sobre un alfabeto finito Σ, su lenguaje inverso L−1
también es regular.
Demostración.– Dado que L es regular, existe una expresión regular α tal que L(α) = L. Para
demostrar que L−1 es regular, construiremos recursivamente a partir de α una expresión regular
α−1 tal que L(α−1 ) = L−1 .
Si α = ∅, o α = λ o α = a ∈ Σ, entonces α−1 := α.
Si α = α1 + α2 , entonces α−1 := α1−1 + α2−1 .
Si α = α1 α2 , entonces α−1 := α2−1 α1−1 .
Si α = α1∗ , entonces α−1 := (α1−1 )∗ .
Definición 9 (Homomorfismo) Sean Σ y Γ dos alfabetos finitos. Se llama homomorfismo a
una función h : Σ → Γ∗ , tal que asigna una palabra de Γ∗ a cada sı́mbolo de Σ.
Esta definición se puede extender para definir la función h sobre palabras de Σ:
w = a1 a2 . . . an ∈ Σ∗
⇒
h(w) := h(a1 )h(a2 ) · · · h(an ) ∈ Γ∗ .
Definición 10 (imagen homomórfica) Dado un lenguaje L ⊆ Σ∗ y dado un homomorfismo
h : Σ → Γ∗ , se llama imagen homomórfica de L respecto a h al lenguaje h(L) definido de la
siguiente manera:
h(L) := {h(w) | w ∈ L}.
Teorema 11 Sean Σ y Γ dos alfabetos finitos, y sea L un lenguaje regular definido sobre Σ. Sea
h : Σ → Γ∗ un homomorfismo. Entonces, la imagen homomórfica de L respecto a h también
es regular.
Demostración.– Dado que L es regular, existe una expresión regular α tal que L(α) = L.
Para demostrar que h(L) es regular, construiremos recursivamente a partir de α una expresión
regular α′ tal que L(α′ ) = h(L).
Si α = ∅ o α = λ, entonces α′ := α.
CAPÍTULO 8. PROPIEDADES DE LOS LENGUAJES REGULARES
6
Si α = a ∈ Σ, entonces r′ := (h(a)).
Si α = α1 + α2 , entonces α′ := α1′ + α2′ .
Si α = α1 α2 , entonces α′ := α1′ α2′ .
Si α = α1∗ , entonces α′ := (α1′ )∗ .
Es decir, se sustituye cada sı́mbolo a ∈ Σ en α por la cadena h(a). α′ es una expresión regular
que representa h(L), por lo que h(L) es un lenguaje regular.
8.3.
Algoritmos de Decisión
8.3.1.
¿Es L vacı́o?
Teorema 12 Dado un lenguaje regular L, existe un algoritmo para decidir si dicho lenguaje es
vacı́o.
Demostración.– Considérese el autómata finito determinista mı́nimo que acepta L. Entonces
L es vacı́o si y sólo si dicho autómata mı́nimo no tiene estados finales.
8.3.2.
¿Es L infinito?
Teorema 13 Dado un lenguaje regular L, existe un algoritmo para decidir si dicho lenguaje
es infinito.
Demostración.– Considérese el diagrama de transiciones del AFD A mı́nimo tal que L(A) = L.
L es infinito si y sólo si existe un ciclo en un nodo perteneciente a un camino desde el estado
inicial a un estado final.
8.3.3.
Pertenencia al lenguaje
Teorema 14 Dado un lenguaje regular L, existe un algoritmo para decidir si una palabra w
pertenece al lenguaje.
Demostración.– Considérese el diagrama de transiciones del AFD A mı́nimo tal que L(A) = L.
Simúlese el funcionamiento del autómata tomando como entrada la palabra w. Si el estado en
el que termina la simulación es un estado final, entonces w pertenece a L; en otro caso, w no
pertenece a L.
CAPÍTULO 8. PROPIEDADES DE LOS LENGUAJES REGULARES
8.3.4.
7
Igualdad entre lenguajes
Teorema 15 Dados dos lenguajes regulares L1 y L2 , existe un algoritmo para decidir si son
equivalentes, es decir, L1 = L2 .
Demostración.– L1 = L2 si y sólo el lenguaje (L1 \ L2 ) ∪ (L2 \ L1 ) es vacı́o.

Documentos relacionados