Capitulo 3-Teoria de La Computacion

23
Notas de clase para el curso Introducci´ on a la Teor´ ıa de la Computaci´ on II Semestre 2014 Rodrigo De Castro K. Cap´ ıtulo 3 Otras propiedades de los lenguajes regulares 1. Producto cartesiano de aut´omatas deterministas Dados dos aut´ omatas deterministas M 1 = (Σ,Q 1 ,q 1 ,F 1 1 )y M 2 = (Σ,Q 2 ,q 2 ,F 2 2 ) se puede formar un nuevo aut´ omata determinista cuyos estados son todas las parejas de la forma (q i ,q j ), donde q i Q 1 y q j Q 2 . Este nuevo aut´ omata se denomina producto cartesiano de M 1 y M 2 y se denota por M 1 × M 2 . Concretamente, M 1 × M 2 = (Σ,Q 1 × Q 2 , (q 1 ,q 2 ),F,δ ), donde el estado inicial (q 1 ,q 2 ) est´a conformado por los estados iniciales de los dos aut´oma- tas, y la funci´ on de transici´ on δ est´ a dada por δ :(Q 1 × Q 2 ) × Σ -→ Q 1 × Q 2 δ ((q i ,q j ),a) = (δ 1 (q i ,a)2 (q j ,a)). El conjunto F de estados de aceptaci´ on se puede escoger seg´ un la conveniencia de la situaci´ on. En el siguiente teorema se muestra que es posible escoger F adecuadamente para que M 1 × M 2 acepte ya sea L 1 L 2 ´ o L 1 L 2 ´ o L 1 - L 2 . 1.1 Teorema. Sean M 1 = (Σ,Q 1 ,q 1 ,F 1 1 ) y M 2 = (Σ,Q 2 ,q 2 ,F 2 2 ) dos AFD tales que L(M 1 )= L 1 y L(M 2 )= L 2 , y sea M = M 1 × M 2 = (Σ,Q 1 × Q 2 , (q 1 ,q 2 ),F,δ ) el producto cartesiano definido arriba. (i) Si F = {(q i ,q j ): q i F 1 ´ o q j F 2 } entonces L(M 1 × M 2 )= L 1 L 2 . Es decir, para aceptar L 1 L 2 , en el aut´ omata M 1 × M 2 se escogen como estados de aceptaci´ on los pares de estados (q i ,q j ) en los que alguno de los dos es de aceptaci´ on. 1

description

compu

Transcript of Capitulo 3-Teoria de La Computacion

Page 1: Capitulo 3-Teoria de La Computacion

Notas de clase para el cursoIntroduccion a la Teorıa de la Computacion

II Semestre 2014Rodrigo De Castro K.

Capıtulo 3

Otras propiedades de los lenguajes regulares

1. Producto cartesiano de automatas deterministas

Dados dos automatas deterministas M1 = (Σ, Q1, q1, F1, δ1) y M2 = (Σ, Q2, q2, F2, δ2) sepuede formar un nuevo automata determinista cuyos estados son todas las parejas de laforma (qi, qj), donde qi ∈ Q1 y qj ∈ Q2. Este nuevo automata se denomina productocartesiano de M1 y M2 y se denota por M1 ×M2. Concretamente,

M1 ×M2 = (Σ, Q1 ×Q2, (q1, q2), F, δ),

donde el estado inicial (q1, q2) esta conformado por los estados iniciales de los dos automa-tas, y la funcion de transicion δ esta dada por

δ : (Q1 ×Q2)× Σ −→ Q1 ×Q2

δ((qi, qj), a) = (δ1(qi, a), δ2(qj, a)).

El conjunto F de estados de aceptacion se puede escoger segun la conveniencia de lasituacion. En el siguiente teorema se muestra que es posible escoger F adecuadamentepara que M1 ×M2 acepte ya sea L1 ∪ L2 o L1 ∩ L2 o L1 − L2.

1.1 Teorema. Sean M1 = (Σ, Q1, q1, F1, δ1) y M2 = (Σ, Q2, q2, F2, δ2) dos AFD tales queL(M1) = L1 y L(M2) = L2, y sea M = M1 ×M2 = (Σ, Q1 ×Q2, (q1, q2), F, δ) el productocartesiano definido arriba.

(i) Si F = {(qi, qj) : qi ∈ F1 o qj ∈ F2} entonces L(M1×M2) = L1 ∪L2. Es decir, paraaceptar L1 ∪ L2, en el automata M1 ×M2 se escogen como estados de aceptacionlos pares de estados (qi, qj) en los que alguno de los dos es de aceptacion.

1

Page 2: Capitulo 3-Teoria de La Computacion

(ii) Si F = {(qi, qj) : qi ∈ F1 y qj ∈ F2} entonces L(M1×M2) = L1 ∩L2. Es decir, paraaceptar L1 ∩ L2, en el automata M1 ×M2 se escogen como estados de aceptacionlos pares de estados (qi, qj) en los que ambos son estados de aceptacion.

(iii) Si F = {(qi, qj) : qi ∈ F1 y qj /∈ F2} entonces L(M1×M2) = L1−L2. Es decir, paraaceptar L1 − L2, en el automata M1 ×M2 se escogen como estados de aceptacionlos pares de estados (qi, qj) en los que el primero es de aceptacion y el segundo nolo es.

Demostracion. Las conclusiones del teorema se obtienen demostrando primero que ladefinicion de la funcion δ de M = M1 ×M2 se puede extender a cadenas arbitrarias:

δ((qi, qj), w) = (δ1(qi, w), δ2(qj, w)) para toda cadena w ∈ Σ∗, qi ∈ Q1, qj ∈ Q2. (1.1)

Aquı se usan las funciones extendidas de δ, δ1 y δ2, segun la definicion del Capıtulo 2(definicion 2.5.2). La igualdad (1.1) se puede demostrar por induccion sobre w tal comose hace a continuacion. Para w = λ, el resultado es inmediato, y para w = a, la igualdad sereduce a la definicion de la funcion δ de M = M1×M2. Para el paso inductivo, suponemoscomo hipotesis de induccion que (1.1) se cumple para una cadena arbitraria w; se pretendeestablecer la igualdad para la cadena de entrada wa, donde a ∈ Σ. Se tiene

δ((qi, qj), wa) = δ(δ((qi, qj), w), a) (definicion de δ)

= δ((δ1(qi, w), δ2(qj, w)), a) (hipotesis de induccion)

= (δ1(δ1(qi, w), a), δ2(δ2(qj, w), a)) (definicion de δ)

= (δ1(qi, wa), δ2(qj, wa)) (definicion de δ1 y δ2).

Este razonamiento inductivo concluye la demostracion de (1.1).

Procedemos ahora a demostrar las afirmaciones (i), (ii) y (iii) del teorema. Usando laigualdad (1.1) se tiene que, para toda cadena w ∈ Σ∗,

w ∈ L(M)⇐⇒ δ((q1, q2), w) ∈ F ⇐⇒ (δ1(q1, w), δ2(q2, w)) ∈ F.

Por consiguiente, si F = {(qi, qj) : qi ∈ F1 o qj ∈ F2}, entonces para toda cadena w ∈ Σ∗,se tendra

w ∈ L(M) ⇐⇒ (δ1(q1, w), δ2(q2, w)) ∈ F⇐⇒ δ1(q1, w) ∈ F1 ∨ δ2(q2, w) ∈ F2

⇐⇒ w ∈ L(M1) ∨ w ∈ L(M2)⇐⇒ w ∈ L(M1) ∪ L(M2) = L1 ∪ L2.

Esto demuestra (i).

Ahora bien, si F = {(qi, qj) : qi ∈ F1 y qj ∈ F2}, entonces para toda cadena w ∈ Σ∗,se tendra

w ∈ L(M) ⇐⇒ (δ1(q1, w), δ2(q2, w)) ∈ F⇐⇒ δ1(q1, w) ∈ F1 ∧ δ2(q2, w) ∈ F2

⇐⇒ w ∈ L(M1) ∧ w ∈ L(M2)⇐⇒ w ∈ L(M1) ∩ L(M2) = L1 ∩ L2.

2

Page 3: Capitulo 3-Teoria de La Computacion

Esto demuestra (ii).

Finalmente, si F = {(qi, qj) : qi ∈ F1 o qj /∈ F2}, entonces para toda cadena w ∈ Σ∗,se tendra

w ∈ L(M) ⇐⇒ (δ1(q1, w), δ2(q2, w)) ∈ F⇐⇒ δ1(q1, w) ∈ F1 ∧ δ2(q2, w) /∈ F2

⇐⇒ w ∈ L(M1) ∧ w /∈ L(M2)⇐⇒ w ∈ L(M1)− L(M2) = L1 − L2.

Esto demuestra (iii).�� ��Ejemplo Utilizar el Teorema 1.1 para construir un AFD que acepte el lenguaje L detodas las cadenas sobre el alfabeto Σ = {a, b} que tienen un numero par de

aes y un numero par de bes.

Solucion. En un ejercicio del capıtulo anterior se pidio disenar, por ensayo y error, unAFD para aceptar este lenguaje. Ahora podemos proceder sistematicamente siguiendo elmetodo del teorema Teorema 1.1 ya que el lenguaje L se puede escribir como L = L1∩L2

donde L1 es el lenguaje de las cadenas con un numero par de aes y L2 es el lenguaje delas cadenas con un numero par de bes. Esto nos permite utilizar la parte (ii) del teoremaa partir de automatas que acepten a L1 y L2, respectivamente.

AFD M1 que acepta L1 (cadenas con un numero par de aes):

q1 q3

a

a

b b

AFD M2 que acepta L2 (cadenas con un numero par de bes):

q2 q4

b

b

a a

Entonces L = L(M1)∩L(M2) = L1∩L2. El producto cartesiano M1×M2 tiene 4 estados:(q1, q2), (q1, q4), (q3, q2) y (q3, q4); el unico estado de aceptacion es (q1, q2) ya que es el unicopar de estados en el cual ambos estados son de aceptacion. Su funcion de transicion δ seobtiene utilizando la definicion de M1 ×M2.

3

Page 4: Capitulo 3-Teoria de La Computacion

δ((q1, q2), a) = (δ1(q1, a), δ2(q2, a)) = (q3, q2),δ((q1, q2), b) = (δ1(q1, b), δ2(q2, b)) = (q1, q4),δ((q1, q4), a) = (δ1(q1, a), δ2(q4, a)) = (q3, q4),δ((q1, q4), b) = (δ1(q1, b), δ2(q4, b)) = (q1, q2),δ((q3, q2), a) = (δ1(q3, a), δ2(q2, a)) = (q1, q2),δ((q3, q2), b) = (δ1(q3, b), δ2(q2, b)) = (q3, q4),δ((q3, q4), a) = (δ1(q3, a), δ2(q4, a)) = (q1, q4),δ((q3, q4), b) = (δ1(q3, b), δ2(q4, b)) = (q3, q2).

El diagrama de estados del automata ası obtenido es:

(q1, q2) (q1, q4)

(q3, q2) (q3, q4)

b

b

b

b

a a a a

�� ��Ejemplo Utilizar el Teorema 1.1 para construir un AFD que acepte el lenguaje L detodas las cadenas sobre el alfabeto Σ = {a, b} que tienen un numero par de

bes pero que no contienen la subcadena bb.

Este problema se puede resolver de dos maneras ya que el lenguaje L se puede expresar yasea como una diferencia o como una interseccion de lenguajes. Consideremos los lenguajes:

L1 = lenguaje de todas las cadenas que tienen un nuumero par de bes.

L2 = lenguaje de todas las cadenas que contienen la subcadena bb.

L3 = lenguaje de todas las cadenas que no contienen la subcadena bb.

Entonces L = L1 − L2 y tambien L = L1 ∩ L3.

Solucion 1. Utilizamos la parte (iii) del Teorema 1.1 expresando L como L = L1 − L2.Para ello encontramos facilmente un AFD M1 que acepta el lenguaje L1:

q1 q3

b

b

a a

4

Page 5: Capitulo 3-Teoria de La Computacion

Y un AFD M2 que acepta L2:

q2 q4 q5b

b

a

a a, b

Entonces L = L(M1)−L(M2) = L1−L2. El producto cartesiano M1×M2 tiene 6 estados:(q1, q2), (q1, q4), (q1, q5), (q3, q2), (q3, q4) y (q3, q5). Los estados de aceptacion son (q1, q2) y(q1, q4) ya que q1 es de aceptacion en M1 mientras que q2 y q4 no son de aceptacion en M2.Utilizando la definicion de la funcion de transicion δ de M1 ×M2 se obtiene el siguienteAFD:

(q1, q2)

(q1, q4) (q3, q2) (q3, q4)

(q3, q5) (q1, q5)

ba

b a

bbb

b

a

a

a a

Se observa que los estados (q3, q5) y (q1, q5) son “estados limbo” que no conducen a laaceptacion. El automata simplificado se reduce al mostrado en el siguiente diagrama.

5

Page 6: Capitulo 3-Teoria de La Computacion

(q1, q2)

(q1, q4) (q3, q2) (q3, q4)

ba

b a

a

a

Solucion 2. Utilizamos la parte (ii) del Teorema 1.1 expresando L como L = L1∩L3. Paraobtener un AFD que acepte L3 basta intercambiar los estados de aceptacion con los deno-aceptacion en el AFD M2 (mostrado en la pagina anterior). Obtenemos ası el siguienteAFD M3:

q2 q4 q5b

b

a

a a, b

Al formar el producto cartesiano M1 ×M3 obtenemos exactamente el mismo AFD conseis estados que aparece en la pagina anterior. Los estados de aceptacion son los pares(q1, q2) y (q1, q4) formados por los estados de aceptacion de M1 y M3.�� ��Ejercicios de la seccion 1

À Utilizar el Teorema 1.1 para construir AFD que acepten los siguientes los siguienteslenguajes sobre el alfabeto {0, 1}:

(i) El lenguaje L de todas las cadenas que tienen longitud par o que terminan en10.

(ii) El lenguaje L de todas las cadenas que tienen longitud impar y que terminanen 01.

(iii) El lenguaje L de todas las cadenas que tienen longitud impar y que no terminanen 11.

Á Utilizar el Teorema 1.1 para construir AFD que acepten los siguientes los siguienteslenguajes sobre el alfabeto {a, b, c}:

(i) El lenguaje L de todas las cadenas que tienen longitud par y terminan en a.

6

Page 7: Capitulo 3-Teoria de La Computacion

(ii) El lenguaje L de todas las cadenas que tienen longitud par o que tienen unnumero impar de c’s.

(iii) El lenguaje L de todas las cadenas que tienen longitud impar y que tienen unnumero par de ces.

(iv) El lenguaje L de todas las cadenas que tienen longitud impar y que no terminanen c.

(v) El lenguaje L de todas las cadenas de longitud impar que tengan exactamentedos aes.

 En el contexto del Teorema 1.1, dados dos AFD, M1 = (Σ, Q1, q1, F1, δ1) yM2 = (Σ, Q2, q2, F2, δ2) tales que L(M1) = L1 y L(M2) = L2, escoger adecua-damente el conjunto de estados de aceptacion F para que el producto cartesianoM1 ×M2 = (Σ, Q1 × Q2, (q1, q2), F, δ) acepte la diferencia simetrica L1 � L2. Re-cuerdese que la diferencia simetrica se define como

L1 � L2 = (L1 ∪ L2)− (L1 ∩ L2) = (L1 − L2) ∪ (L2 − L1).

2. Propiedades de clausura de los lenguajes regulares

Las propiedades de clausura afirman que a partir de lenguajes regulares se pueden obtenerotros lenguajes regulares por medio de ciertas operaciones entre lenguajes. Es decir, laregularidad es preservada por ciertas operaciones entre lenguajes; en tales casos se diceque los lenguajes regulares son cerrados bajo las operaciones.

Inicialmente presentamos las propiedades de clausura para automatas. El siguienteteorema resume los procedimientos algorıtmicos que han sido presentados en seccionesanteriores para la construccion de nuevos automatas finitos.

2.1 Teorema. Sean M , M1 y M2 automatas finitos (ya sean AFD o AFN o AFN-λ)tales que L(M) = L, L(M1) = L1, L(M2) = L2. Se pueden construir automatas finitosque acepten los siguientes lenguajes:

(1) L1 ∪ L2. (5) L = Σ∗ − L.(2) L1L2. (6) L1 ∩ L2.(3) L∗. (7) L1 − L2.(4) L+. (8) L1 � L2.

Demostracion. La construccion de automatas que acepten L1 ∪ L2, L1L2, L∗ y L+ se

presento en la demostracion de la parte I del Teorema de Kleene.

Para construir un automata que acepte L, se construye primero un AFD que acepteL y se intercambian luego los estados de aceptacion con los de no aceptacion.

Para construir automatas que acepten L1 ∩ L2 y L1 − L2, basta formar el productocartesiano de dos AFDs que acepten a L1 y L2, y escoger adecuadamente los estados de

7

Page 8: Capitulo 3-Teoria de La Computacion

aceptacion, tal como se indico en el Teorema 1.1. Tambien se puede usar el productocartesiano para aceptar L1 ∪ L2.

Finalmente, los procedimientos de construccion de (1), (6) y (7) se pueden combinarpara obtener un automata que acepte el lenguaje L1 � L2.

Puesto que, segun el Teorema de Kleene, los lenguajes regulares son precisamente loslenguajes aceptados por automatas finitos, el Teorema 2.1 se puede presentar en terminosde lenguajes regulares.

2.2 Teorema. Si L, L1 y L2 son lenguajes regulares sobre un alfabeto Σ, tambien sonregulares los siguientes lenguajes:

(1) L1 ∪ L2. (5) L = Σ∗ − L.(2) L1L2. (6) L1 ∩ L2.(3) L∗. (7) L1 − L2.(4) L+. (8) L1 � L2.

3. Cadenas distinguibles y lenguajes no regulares

3.1 Definicion. Sea Σ un alfabeto dado y L un lenguaje sobre Σ (i.e., L ⊆ Σ∗). Doscadenas u, v ∈ Σ∗ son distinguibles con respecto a L (o L-distinguibles) si

(∃x ∈ Σ∗)[(ux ∈ L y vx /∈ L) o (ux /∈ L y vx ∈ L)

]. (3.1)

Es decir, u y v son L-distinguibles si existe x en Σ∗ tal que una de las cadenas ux o vxesta en L y la otra no.

Si dos cadenas u, v no son distinguibles con respecto a L, se dice que son indistin-guibles con respecto a L o L-indistiguibles. Afirmar que u y v son L-indistinguiblesequivale a negar (3.1); ası que u, v ∈ Σ∗ son L-indistinguibles si

(∀x ∈ Σ∗)[(ux ∈ L⇐⇒ vx ∈ L)

].

�� ��Ejemplo Sea Σ = {0, 1} y L el lenguaje de las cadenas que terminan en 10. Las cadenasu = 01 y v = 00 son L-distinguibles ya que 010 ∈ L pero 001 /∈ L. En otros

terminos, ux ∈ L pero vx /∈ L cuando x = 0.Pero las cadenas 0 y 00 son indistiguibles con respecto a L porque si 0x ∈ L, tambien

se tendra 00x ∈ L.

3.2 Proposicion. Sea M = (Σ, Q, q0, F, δ) un AFD tal que L(M) = L. Si u, v ∈ Σ∗ son

L-distinguibles entonces δ(q0, u) 6= δ(q0, v).

Demostracion. Como u y v son L-distinguibles, existe una cadena x ∈ Σ∗ tal que unade las cadenas ux o vx esta en L y la otra no. Puesto que L(M) = L, se tiene ux

o vx es aceptada por M y la otra no. Entonces, uno de los estados δ(q0, ux) o δ(q0, vx)

8

Page 9: Capitulo 3-Teoria de La Computacion

es de aceptacion y el otro no. Por consiguiente, δ(q0, ux) 6= δ(q0, vx). Esto implica que

δ(q0, u) 6= δ(q0, v) ya que si δ(q0, u) = δ(q0, v) se tendrıa

δ(q0, ux) = δ(δ(q0, u), x) = δ(δ(q0, v), x) = δ(q0, vx),

lo cual contradice el hecho de que δ(q0, ux) 6= δ(q0, vx).El enunciado de la Proposicion 3.2 lo podemos expresar diciendo que si u y v son

L-distinguibles, cualquier AFD M que acepte a L, “distingue” las cadenas u y v; o sea,para M no es lo mismo procesar a u que procesar a v.

3.3 Teorema. Sea Σ un alfabeto dado y L ⊆ Σ∗. Si hay n cadenas u1, u2, . . . , un enΣ∗ que L-distinguibles dos a dos (es decir, ui y uj son L-distinguibles para todo i 6= j,i, j = 1, . . . , n), entonces cualquier AFD M que acepte a L debe tener por lo menos nestados.

Demostracion. Sea M = (Σ, Q, q0, F, δ) un AFD que acepte a L. Por la Proposicion 3.2,

δ(q0, ui) 6= δ(q0, uj) para todo i 6= j. Entonces los n estados

δ(q0, u1), δ(q0, u2), . . . , δ(q0, un)

son diferentes entre sı (diferentes dos a dos) y, por lo tanto, M tiene por lo menos nestados.

3.4 Corolario. Sea Σ un alfabeto dado y L ⊆ Σ∗. Si L es regular entonces en Σ∗ existea lo sumo un numero finito de cadenas L-distinguibles dos a dos.

Demostracion. Sea M un AFD tal que L(M) = L. Si M tiene n estados, segun el Teorema3.3, hay a lo sumo n cadenas L-distinguibles dos a dos (ya que si hay n + 1 cadenas L-distinguibles, M tendrıa al menos n+ 1 estados).

3.5 Corolario. (Criterio de no regularidad). Sea Σ un alfabeto dado y L ⊆ Σ∗. Sien Σ∗ hay infinitas cadenas L-distinguibles dos a dos, entonces L no es regular.

Demostracion. El enunciado es la implicacion contra-recıproca del Corolario 3.4.

Segun este criterio, para concluir que L no es regular basta exhibir infinitas cadenas enΣ∗ que sean L-distinguibles dos a dos. En la mayorıa de los casos sera suficiente mostrarque a, a2, a3, . . . son infinitas cadenas L-distinguibles dos a dos (en el caso en el que a ∈ Σ).En algunos problemas resulta conveniente mostrar que las potencias pares, a2, a4, a6, . . .son infinitas cadenas L-distinguibles dos a dos. Los siguientes ejemplos ilustran el uso deesta tecnica.�� ��Ejemplo Utilizar el criterio de no regularidad para demostrar que el lenguaje L =

{anbn : n ≥ 0}, sobre Σ = {a, b}, no es regular.

Solucion. Vamos a comprobar que a, a2, a3, . . . son infinitas cadenas L-distinguibles dos ados. Sean i, j ≥ 1, con i 6= j. Queremos mostrar que ai y aj son L-distinguibles, para lo

9

Page 10: Capitulo 3-Teoria de La Computacion

cual hay que encontrar una cadena x tal que aix ∈ L pero ajx /∈ L. La escogencia de x esobvia: x = bi. Se tiene que aix = aibi ∈ L pero ajx = ajbi /∈ L. Esto muestra que ai y aj

son L-distinguibles si i 6= j y, por el Corolario 3.5, L no puede ser regular.�� ��Ejemplo Utilizar el criterio de no regularidad para demostrar que el lenguaje de lospalındromes sobre Σ = {a, b} no es un lenguaje regular. Recuerdese que un

palındrome es una cadena que coincide con su reflexion, o sea, una w tal que w = wR.

Solucion. Vamos a comprobar que a, a2, a3, . . . son infinitas cadenas L-distinguibles dos ados. Sean i, j ≥ 1, con i 6= j. Queremos mostrar que ai y aj son L-distinguibles, para locual hay que encontrar una cadena x tal que aix ∈ L pero ajx /∈ L. Escogemos x = bai.Se tendra entonces que aix = aibai ∈ L pero ajx = ajbai /∈ L. Esto muestra que ai y aj

son L-distinguibles si i 6= j y, por el Corolario 3.5, L no puede ser regular.�� ��Ejemplo Utilizar el criterio de no regularidad para demostrar que el lenguaje L ={an

2: n ≥ 1

}no es regular. L esta formado por cadenas de aes cuya longitud

es un cuadrado perfecto, sobre el alfabeto Σ = {a}.Solucion. Vamos a comprobar que las cadenas de L, o sea, a, a4, a9, a16, a25, . . ., son L-distinguibles dos a dos. Sean i, j ≥ 1, con i < j; queremos mostrar que ai

2y aj

2son

L-distinguibles. Si escogemos x = a2i+1, se tendra que ai2x = ai

2a2i+1 = ai

2+2i+1 =a(i+1)2 ∈ L. De otro lado, aj

2x = aj

2a2i+1 = aj

2+2i+1 /∈ L ya que

j2 < j2 + 2i+ 1 < j2 + 2j + 1 = (j + 1)2.

Esto quiere decir que el numero de aes que hay en aj2+2i+1 esta estrictamente compren-

dido entre dos cuadrados perfectos consecutivos, a saber, j2 y (j + 1)2. Por consiguiente,aj

2+2i+1 /∈ L.

Las propiedades de clausura presentadas en la seccion 2 tambien son utiles para con-cluir, razonando por contradiccion, que ciertos lenguajes no son regulares. Esto se ilustraen los siguientes ejemplos.�� ��Ejemplo L = {anbm : n,m ≥ 0, n 6= m} no es regular. Si lo fuera, a∗b∗ − L tambien

lo serıa, por el Teorema 2.2 (7). Pero a∗b∗−L = {anbn : n ≥ 0} que no es unlenguaje regular, segun se demostro en la pagina anterior.�� ��Ejemplo El lenguaje L = {w ∈ Σ∗ : |w| es un cuadrado perfecto}, sobre el alfabeto

Σ = {a, b}, no es regular. Si lo fuera, a∗ ∩ L tambien lo serıa, por el Teo-rema 2.2 (6). Pero a∗ ∩ L =

{an

2: n ≥ 1

}que no es un lenguaje regular, segun se

demostro en la pagina anterior.

�� ��Ejercicios de la seccion 3

À Utilizar el criterio de no regularidad (Corolario 3.5) para demostrar que los siguienteslenguajes no son regulares:

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

10

Page 11: Capitulo 3-Teoria de La Computacion

(ii) L = {a2nbn : n ≥ 0}, sobre Σ = {a, b}.(iii) L = {ambn : m ≥ n ≥ 0}, sobre Σ = {a, b}.(iv) L = {0n10n : n ≥ 1}, sobre Σ = {0, 1}.(v) L = {0m1n0m : m,n ≥ 1}, sobre Σ = {0, 1}.

(vi) L = {1n01n0 : n ≥ 1}, sobre Σ = {0, 1}.(vii) L = {01n01n : n ≥ 1}, sobre Σ = {0, 1}.

(viii) L = {ambncm+n : m,n ≥ 1}, sobre Σ = {a, b, c}.(ix) L = {ww : w ∈ Σ∗}, sobre Σ = {a, b}.(x) L = {wwR : w ∈ Σ∗}, sobre Σ = {a, b}.

(xi) L = {a2n : n ≥ 1} = {a2, a4, a8, a16, . . .}, sobre Σ = {a}.

Á Utilizar el criterio de no regularidad (Corolario 3.5) para demostrar que los siguienteslenguajes sobre el alfabeto Σ = {a, b} no son regulares:

(i) L = {w : #a(w) = #b(w)}.(ii) L = {w : #a(w) > #b(w)}.

(iii) L = {w : #a(w) < 2#b(w)}.

 Utilizar el criterio de no regularidad (Corolario 3.5) para demostrar que el lenguaje

L = {an : n es un numero primo},

sobre Σ = {a}, no es regular.

Ayuda: usar el Teorema de Legendre segun el cual, si p y q son primos, entonces laprogresion aritmetica {p+ kq : k ≥ 0} contiene infinitos primos.

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

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

Å Demostrar o refutar las siguientes afirmaciones:

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

(ii) Si el lenguaje L1 ∪ L2 es regular, tambien lo son L1 y L2.

(iii) Si los lenguajes L1 y L2 no son regulares, el lenguaje L1 ∩ L2 tampoco puedeser regular.

(iv) Si el lenguaje L∗ es regular, tambien 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 solo si en cualquier expresion regular deL aparece por lo menos una ∗.

11

Page 12: Capitulo 3-Teoria de La Computacion

4. Minimizacion de automatas

En la presente seccion presentaremos un procedimiento general para encontrar un automa-ta con el menor numero de estados posible, equivalente a un AFD dado. Se trata de unprocedimiento algorıtmico en el que se identifican “estados equivalentes”, en un senti-do que se precisara detalladamente, lo cual permite “colapsar estados” en el automataoriginal y de esta manera reducir el numero de estados hasta el mınimo posible.

4.1 Definicion. Dado un AFD M = (Σ, Q, q0, F, δ) se define sobre el conjunto de estadosQ la relacion p ≈ q:

p ≈ q si y solo si (∀w ∈ Σ∗)[δ(p, w) ∈ F ⇐⇒ δ(q, w) ∈ F ].

Es facil comprobar que la relacion ≈ es reflexiva, simetrica y transitiva; es decir, paratodos los estados p, q, r de Q se cumple:

Reflexividad. p ≈ p.

Simetrıa. Si p ≈ q entonces q ≈ p.

Transitividad. Si p ≈ q y q ≈ r entonces p ≈ r.

Por lo tanto, ≈ es una relacion de equivalencia sobre el conjunto de estados Q. Si p ≈ qse dice que p y q son estados equivalentes. La clase de equivalencia de un estado p sedenotara con [p]; es decir,

[p] := {q ∈ Q : p ≈ q}.

Se define el automata cociente, M/≈, identificando entre sı los estados equivalentessegun la relacion ≈. Formalmente, M/≈ = (Σ, Q′, q′0, F

′, δ′) donde:

Q′ = {[p] : p ∈ Q},

q′0 = [q0],

F ′ = {[p] : p ∈ F},

δ′([p], a) = [δ(p, a)], para todo a ∈ Σ.

Hay que verificar que tanto F ′ como la funcion de transicion δ′ estan bien definidas, esdecir, que no dependen del representante escogido en la clase de equivalencia. Esto se haceen la siguiente proposicion.

4.2 Proposicion.

(i) δ′ esta bien definida, es decir, si [p] = [q] (o sea, si p ≈ q) entonces δ(p, a) ≈ δ(q, a),para todo a ∈ Σ.

(ii) F ′ esta bien definido, es decir, si q ∈ F y p ≈ q entonces p ∈ F .

12

Page 13: Capitulo 3-Teoria de La Computacion

(iii) p ∈ F ⇐⇒ [p] ∈ F ′.

(iv) δ′([p], w) = [δ(p, w)] para toda cadena w ∈ Σ∗.

Demostracion.

(i) Si p ≈ q, entonces

(∀w ∈ Σ∗)(∀a ∈ Σ)[δ(p, aw) ∈ F ⇐⇒ δ(q, aw) ∈ F ],

de donde(∀w ∈ Σ∗)[δ(δ(p, a), w) ∈ F ⇐⇒ δ(δ(q, a), w) ∈ F ],

para todo a ∈ Σ. Por la definicion de la relacion ≈, se concluye que δ(p, a) ≈ δ(q, a).

(ii) Tomando w = λ en la definicion de p ≈ q, se tiene que p = δ(p, λ) ∈ F si y solo si

q = δ(q, λ) ∈ F . Puesto que q ∈ F , se concluye que p ∈ F .

(iii) La direccion (⇒) se sigue de la definicion de F ′. Para demostrar la otra direccion,sea [p] ∈ F ′. Entonces [p] = [q], con q ∈ F ; de donde p ≈ q. De (ii) se sigue quep ∈ F .

(iv) Se demuestra por induccion sobre w.

Usando las propiedades de la Proposicion 4.2 se puede deducir que M y M/≈ aceptanel mismo lenguaje, tal como se demuestra en el siguiente teorema.

4.3 Teorema. Los automatas M y M/≈ aceptan el mismo lenguaje, es decir, L(M) =L(M/≈).

Demostracion.

w ∈ L(M/≈)⇐⇒ δ′([q0], w) ∈ F ′

⇐⇒ [δ(q0, w)] ∈ F ′ (por la proposicion 4.2 (iv))

⇐⇒ δ(q0, w) ∈ F (por la proposicion 4.2 (iii))

⇐⇒ w ∈ L(M). �

Dado un AFD M , el automata cociente M/≈ resulta ser un automata con el mınimonumero de estados posible para aceptar L(M). Para demostrarlo es necesario relacionarla construccion de M/≈ con los conceptos presentados en la seccion 3. Recordemos que,dados Σ, L ⊆ Σ∗ y dos cadenas u, v ∈ Σ∗, se dice que u L-indistinguibles de v si

(∀x ∈ Σ∗)[(ux ∈ L⇐⇒ vx ∈ L)

].

Escribiremos u IL v para representar la relacion “u es L-indistinguible de v”. La relacion ILresulta ser una relacion de equivalencia sobre Σ∗ ya que es reflexiva, simetrica y transitiva.En efecto, es facil verificar para todas las cadenas u, v, w ∈ Σ∗ se cumple

13

Page 14: Capitulo 3-Teoria de La Computacion

Reflexividad. u IL u.

Simetrıa. Si u IL v entonces v IL u.

Transitividad. Si u IL v y v ILw entonces u ILw.

Cada clase de equivalencia contiene cadenas que son L-indistinguibles entre sı, mientrasque dos cadenas pertenecientes a clases de equivalencia diferentes son L-distinguibles entresı. Segun el Corolario 3.4, si L es regular existe a lo sumo un numero finito de cadenasL-distinguibles dos a dos. Esto quiere decir que si L es regular, el conjunto cociente Σ∗/ILformado por todas las clases de equivalencia inducidas por la relacion IL es finito. Se hademostrado ası la siguiente proposicion.

4.4 Proposicion. Si L es regular, la relacion de indistinguibilidad IL tiene ındice finito;es decir, el conjunto cociente Σ∗/IL es finito.

La siguiente proposicion establece la conexion entre las dos relaciones de equivalenciadefinidas en el presente capıtulo: la relacion p ≈ q entre los estados de un AFD y larelacion u IL v entre cadenas, con respecto a un lenguaje dado L.

4.5 Proposicion. Sea M = (Σ, Q, q0, F, δ) un AFD tal que L(M) = L. Sean u, v ∈ Σ∗

dos cadenas tales que δ(q0, u) = p y δ(q0, v) = q. Entonces

p ≈ q ⇐⇒ u IL v. (4.1)

En consecuencia,p 6≈ q ⇐⇒ u y v son L-distinguibles. (4.2)

Demostracion.

p ≈ q significa (∀w ∈ Σ∗)[δ(p, w) ∈ F ⇐⇒ δ(q, w) ∈ F ]. (4.3)

u IL v significa (∀w ∈ Σ∗)[(uw ∈ L⇐⇒ vw ∈ L)

]. (4.4)

Puesto que δ(q0, u) = p y δ(q0, v) = q, para toda cadena w ∈ Σ∗ se tiene que

δ(p, w) = δ(δ(q0, u), w) = δ(q0, uw), (4.5)

δ(q, w) = δ(δ(q0, v), w) = δ(q0, vw). (4.6)

Demostraremos primero la direccion (=⇒) de (4.1). Sea w ∈ Σ∗ una cadena cualquiera;se tiene

uw ∈ L⇐⇒ uw ∈ L(M)⇐⇒ δ(q0, uw) ∈ F⇐⇒ δ(p, w) ∈ F (por 4.5)

⇐⇒ δ(q, w) ∈ F (por 4.3)

⇐⇒ δ(q0, vw) ∈ F (por 4.6)

⇐⇒ vw ∈ L(M)⇐⇒ vw ∈ L.

14

Page 15: Capitulo 3-Teoria de La Computacion

Para demostrar la direccion (⇐=) de (4.1) consideramos una cadena arbitraria w ∈ Σ∗.Se tiene que

δ(p, w) ∈ F ⇐⇒ δ(q0, uw) ∈ F (por 4.5)

⇐⇒ uw ∈ L(M) = L

⇐⇒ vw ∈ L (por 4.4)

⇐⇒ δ(q0, vw) ∈ F⇐⇒ δ(q, w) ∈ F (por 4.6). �

Para la demostracion del siguiente teorema se requiere que en un AFD dado todoslos estados sean accesibles desde el estado inicial. Un estado q es accesible si existe unacadena de entrada w tal que δ(q0, w) = q. Un estado inaccesible q es completamenteinutil ya que la unidad de control del automata nunca ingresara al estado q al iniciar elprocesamiento de una cadena cualquiera desde el estado inicial q0. Los estados inaccesiblesse pueden encontrar facilmente haciendo una busqueda por profundidad en el diagramade estados y luego se deben eliminar.

4.6 Teorema. Sea M un AFD cuyos estados son todos accesibles. M/≈ es un automatadeterminista equivalente a M , con el mınimo numero de estados posible para aceptar ellenguaje L(M).

Demostracion. Sea M el AFD M = (Σ, Q, q0, F, δ). Los estados del automata cociente

(Σ, Q′, q′0, F′, δ′) son todos accesibles. En efecto, dado q ∈ Q, existe w tal que δ(q0, w) = q

ya que q es accesible en M . Se sigue que δ′([q0], w) = [δ(q0, w)] = [q] y, por lo tanto [q] esaccesible.

Supongase ahora que M/≈ tiene n estados diferentes, [q0], [q1], . . . , [qn−1], formadospor clases de equivalencia del automata M . Como los estados q0, q1, . . . , qn−1 de M sonaccesibles, existen cadenas x0, x1, . . . , xn−1 tales que δ(q0, x0) = q0, δ(q0, x1) = q1, . . . ,

δ(q0, xn−1) = qn−1. Puesto que pi 6≈ pj si i 6= j, se sigue de (4.2) que xi es distinguiblede xj si i 6= j. Por lo tanto, x0, x1, . . . , xn−1 son n cadenas distinguibles dos a dos. Porel Teorema 3.3, cualquier AFD que acepte a L debe tener por lo menos n estados. Enconsecuencia, n es el mınimo numero de estados posible. �

Dado un AFD M , se dispone de un algoritmo para encontrar el automata cocienteM/≈, y se le conoce como algoritmo de minimizacion por llenado de tabla. Es muy im-portante tener presente que para aplicar este algoritmo se requiere que todos los estadosde M dado sean accesibles. Ademas, siendo un automata determinista, M debe ser com-pleto, es decir, para cada estado q y cada sımbolo a ∈ Σ, la transicion δ(q, a) debe estardefinida. Por consiguiente, en el diagrama de estados de M se deben mostrar todos losestados, incluyendo los llamados “estados limbo”.

El algoritmo se ejecuta llenando una tabla que muestra todos los pares de estados{p, q}; el proposito es determinar cuales son equivalentes y cuales no. Puesto que en elpar {p, q} no importa el orden de los estados, basta trabajar en una tabla de formatotriangular como la siguiente:

15

Page 16: Capitulo 3-Teoria de La Computacion

q0q1

q2... qn−2

· · · qn−1

· · · qn

En cada iteracion la tabla se recorre por columnas, q0, q1, . . . , qn. La casilla {p, q} es

marcada por el algoritmo de minimizacion si y solo si existe w ∈ Σ∗ tal que δ(q, w) ∈ Fy δ(q, w) /∈ F , o viceversa, es decir, si y solo si p 6≈ q. Por consiguiente, las casillas nomarcadas al finalizar el algoritmo representan estados equivalentes.

Si en la definicion de la relacion ≈ se toma w = λ, se deduce que si p ≈ q, entoncesδ(p, λ) ∈ F ⇐⇒ δ(q, λ) ∈ F , o sea, p ∈ F ⇐⇒ q ∈ F . Esto implica que si p ≈ q, entoncesambos estados son de aceptacion o ninguno de los dos lo es. De manera que si p es estadode aceptacion y q no lo es (o viceversa), se tendra p 6≈ q. Esta es la razon por la cualel algoritmo de minimizacion comienza marcando con 1 las casillas {p, q} para las cualesp ∈ F y q /∈ F (o viceversa).

Algoritmo por llenado de tabla para determinar

la equivalencia de estados de un AFD

ENTRADA:AFD M = (Σ, Q, q0, F, δ) completo (incluyendo estados limbo) cuyosestados son todos accesibles y tabla triangular que muestra todos lospares {p, q} de estados p, q ∈ Q.

INICIALIZAR:

i := 1. Se marca con X la casilla {p, q} si p ∈ F y q /∈ F (o viceversa).

REPETIR:i := i + 1. Para cada casilla no marcada {p, q} y cada a ∈ Σ, hallar{δ(p, a), δ(q, a)}. Si para algun a ∈ Σ, la casilla {δ(p, a), δ(q, a)} ha sidomarcada previamente, entonces se marca la casilla {p, q} con X.

HASTA:

No se marcan mas casillas en la tabla.

SALIDA:Si la casilla {p, q} esta marcada, entonces p 6≈ q. Si la casilla {p, q} noesta marcada, entonces p ≈ q.

�� ��Ejemplo Aplicar el algoritmo de minimizacion para encontrar un AFD con el menornumero de estados posible, equivalente al siguiente AFD, cuyo alfabeto de

entrada es {a}.

16

Page 17: Capitulo 3-Teoria de La Computacion

q0

q1

q2

q3

q4

q5

a

a a

aa

a

Solucion. Primero marcamos con X las casillas {p, q} para las cuales p es un estado deaceptacion y q no lo es, o viceversa:

q0X q1

X q2X q3

X X X q4X X q5

Luego hacemos i := 2 y examinamos las casillas aun no marcadas, teniendo en cuentalas transiciones posibles. La informacion necesaria la podemos presentar de la siguientemanera:

{q0, q2}a−−→ {q1, q3} {q2, q3}

a−−→ {q3, q4}{q0, q3}

a−−→ {q1, q4} {q2, q5}a−−→ {q3, q0}

{q0, q5}a−−→ {q1, q0} {q3, q5}

a−−→ {q4, q0}{q1, q4}

a−−→ {q2, q5}

Ası por ejemplo, {q0, q2}a−−→ {q1, q3} significa que δ(q0, a) = q1 y δ(q2, a) = q3. Como el

par {q1, q3} ha sido marcado, la casilla {q0, q3} sera marcada con X. Prosiguiendo de estaforma, al terminar la segunda iteracion la tabla adquiere la siguiente aspecto:

q0X q1X X q2

X X q3X X X q4X X X X q5

En la tercera iteracion ya no se pueden marcar mas casillas y el algoritmo termina. Lascasillas vacıas representan estados equivalentes; ası que q0 ≈ q3, q1 ≈ q4 y q2 ≈ q5.

17

Page 18: Capitulo 3-Teoria de La Computacion

El automata cociente M/≈ tiene entonces tres estados: {q0, q3}, {q1, q4} y {q2, q5}; eldiagrama de estados obtenido se exhibe en la siguiente pagina. El lenguaje aceptado poreste automata es:

{a, a4, a7, a10, . . .} = {a3i+1 : i ≥ 0} = {ai : i ≡ 1 mod 3}.

{q0, q3} {q1, q4}

{q2, q5}

a a

a

�� ��Ejemplo Aplicar el algoritmo de minimizacion para encontrar un AFD con el menornumero de estados posible, equivalente al siguiente AFD.

q0

q1

q2

q3

q4

q5

b

a

a

a

b

b

a

b a

b

ab

Se observa primero que el estado q5 no es accesible y, por consiguiente, es inutil. Aleliminarlo obtenemos el automata:

18

Page 19: Capitulo 3-Teoria de La Computacion

q0

q1

q2

q3

q4

b

a

a

a

b

b a

b

ab

Al marcar con X las casillas {p, q} para las cuales p es un estado de aceptacion y q no loes, o viceversa, obtenemos la tabla:

q0q1

q2q3

X X X X q4

Luego hacemos i := 2 y examinamos las casillas aun no marcadas teniendo en cuenta lastransiciones posibles, con cada sımbolo del alfabeto de entrada. Las transiciones requeridasson las siguientes:

{q0, q1}a−−→ {q2, q4} {q0, q3}

a−−→ {q2, q4} {q1, q3}a−−→ {q4, q4}

{q0, q1}b−→ {q1, q1} {q0, q3}

b−→ {q1, q1} {q1, q3}b−→ {q1, q1}

{q0, q2}a−−→ {q2, q4} {q1, q2}

a−−→ {q4, q4} {q2, q3}a−−→ {q4, q4}

{q0, q2}b−→ {q1, q2} {q1, q2}

b−→ {q1, q2} {q2, q3}b−→ {q2, q1}

Al terminar la segunda iteracion obtenemos la tabla:

q0X q1X q2X q3X X X X q4

En la tercera iteracion ya no se marcan mas casillas y el algoritmo termina. Se deduce quelos tres estados q1, q2 y q3 son equivalentes entre sı. El automata cociente posee entoncestres estados, a saber, {q0}, {q1, q2, q3} y {q4}. Su diagrama de transiciones es:

19

Page 20: Capitulo 3-Teoria de La Computacion

{q0} {q1, q2, q3}

{q4}

b a

b

a

a, b

�� ��Ejemplo Sea Σ = {a, b}. Demostrar que el lenguaje L de todas las cadenas que tienenun numero par de aes y un numero par de bes no puede ser aceptado por un

AFD con menos de cuatro estados.

Ya conocemos un AFD para aceptar este lenguaje:

q0 q1

q2 q3

a

a

a

a

b b b b

El problema se reduce a minimizar este AFD con el objeto de determinar si es o noposible construir uno equivalente con menos de cuatro estados. Al aplicar el algoritmo deminimizacion tenemos inicialmente la siguientes marcas sobre la tabla:

q0X q1X q2X q3

Usando las transiciones

{q1, q2}a−−→ {q0, q3} {q1, q3}

a−−→ {q0, q3} {q2, q3}b−→ {q0, q1}

20

Page 21: Capitulo 3-Teoria de La Computacion

llegamos a la tabla

q0X q1X X q2X X X q3

en la cual todas las casillas han sido marcadas. Esto quiere decir que no hay pares deestados diferentes que sean equivalentes entre sı, o sea, un estado es solo equivalente ası mismo. Por lo tanto, el automata no se puede minimizar mas y no es posible aceptar ellenguaje L con menos de cuatro estados.�� ��Ejercicios de la seccion 4

À Minimizar los siguientes AFD, es decir, encontrar automatas deterministas con elmınimo numero de estados posible, equivalentes a los automatas dados. Algunos delos automatas se han presentado en forma reducida, es decir, se han omitido los“estados limbo”. Sin embargo, el algoritmo de minimizacion require que el AFD seacompleto: para cada estado q y cada sımbolo a ∈ Σ, la transicion δ(q, a) debe estardefinida.

(1)

q0 q1

q2

q3 q4 q5

q6

a

abaa, b

bba

a

b

b

a

b

(2)

q0

q1

q2

q3

q4

q5

a

b

a

b

b

a

b

b

21

Page 22: Capitulo 3-Teoria de La Computacion

(3)

q0 q1 q2 q3

q4 q5 q6 q7

b

a

b

a

a

ba

a b

b

b

b

a a

(4)

q0 q1

q2

q3

q4

q5

q6

q70

1

0

0

0

1

1

0

1

0

1

0

0

1

1

(5)

q0 q1 q2

q3

q4 q5 q6

a

ca

c

a

ca

b

a

b

ba

c

c

b bc

22

Page 23: Capitulo 3-Teoria de La Computacion

Á Sea Σ = {a, b}. Demostrar que el lenguaje L = a+b∗a no puede ser aceptado por unAFD con menos de seis estados (contando el estado limbo).

 Sea Σ = {a, b}. Demostrar que el lenguaje L = a∗b∪ b∗a no puede ser aceptado porun AFD con menos de siete estados (contando el estado limbo).

à Sea Σ = {0, 1} y L el lenguaje

L = {w ∈ Σ∗ : |w| ≥ 3 y el tercer sımbolo de w, de derecha a izquierda, es 1}.

Demostrar que L no puede ser aceptado por un AFD con menos de ocho estados(contando el estado limbo).

23