Académique Documents
Professionnel Documents
Culture Documents
AFD AFN-λ
Expresiones
T. de Kleene II regulares T. de Kleene I
61
Introducción a la Teorı́a de la Computación. Capı́tulo 2 62
regulares básicas, podemos construir fácilmente autómatas que acepten los lenguajes re-
presentados. Ası́, el autómata
q0 q0
q0
q0 a q0
3,5
.. ..
2,5 M1 . M2 .
1,5
0,5
0 1 2 3 4 5 6 7 8 9 10 11 12
Los estados finales o de aceptación se dibujan a la derecha, pero cabe advertir que el
estado inicial puede ser también un estado de aceptación. Podemos ahora obtener AFN-λ
que acepten los lenguajes R1 ∪ R2 y R1 R2 .
Para aceptar R1 ∪ R2 los autómatas M1 y M2 se conectan mediante lo que se denomina
una conexión en paralelo. Hay un nuevo estado inicial y los estados de aceptación del
nuevo autómata son los estados de aceptación de M1 , junto con los de M2 .
Autómata que acepta R1 ∪ R2 :
Introducción a la Teorı́a de la Computación. Capı́tulo 2 63
..
7 M1 .
6 λ
λ
3
..
M2 .
2
0
0 1 2 3 4 5 6 7 8 9
4
λ
3
.. .. ..
M1 . . M2 .
2
1
λ
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
4,5
3,5
..
2,5 M .
1,5
0,5
0 1 2 3 4 5 6
λ ..
M .
M 0: λ
..
M .
λ
Introducción a la Teorı́a de la Computación. Capı́tulo 2 65
A primera vista esta construcción parece razonable, pero al convertir el estado inicial
en estado de aceptación, M 0 podrı́a aceptar cadenas adicionales no pertenecientes a R∗ .
Como contraejemplo consideremos la expresión regular R = a∗ b. En la gráfica siguiente
se exhibe a la izquierda un AFN M tal que L(M ) = a∗ b y a la derecha el autómata M 0
obtenido realizando la construcción esbozada arriba.
M: M 0:
a a
b b
a λ b a b
Para aceptar a∗ :
Según el procedimiento: Simplificación:
λ a
λ a
Para aceptar a+ podemos usar una cualquiera de las siguientes dos simplificaciones:
a a
a a
Introducción a la Teorı́a de la Computación. Capı́tulo 2 66
b c
c b
b c
λ
λ
c b
b c
λ λ
λ
c b
a
λ b
Para aceptar R1 = (bc ∪ cb)∗ a∗ b conectamos en serie los dos últimos autómatas:
b c
a
λ λ λ b
λ
λ
λ
c b
λ
λ c a
λ
b
λ λ c a
λ
b c
λ λ c a λ λ c
λ
Introducción a la Teorı́a de la Computación. Capı́tulo 2 68
b c
a
λ λ λ b
λ
λ
λ
λ
c b
λ
λ
λ b c
λ λ c a λ λ c
Ejercicios de la sección 2.10
Utilizar el procedimiento del Teorema 2.10.1 para construir AFN-λ que acepten los si-
guientes lenguajes sobre el alfabeto {a, b, c}.
 (a ∪ ba ∪ ca)∗ (λ ∪ a)b+ c+ .
se puede eliminar añadiendo un arco entre q1 y q0 con etiqueta ba∗ b. Se obtiene el GEG
(grafo derecho) cuyo lenguaje aceptado (por inspección) es (aba∗ b)∗ .
a a
q0 q1 q0 q1
a
ba∗ b
b b
q2
El procedimiento general para encontrar una expresión regular R que represente el len-
guaje aceptado por un autómata M dado consta de los siguientes pasos:
a1 , a2 , . . . , ak a1 ∪ a2 ∪ · · · ∪ ak
qi qj se transforma en qi qj
De esta forma, entre dos estados cualesquiera hay, a lo sumo, un arco etiquetado con
una expresión regular.
(2) Modificar el GEG G de tal manera que haya un único estado de aceptación. Esto se
puede conseguir añadiendo un nuevo estado qf , que será el único estado de aceptación,
y trazando transiciones λ entre todos y cada uno de los estados en F (los estados de
aceptación originales) y qf . Cuando el autómata original posee un único estado de
aceptación, simplemente se mantiene como tal hasta el final.
Introducción a la Teorı́a de la Computación. Capı́tulo 2 70
(3) Este paso es un proceso iterativo por medio del cual se van eliminando uno a uno los
estados de G hasta que permanezcan únicamente dos estados (uno de ellos debe ser
el estado inicial q0 ). Para presentar el procedimiento en forma general utilizaremos la
siguiente notación: se denota con Rij la etiqueta (expresión regular) entre dos estados
qi y qj ; si no existe un arco entre qi y qj , se considera que Rij = ∅.
Si hay tres o más estados, escoger un estado cualquiera qk , diferente de q0 y que
no sea un estado de aceptación. Se pretende eliminar qk añadiendo adecuadamente
transiciones entre los estados restantes de tal manera que el lenguaje aceptado no se
altere. Sean qi y qj dos estados, diferentes de qk , con arcos etiquetados por expresiones
regulares, en la siguiente forma:
Rii Rjj
Rij
qi qj
Rji
Rik Rjk
Rki Rkj
qk
Rkk
qi qj
∗
Rji ∪ Rjk Rkk Rki
(4) Finalmente, cuando haya solamente dos estados, se puede obtener una expresión re-
gular para L(M ) considerando los siguientes dos casos:
R1 R2
R3
R4
R1 R2
R3
R4
Observaciones:
2. Es importante recalcar que, siempre que se ejecute la subrutina (3), el estado inicial
y los estados de aceptación no se pueden eliminar.
Ejemplo Utilizar el procedimiento presentado en la presente sección para encontrar
una expresión regular que represente el lenguaje L de todas las cadenas sobre
el alfabeto Σ = {a, b} que tienen un número par de aes y un número par de bes.
Solución. Conocemos un AFD M que acepta este lenguaje:
a
q0 q1
a
b b b b
a
q2 q3
a
Introducción a la Teorı́a de la Computación. Capı́tulo 2 72
El estado inicial q0 se puede mantener hasta el final como el único estado de aceptación.
Procedemos primero a eliminar el estado q1 (debido a la simetrı́a del grafo de M , también
podrı́amos eliminar primero q2 , o bien q3 ).
a2
q0
ab
b b
ba
a
q2 q3 b2
a
a2 ∪ b 2 b 2 ∪ a2
ab ∪ ba
q0 q3
ba ∪ ab
M:
a
a, b
q0 q1
a
b b
q2 q3
a
À a Á
q0 a∪b q1 q0
a a ∪ (a ∪ b)a∗ b
b b b
q2 q3 q2 a q3
a
a b
 Ã
a ∪ (a ∪ b)a∗ b
∗
a ∪ (a ∪ b)a b
q0 q3 q0 q3
a+ b
a
b λ λ ∪ a+
q2 q4 q4
λ
a
Introducción a la Teorı́a de la Computación. Capı́tulo 2 74
Ä
[a ∪ (a ∪ b)a∗ b]a∗
q0 q4
[a ∪ (a ∪ b)a∗ b]a+ b
(i)
b
q0 a q1 b q2
b a
q3
Introducción a la Teorı́a de la Computación. Capı́tulo 2 75
(ii)
b
a
q0 q1
a
b a
b
q2
(iii)
a b
b b
q0 q1 q2
a a
(iv)
b a
a
q0 q1 b q2
a
a b
q3
Introducción a la Teorı́a de la Computación. Capı́tulo 2 76
(v)
b a
b
q0 a q1 a q2 b q3 q4
a
(vi)
a
b
q0 a q1 b q2
a
b b
b
q3 q4 a
a
Reflexividad. p ≈ p.
Simetrı́a. Si p ≈ q entonces q ≈ p.
Transitividad. Si p ≈ q y q ≈ r entonces p ≈ r.
2.13.2 Proposición.
(i) δ 0 está bien definida, es decir, si [p] = [q] (o sea, si p ≈ q) entonces δ(p, a) ≈ δ(q, a)
para todo a ∈ Σ.
(iii) p ∈ F ⇐⇒ [p] ∈ F 0 .
Introducción a la Teorı́a de la Computación. Capı́tulo 2 79
Demostración.
(i) Si p ≈ q, entonces
de donde
(∀u ∈ Σ∗ )[δ(δ(p,
b a), u) ∈ F ⇐⇒ δ(δ(q,
b a), u) ∈ F ],
para todo a ∈ Σ. Por la definición de la relación ≈, se concluye que δ(p, a) ≈ δ(q, a).
El algoritmo se ejecuta llenando una tabla que muestra todos los pares de estados {p, q};
el propósito es determinar cuáles son equivalentes y cuáles no. Puesto que en el par {p, q}
no importa el orden de los estados, basta trabajar en una tabla de formato triangular
como la siguiente:
q0
q1
q2
..
. qn−2
··· qn−1
··· qn
En cada iteración la tabla se recorre por columnas, q0 , q1 , . . . , qn . La casilla {p, q} es
marcada por el algoritmo de minimización si y sólo si existe u ∈ Σ∗ tal que δ(q, b u) ∈ F
b u) ∈
y δ(q, / F , o viceversa, es decir, si y solo si p ≈ q. Por consiguiente, las casillas no
marcadas al finalizar el algoritmo representan estados equivalentes.
Si en la definición de la relación ≈ se toma u = λ, se deduce que si p ≈ q, entonces
δ(p, λ) ∈ F ⇐⇒ δ(q,
b b λ) ∈ F , o sea, p ∈ F ⇐⇒ q ∈ F . Esto implica que si p ≈ q, entonces
ambos estados son de aceptación o ninguno de los dos lo es. De manera que si p es estado
de aceptación y q no lo es (o viceversa), se tendrá p 6≈ q. Esta es la razón por la cual el
algoritmo de minimización comienza marcando las casillas {p, q} para las cuales p ∈ F y
q∈/ F (o viceversa).
Ejemplo Aplicar el algoritmo de minimización para encontrar un AFD con el menor
número de estados posible, equivalente al siguiente AFD, cuyo alfabeto de
Introducción a la Teorı́a de la Computación. Capı́tulo 2 81
entrada es {a}.
q5
a a
q0 q4
a a
q1 q3
a a
q2
Solución. Primero marcamos con 7 las casillas {p, q} para las cuales p es un estado de
aceptación y q no lo es, o viceversa:
q0
7 q1
7 q2
7 q3
7 7 7 q4
7 7 q5
Luego hacemos i := 2, examinamos las casillas aún no marcadas y procesamos el sı́mbolo
a. La información necesaria aparece en la siguiente tabla; la columna izquierda corresponde
a las casillas no marcadas {p, q} y la derecha a las casillas {δ(p, a), δ(q, a)} obtenidas al
procesar a. Esta tabla se utiliza a partir de la segunda iteración.
{p, q} {δ(p, a), δ(q, a)}
{q0 , q2 } {q1 , q3 } 7
{q0 , q3 } {q1 , q4 }
{q0 , q5 } {q1 , q0 } 7
{q1 , q4 } {q2 , q5 }
{q2 , q3 } {q3 , q4 } 7
{q2 , q5 } {q3 , q0 }
{q3 , q5 } {q4 , q0 } 7
q0
7 q1
7 7 q2
7 7 q3
7 7 7 q4
7 7 7 7 q5
En la tercera iteración ya no se pueden marcar más casillas y el algoritmo termina. Las
casillas vacı́as representan estados equivalentes; ası́ que q0 ≈ q3 , q1 ≈ q4 y q2 ≈ q5 . El
autómata cociente M 0 tiene entonces tres estados (las tres clases de equivalencia): {q0 , q3 },
{q1 , q4 } y {q2 , q5 }; el grafo obtenido es:
{q2 , q5 }
a a
{q0 , q3 } {q1 , q4 }
a
Ejemplo Aplicar el algoritmo de minimización para encontrar un AFD con el menor
número de estados posible, equivalente al siguiente AFD.
q1 b q3
b
q0 a b a
a
q2 q4
a
b a
Al marcar con 7 las casillas {p, q} para las cuales p es un estado de aceptación y q no lo
es, o viceversa, obtenemos la tabla:
q0
q1
q2
q3
7 7 7 7 q4
Introducción a la Teorı́a de la Computación. Capı́tulo 2 83
Luego hacemos i := 2, examinamos las casillas aún no marcadas y procesamos con las
entradas a y b. Tal información aparece en la siguiente tabla, la cual se utiliza a partir de
la segunda iteración.
{p, q} {δ(p, a), δ(q, a)} {δ(p, b), δ(q, b)}
{q0 , q1 } {q2 , q4 } 7 {q1 , q1 }
{q0 , q2 } {q2 , q4 } 7 {q1 , q2 }
{q0 , q3 } {q2 , q4 } 7 {q1 , q1 }
{q1 , q2 } {q4 , q4 } {q1 , q2 }
{q1 , q3 } {q4 , q4 } {q1 , q1 }
{q2 , q3 } {q4 , q4 } {q2 , q1 }
Las marcas 7 representan casillas previamente marcadas; según el algoritmo, las corres-
pondientes casillas en la columna izquierda se marcan con 7. Entonces, al terminar la
segunda iteración obtenemos la tabla triangular:
q0
7 q1
7 q2
7 q3
7 7 7 7 q4
En la tercera iteración ya no se marcan más casillas y el algoritmo termina. Se deduce que
los tres estados q1 , q2 y q3 son equivalentes entre sı́ (q1 ≈ q2 ≈ q3 ). El autómata cociente
posee entonces tres estados, a saber, {q0 }, {q1 , q2 , q3 } y {q4 }. Su grafo es:
b
a, b
{q0 } {q1 , q2 , q3 }
b a
{q4 }
a
Ejemplo Sea Σ = {a, b}. Demostrar que el lenguaje L de todas las cadenas que tienen
un número par de aes y un número par de bes no puede ser aceptado por
ningún AFD con menos de cuatro estados.
Solución. Ya conocemos un AFD M que acepta este lenguaje:
Introducción a la Teorı́a de la Computación. Capı́tulo 2 84
a
q0 q1
a
b b b b
a
q2 q3
a
en la cual todas las casillas han sido marcadas. Esto quiere decir que no hay pares de
estados diferentes que sean equivalentes entre sı́, o lo que es lo mismo, todo estado es
equivalente solamente a sı́ mismo. Por lo tanto, el autómata no se puede minimizar más
y no es posible aceptar el lenguaje L con menos de cuatro estados.
Introducción a la Teorı́a de la Computación. Capı́tulo 2 85
Ejercicios de la sección 2.13
a q2 b
b
b a
a a, b
q0 q1 q3 q5
b a
q6 a
b
q1 a q3 a, b
a b a
b
a, b
q0 q5 q6
b
b b a
q2 q4
a
q0 b q1 a q2 b q3
b
a b a a b
b a
q4 q5 q6 q7
a a
a b
Introducción a la Teorı́a de la Computación. Capı́tulo 2 86
q1 1 q2
1 0 1
0
q0 q4
0 0
0 0
q3 q5
1
b, c a
q0 c a q1 q2
a
q3
a
b
c
b c a
b, c
q4 q5 q6
b
b c a, b, c
Á Sea Σ = {a, b}. Demostrar que el lenguaje L = a+ b∗ a no puede ser aceptado por
ningún AFD con menos de seis estados (incluyendo el estado limbo).
 Sea Σ = {a, b}. Demostrar que el lenguaje L = a∗ b ∪ b∗ a no puede ser aceptado por
ningún AFD con menos de siete estados (incluyendo el estado limbo).
δ(q
b 0 , ux) = δ(
b δ(q
b 0 , u), x) = δ(
b δ(q
b 0 , v), x) = δ(q
b 0 , vx).
Entonces
ux ∈ L = L(M ) ⇐⇒ δ(q
b 0 , ux) ∈ F ⇐⇒ δ(q
b 0 , vx) ∈ F ⇐⇒ vx ∈ L(M ) = L.
δ(q
b 0 , u1 ), δ(q
b 0 , u2 ), . . . , δ(q
b 0 , un )
son diferentes entre sı́ (diferentes dos a dos) y, por lo tanto, M tiene por lo menos n
estados.
El siguiente enunciado es un recı́proco parcial de la Proposición 2.14.2.
Introducción a la Teorı́a de la Computación. Capı́tulo 2 88
2.14.5 Proposición. Sea M = (Σ, Q, q0 , F, δ) un AFD tal que L(M ) = L. Si dos cadenas
u y v ∈ Σ∗ son L-indistinguibles, entonces δ(q
b 0 , u) ≈ δ(q
b 0 , v).
(∀w ∈ Σ∗ ) δ(p,
b w) ∈ F ⇐⇒ δ(q,
b w) ∈ F .
(2.14.2) δ(p,
b w) = δ(
b δ(q
b 0 , u), w) = δ(q
b 0 , uw),
(2.14.3) δ(q,
b w) = δ(
b δ(q
b 0 , v), w) = δ(q
b 0 , vw).
Entonces
b w) ∈ F ⇐⇒ δ(q
δ(p, b 0 , uw) ∈ F (por (2.14.2))
⇐⇒ uw ∈ L(M ) = L
⇐⇒ vw ∈ L (por ser u y v indistinguibles)
⇐⇒ δ(q
b 0 , vw) ∈ F
⇐⇒ δ(q,
b w) ∈ F (por (2.14.3)).
2.14.6 Corolario. Sean M = (Σ, Q, q0 , F, δ) un AFD tal que L(M ) = L, y dos cadenas
u, v ∈ Σ∗ . Si δ(q
b 0 , u) 6≈ δ(q
b 0 , v), entonces u y v son L-distinguibles.
2.14.7 Teorema. Sea M un AFD cuyos estados son todos accesibles. El autómata cocien-
te M 0 (definido en la sección 2.13) es un AFD equivalente a M , con el mı́nimo número
de estados posible para aceptar el lenguaje L(M ).
Demostración. Sea M el AFD M = (Σ, Q, q0 , F, δ). Los estados del autómata cociente
M 0 = (Σ, Q0 , q00 , F 0 , δ 0 ) son todos accesibles. En efecto, dado q ∈ Q, existe u tal que
b 0 , u) = q ya que q es accesible en M . Se sigue que δb0 ([q0 ], u) = [δ(q
δ(q b 0 , u)] = [q] y, por lo
tanto [q] es accesible.
Supóngase ahora que M 0 tiene n estados diferentes, [q0 ], [q1 ], . . . , [qn−1 ], formados por
clases de equivalencia del autómata M . Como los estados q0 , q1 , . . . , qn−1 de M son accesi-
bles, existen cadenas x0 , x1 , . . . , xn−1 tales que δ(q
b 0 , x0 ) = q0 , δ(q
b 0 , x1 ) = q1 , . . . , δ(q
b 0 , xn−1 ) =
qn−1 . Puesto que qi 6≈ qj si i 6= j, se sigue del Corolario 2.14.6 que xi es distinguible de
xj si i 6= j. Por lo tanto, x0 , x1 , . . . , xn−1 son n cadenas distinguibles dos a dos. Por la
Proposición 2.14.4, cualquier AFD que acepte a L debe tener por lo menos n estados. En
consecuencia, n es el mı́nimo número de estados posible.
Introducción a la Teorı́a de la Computación. Capı́tulo 2 89
Solución. En primer lugar, hay que observar que el lenguaje L es diferente de a∗ b∗ ya que
este último lenguaje 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 , . . .. Después de leer completamente cada una de estas cadenas, M
termina en un determinado estado, pero como hay infinitas potencias de a y solamente un
número finito de estados en M , deben existir dos cadenas diferentes ai y aj , con i 6= j, cuyo
procesamiento completo termina en el mismo estado. Utilizando la función δb (Definición
2.5.2), podemos expresar este hecho como δ(q b 0 , ai ) = δ(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).
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 , . . .. Después de leer completamente
cada una de estas cadenas, M 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 decir,
b 0 , 1i ) = δ(q
δ(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
b 0 , 1j x) para toda cadena x ∈ Σ∗ . Esto implica que para toda
b 0 , 1i x) = δ(q
palabras, δ(q
x ∈ Σ∗ , las cadenas 1i x y 1j x son ambas aceptadas o ambas rechazadas. Se llega a 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.
Utilizando la noción de distinguiblidad entre cadenas introducida en la sección 2.14, el
argumento usado en los dos ejemplos anteriores se puede convertir en un criterio práctico
para demostrar que ciertos lenguajes no son regulares.
2.15.1. Criterio de no regularidad. Sea Σ un alfabeto dado y L un lenguaje sobre Σ.
Si en Σ∗ hay infinitas cadenas L-distinguibles dos a dos, entonces L no es regular.
Demostración. 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. Por hipótesis, existen infinitas cadenas L-distinguibles
dos a dos, u1 , u2 , u3 , . . . . Después de leer completamente cada una de estas cadenas, M
termina en un determinado estado, pero como solamente hay un número finito de estados
Introducción a la Teorı́a de la Computación. Capı́tulo 2 91
δ(q
b 0 , ui x) = δ(
b δ(q
b 0 , ui ), x) = δ(
b δ(q
b 0 , uj ), x) = δ(q
b 0 , uj x).
Esto implica que para toda x ∈ Σ∗ , las cadenas ui x y uj x son ambas aceptadas o ambas
rechazadas, es decir, o bien (ui x ∈ L y uj x ∈ L), o bien (ui x ∈/ L y uj x ∈
/ L). Esto
contradice el hecho de que ui y uj son L-distinguibles.
Según este criterio, para concluir que L no es regular basta exhibir infinitas cadenas en
Σ∗ que sean L-distinguibles dos a dos. No es necesario utilizar explı́citamente autómatas
al invocar el criterio de no regularidad. En la mayorı́a de los casos será suficiente mostrar
que a, a2 , a3 , . . . son infinitas cadenas L-distinguibles dos a dos (en caso de que a ∈ Σ). En
algunos problemas resulta conveniente mostrar que las potencias pares, a2 , a4 , a6 , . . . (o
bien, las potencias impares) son infinitas cadenas L-distinguibles dos a dos. Los siguientes
ejemplos ilustran el uso de esta técnica.
Ejemplo Utilizar el criterio de no regularidad para demostrar que el lenguaje L =
{an bn : n ≥ 0}, sobre Σ = {a, b}, no es regular.
2
Esto quiere decir que el número de aes que hay en aj +2i+1 está estrictamente compren-
dido entre dos cuadrados perfectos consecutivos, a saber, j 2 y (j + i)2 . Por consiguiente,
2
aj +2i+1 ∈
/ L.
Ejercicios de la sección 2.15
LP = {u ∈ Σ∗ : u satisface P} = {u ∈ Σ∗ : P(u)}.
Decimos que el problema (2.16.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 ∈ L(M ) =⇒ u satisface P.
Si u es rechazada por M =⇒ u ∈ / L(M ) =⇒ u no satisface P.
1 1
0
q0 q1
0
Introducción a la Teorı́a de la Computación. Capı́tulo 2 94