Вы находитесь на странице: 1из 5

Notas de clase para el curso

Introducción a la Teorı́a de la Computación


II Semestre 2018
Profesor: Rodrigo De Castro K.

2.14. Lenguajes no-regulares y problemas insolubles


En secciones anteriores se han estudiado los lenguajes regulares y sus propiedades funda-
mentales. En particular, el Teorema de Kleene (secciones 2.10 y 2.11) establece que los
lenguajes regulares son exactamente los lenguajes aceptados por los autómatas finitos.
En esta sección se demostrará que existen lenguajes no-regulares y, como consecuencia,
se concluirá que hay problemas computacionales que no se pueden resolver utilizando los
modelos de autómatas finitos (AFD, AFN y AFN-λ) hasta ahora considerados.
  n n 2 3 4
Ejemplo Demostrar que el lenguaje L = {a b : n ≥ 0} = {λ, a, a , a , a , . . .}, sobre
 Σ = {a, b}, no es regular.

Solución. En primer lugar, hay que observar que el lenguaje L es diferente de a∗ b∗ ya


que este último está formado por las concatenaciones de cualquier número de aes con
cualquier numero de bes, o sea, a∗ b∗ = {am bn : m, n ≥ 0}, mientras que cada cadena de
L tiene igual número de aes que de bes. a∗ b∗ es regular y se puede aceptar por medio del
siguiente AFD:

a b

q0 b q1

No obstante, para aceptar a L un autómata debe almacenar (de alguna forma) la infor-
mación sobre el número de aes y compararla luego con el número de bes. El único tipo
de memoria disponible son los estados y resulta intuitivamente claro que con un número
finito de estados es imposible para un autómata almacenar la información necesaria para
procesar y aceptar todas y cada una de las cadenas de la forma an bn con n ≥ 0. Pero se
requiere un argumento matemáticamente riguroso para demostrarlo concluyentemente.
Para concluir que L no es regular razonamos por contradicción (o reducción al absurdo):
suponemos que L es regular y llegamos a una contradicción. Si L es regular, existe un
AFD M = (Σ, Q, q0 , F, δ) tal que L(M ) = L. A continuación consideramos las potencias
de a, a saber, λ, a, a2 , a3 , a4 , . . .. Cada una de estas cadenas es procesada por M y su
procesamiento termina en un determinado estado. Puesto que hay infinitas potencias de
a pero solamente un número finito de estados en M , deben existir dos cadenas diferentes

87
Introducción a la Teorı́a de la Computación. Capı́tulo 2 88

ai y aj , con i 6= j, cuyo procesamiento termina en el mismo estado. Utilizando la función


b 0 , ai ) = δ(q
δb (Definición 2.5.2), podemos expresar este hecho como δ(q b 0 , aj ). Como M es
un autómata determinista, se concluye que, para toda cadena x ∈ Σ∗ , el procesamiento
de las cadenas ai x y aj x termina en el mismo estado; en efecto,
b 0 , ai x) = δ(
δ(q b 0 , ai ), x) = δ(
b δ(q b 0 , aj ), x) = δ(q
b δ(q b 0 , aj x).

En el grafo de M se puede visualizar la situación de la siguiente manera:

ai
x
q0 q q0

aj

Esto implica que para toda x ∈ Σ∗ , las cadenas ai x y aj x son ambas aceptadas o am-
bas rechazadas. La contradicción surge porque existe una cadena x ∈ Σ∗ tal que ai x es
aceptada pero aj x es rechazada. Por simple inspección observamos que tomando x = bi se
tendrá ai x = ai bi ∈ L pero aj x = aj bi ∈
/ L (porque i 6= j). De modo que ai bi es aceptada
mientras que aj bi es rechazada, lo cual es una contradicción.
 
Ejemplo Demostrar que el lenguaje de los palı́ndromes sobre Σ = {0, 1} no es un
 lenguaje regular. Recuérdese que un palı́ndrome es una cadena u que coincide
con su reflexión, o sea, tal que u = uR .
Solución. Como en el ejemplo anterior, razonamos por contradicción. Suponemos que L es
regular; entonces existe un AFD M = (Σ, Q, q0 , F, δ) tal que L(M ) = L. A continuación
consideramos las potencias de 1, a saber, λ, 1, 12 , 13 , 14 , . . .. Cada una de estas cadenas es
procesada por M y su procesamiento termina en un determinado estado; pero como hay
infinitas potencias de 1 y solamente un número finito de estados en M , deben existir dos
cadenas diferentes 1i y 1j , con i 6= j, cuyo procesamiento termina en el mismo estado. Es
b 0 , 1i ) = δ(q
decir, δ(q b 0 , 1j ). Como M es un autómata determinista, se concluye que, para
toda x ∈ Σ∗ , el procesamiento de las cadenas 1i x y 1j x termina en el mismo estado. En
otras palabras, δ(q b 0 , 1j x) para toda cadena x ∈ Σ∗ . Esto implica que para
b 0 , 1i x) = δ(q

toda x ∈ Σ , las cadenas 1 x y 1j x son ambas aceptadas o ambas rechazadas. Se llega a
i

una contradicción si podemos encontrar una cadena x ∈ Σ∗ tal que 1i x sea aceptada pero
1j x sea rechazada (o viceversa). Procediendo por inspección (ensayo y error) observamos
que tomando x = 01i se tendrá que 1i x = 1i 01i es un palı́ndrome pero 1j x = 1j 01i no
lo es (porque i 6= j). De modo que 1i 01i es aceptada mientras que 1j 01i es rechazada, lo
cual es una contradicción.
Nótese que podrı́amos haber construido un razonamiento completamente similar con-
siderando las infinitas potencias de 0 (λ, 0, 02 , 03 , 04 , . . . ,) en vez de las de 1.

Como veremos a continuación, la existencia de lenguajes no-regulares implica que hay


ciertos problemas que no pueden ser resueltos por medio de autómatas finitos. Dado un
Introducción a la Teorı́a de la Computación. Capı́tulo 2 89

alfabeto Σ, consideremos una propiedad P referente a las cadenas de Σ∗ . Denotamos con


LP el lenguaje de todas las cadenas que satisfacen la propiedad P, es decir,

LP = {u ∈ Σ∗ : u satisface P} = {u ∈ Σ∗ : P(u)}.

El problema de decisión para P es el siguiente:

(2.14.1) Dada u ∈ Σ∗ , ¿satisface u la propiedad P?

Decimos que el problema (2.14.1) puede ser resuelto usando autómatas finitos si existe
un AFD M tal que L(M ) = LP . En tal caso, para cada entrada u ∈ Σ∗ se tendrá
(
Si u es aceptada por M =⇒ u satisface P.
Si u es rechazada por M =⇒ u no satisface P.

Por consiguiente, el problema de decisión (2.14.1) se puede resolver usando autómatas


finitos si y sólo si LP es regular.
 
Ejemplo Sea Σ = {0, 1}. El problema de decisión
 

Dada u ∈ Σ∗ , ¿tiene u un número par de ceros?

se puede resolver usando autómatas finitos. La propiedad P en este caso es “tener un


número par de ceros” y LP es el lenguaje

LP = {u ∈ Σ∗ : u tiene un número par de ceros } = {u ∈ Σ∗ : #0 (u) es par}.

Sabemos que LP es regular y es aceptado por el siguiente AFD M :


1 1
0
q0 q1

Entonces M resuelve el problema de decisión para P.


 
Ejemplo Sea Σ = {0, 1}. Demostrar que ningún autómata finito puede resolver el
 siguiente problema de decisión:

Dada u ∈ Σ∗ , ¿tiene u el mismo número de ceros que de unos?


Solución. La propiedad P en este caso es “tener el mismo número de ceros que de unos”
y LP es el lenguaje LP = {u ∈ Σ∗ : #0 (u) = #1 (u)}. Utilizando un argumento por
contradicción similar a los presentados en esta sección, es posible demostrar que LP no es
regular (véase el ejercicio Á de esta sección). Por consiguiente, este problema es insoluble
por medio de autómatas finitos.
Introducción a la Teorı́a de la Computación. Capı́tulo 2 90

 
Ejercicios de la sección 2.14
 

À Utilizar un argumento por contradicción para demostrar que los siguientes lenguajes
no son regulares:

(i) L = {an b2n : n ≥ 0}, sobre Σ = {a, b}.


(ii) L = {a2n bn : n ≥ 0}, sobre Σ = {a, b}.
(iii) L = {an bm : n, m ≥ 0, n 6= m}, sobre Σ = {a, b}.
(iv) L = {am bn : m ≥ n ≥ 0}, sobre Σ = {a, b}.
(v) L = {0n 10n : n ≥ 1}, sobre Σ = {0, 1}.
(vi) L = {0m 1n 0m : m, n ≥ 0}, sobre Σ = {0, 1}.
(vii) L = {1n 01n 0 : n ≥ 1}, sobre Σ = {0, 1}.
(viii) L = {01n 01n : n ≥ 1}, sobre Σ = {0, 1}.
(ix) L = {uu : u ∈ Σ∗ }, sobre Σ = {a, b}.
(x) L = {uuR : u ∈ Σ∗ }, sobre Σ = {a, b}.

Á Σ = {0, 1}. Utilizar un argumento por contradicción para demostrar que los siguien-
tes lenguajes no son regulares:

(i) L = {u ∈ Σ∗ : #0 (u) = #1 (u)}.


(ii) L = {u ∈ Σ∗ : #0 (u) 6= #1 (u)}.
(iii) L = {u ∈ Σ∗ : #1 (u) > #0 (u)}.

 Determinar si los siguientes problemas de decisión se pueden o no resolver utilizando


autómatas finitos. Ya sea la respuesta afirmativa o negativa, se debe presentar una
demostración rigurosa.

(i) Σ = {a, b}. Dada u ∈ Σ∗ , ¿tiene u un número par de aes y un número impar
de bes?
(ii) Σ = {a, b}. Dada u ∈ Σ∗ , ¿se cumple que #a (u) = #b (u) + 1?
(iii) Σ = {a, b}. Dada u ∈ Σ∗ , ¿es el número de aes en u un múltiplo 3? Nota: 0 se
considera múltiplo de cualquier otro número natural.
(iv) Σ = {a, b}. Dada u ∈ Σ∗ , ¿es el número de aes en u un múltiplo del número
de bes en u?
(v) Σ = {0, 1}. Dada u ∈ Σ∗ , ¿el primer sı́mbolo de u (de izquierda a derecha)
coincide con el último sı́mbolo de u (de izquierda a derecha)?
(vi) Σ = {0, 1}. Dada u ∈ Σ∗ , ¿se puede escribir u como la concatenación de dos
mitades iguales? Es decir, ¿es u = vv, para alguna cadena v ∈ Σ∗ ?
Introducción a la Teorı́a de la Computación. Capı́tulo 2 91

à Demostrar que a∗ b∗ es la unión de dos lenguajes disyuntos no-regulares.

Ä Sea L un lenguaje no-regular y N un subconjunto finito de L. Demostrar que L − N


tampoco es regular.

Å Demostrar o refutar las siguientes afirmaciones:

(i) Un lenguaje no-regular debe ser infinito.


(ii) Si el lenguaje L1 ∪ L2 es regular, también lo son L1 y L2 .
(iii) Si los lenguajes L1 y L2 no son regulares, el lenguaje L1 ∩ L2 tampoco puede
ser regular.
(iv) Si el lenguaje L∗ es regular, también lo es L.
(v) Si L es regular y N es un subconjunto finito de L, entonces L − N es regular.
(vi) Un lenguaje regular L es infinito si y sólo si en cualquier expresión regular de
L aparece por lo menos una ∗ (estrella de Kleene).

Вам также может понравиться