Академический Документы
Профессиональный Документы
Культура Документы
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
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.
LP = {u ∈ Σ∗ : u satisface P} = {u ∈ Σ∗ : P(u)}.
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.
Ejercicios de la sección 2.14
À Utilizar un argumento por contradicción para demostrar que los siguientes lenguajes
no son regulares:
Á Σ = {0, 1}. Utilizar un argumento por contradicción para demostrar que los siguien-
tes lenguajes no son regulares:
(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