Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este...

228
Teor´ ıa de la Computaci ´ on Lenguajes, aut´ omatas, gram´ aticas Rodrigo De Castro Korgi Ph.D. en Matem ´ aticas University of Illinois, U.S.A. Departamento de Matem ´ aticas Universidad Nacional de Colombia, Bogot ´ a

Transcript of Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este...

Page 1: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

Teorıa de la Computacion

Lenguajes, automatas, gramaticas

Rodrigo De Castro KorgiPh.D. en Matematicas

University of Illinois, U.S.A.

Departamento de MatematicasUniversidad Nacional de Colombia, Bogota

Page 2: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

Teorıa de la ComputacionLenguajes, automatas, gramaticas

c© Universidad Nacional de ColombiaFacultad de Ciencias

Juan Manuel Tejeiro, DecanoNatalia Ruiz, Vicedecana Academica

Gustavo Rubiano, Director de Publicaciones

c© Rodrigo De Castro KorgiProfesor AsociadoDepartamento de Matematicas

Primera edicion, 2004Diagramacion en LATEX realizada por el autor

Impresion:UNIBIBLOSUniversidad Nacional de ColombiaBogota D.C., 2004

Page 3: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

Indice general

Prologo 1

Introduccion. ¿Que es la Teorıa de la Computacion? 3

1. Alfabetos, cadenas y lenguajes 51.1. Alfabetos y cadenas . . . . . . . . . . . . . . . . . . . . . . 51.2. Concatenacion de cadenas . . . . . . . . . . . . . . . . . . . 71.3. Potencias de una cadena . . . . . . . . . . . . . . . . . . . . 81.4. Longitud de una cadena . . . . . . . . . . . . . . . . . . . . 81.5. Reflexion o inversa de una cadena . . . . . . . . . . . . . . . 91.6. Subcadenas, prefijos y sufijos . . . . . . . . . . . . . . . . . 91.7. Lenguajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.8. Operaciones entre lenguajes . . . . . . . . . . . . . . . . . . 111.9. Concatenacion de lenguajes . . . . . . . . . . . . . . . . . . 121.10. Potencias de un lenguaje . . . . . . . . . . . . . . . . . . . . 141.11. La clausura de Kleene de un lenguaje . . . . . . . . . . . . 141.12. Reflexion o inverso de un lenguaje . . . . . . . . . . . . . . 171.13. Lenguajes regulares . . . . . . . . . . . . . . . . . . . . . . . 181.14. Expresiones regulares . . . . . . . . . . . . . . . . . . . . . . 19

2. Automatas finitos 252.1. Automatas finitos deterministas (AFD) . . . . . . . . . . . 252.2. Diagrama de transiciones de un automata . . . . . . . . . . 282.3. Diseno de automatas . . . . . . . . . . . . . . . . . . . . . . 302.4. Automatas finitos no-deterministas (AFN) . . . . . . . . . . 332.5. Equivalencia computacional entre los AFD y los AFN . . . 382.6. Automatas con transiciones λ (AFN-λ) . . . . . . . . . . . 43

i

Page 4: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

ii INDICE GENERAL

2.7. Equivalencia computacional entre los AFN-λ y los AFN . . 472.8. Teorema de Kleene. Parte I . . . . . . . . . . . . . . . . . . 492.9. Ejemplos de la parte I del Teorema de Kleene . . . . . . . . 522.10. Lema de Arden . . . . . . . . . . . . . . . . . . . . . . . . . 552.11. Teorema de Kleene. Parte II . . . . . . . . . . . . . . . . . . 572.12. Ejemplos de la parte II del Teorema de Kleene . . . . . . . 58

3. Otras propiedades de los lenguajes regulares 633.1. Lema de bombeo . . . . . . . . . . . . . . . . . . . . . . . . 633.2. Propiedades de clausura . . . . . . . . . . . . . . . . . . . . 673.3. Propiedades de clausura para automatas . . . . . . . . . . . 693.4. Homomorfismos � . . . . . . . . . . . . . . . . . . . . . . . 723.5. Imagen inversa de un homomorfismo � . . . . . . . . . . . 743.6. Algoritmos de decision . . . . . . . . . . . . . . . . . . . . . 75

4. Lenguajes y gramaticas independientes del contexto 814.1. Gramaticas generativas . . . . . . . . . . . . . . . . . . . . 814.2. Gramaticas independientes del contexto . . . . . . . . . . . 824.3. Arbol de una derivacion . . . . . . . . . . . . . . . . . . . . 884.4. Gramaticas ambiguas . . . . . . . . . . . . . . . . . . . . . 914.5. Gramaticas para lenguajes de programacion . . . . . . . . . 944.6. Gramaticas para lenguajes naturales � . . . . . . . . . . . . 964.7. Gramaticas regulares . . . . . . . . . . . . . . . . . . . . . . 984.8. Eliminacion de las variables inutiles . . . . . . . . . . . . . 1024.9. Eliminacion de las producciones λ . . . . . . . . . . . . . . 1074.10. Eliminacion de las producciones unitarias . . . . . . . . . . 1104.11. Forma Normal de Chomsky (FNC) . . . . . . . . . . . . . . 1134.12. Forma Normal de Greibach (FNG) � . . . . . . . . . . . . 1204.13. Lema de bombeo para LIC . . . . . . . . . . . . . . . . . . 1254.14. Propiedades de clausura de los LIC . . . . . . . . . . . . . . 1304.15. Algoritmos de decision para GIC . . . . . . . . . . . . . . . 135

5. Automatas con pila 1435.1. Automatas con Pila Deterministas (AFPD) . . . . . . . . . 1435.2. Automatas con pila no-deterministas (AFPN) . . . . . . . . 1505.3. Aceptacion por pila vacıa . . . . . . . . . . . . . . . . . . . 1545.4. Automatas con pila y LIC. Parte I. . . . . . . . . . . . . . . 1575.5. Automatas con pila y LIC. Parte II. � . . . . . . . . . . . . 160

Page 5: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

INDICE GENERAL iii

6. Maquinas de Turing 1676.1. Maquinas de Turing como aceptadoras de lenguajes . . . . . 1676.2. Subrutinas o macros . . . . . . . . . . . . . . . . . . . . . . 1746.3. Maquinas de Turing como calculadoras de funciones . . . . 1766.4. Maquinas de Turing como generadoras de lenguajes . . . . . 1796.5. Variaciones del modelo estandar de MT . . . . . . . . . . . 180

6.5.1. Estado de aceptacion unico . . . . . . . . . . . . . . 1806.5.2. Maquina de Turing con cinta dividida en pistas . . . 1816.5.3. Maquina de Turing con multiples cintas . . . . . . . 1816.5.4. Maquinas de Turing no-deterministas (MTN) . . . . 183

6.6. Simulacion de automatas por medio de maquinas deTuring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1866.6.1. Simulacion de automatas . . . . . . . . . . . . . . . 1866.6.2. Simulacion de automatas con pila . . . . . . . . . . . 186

6.7. Automatas con dos pilas (AF2P) � . . . . . . . . . . . . . . 1886.8. Propiedades de clausura de los lenguajes RE y de los

lenguajes recursivos . . . . . . . . . . . . . . . . . . . . . . 1936.9. Maquinas de Turing, computadores, algoritmos y la tesis

de Church-Turing . . . . . . . . . . . . . . . . . . . . . . . . 1976.9.1. Maquinas de Turing y algoritmos . . . . . . . . . . . 1986.9.2. Maquinas de Turing y computadores . . . . . . . . . 199

7. Problemas indecidibles 2017.1. Codificacion y enumeracion de maquinas de Turing . . . . . 2017.2. Maquina de Turing universal . . . . . . . . . . . . . . . . . 2067.3. Algoritmos de aceptacion para lenguajes RE . . . . . . . . . 2097.4. Lenguajes que no son RE . . . . . . . . . . . . . . . . . . . 2117.5. Lenguajes RE no recursivos . . . . . . . . . . . . . . . . . . 2127.6. Problemas indecidibles o irresolubles . . . . . . . . . . . . . 215

Bibliografıa 221

Page 6: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa
Page 7: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

Prologo

Este libro contiene lo mınimo que los estudiantes de las carreras de inge-nierıa de sistemas y de matematicas deberıan saber sobre los fundamentosmatematicos de la teorıa de la computacion. Esta basado en el materialde clase utilizado por el autor durante los ultimos anos en la UniversidadNacional de Colombia, sede de Bogota.

A estudiantes y profesores

El libro esta escrito tanto para estudiantes de matematicas —quienes, esde suponer, tienen mas experiencia con razonamientos abstractos y demos-traciones— como para estudiantes de ingenierıa. Es el profesor quien debeestablecer el tono del curso, enfatizando ya sea el rigor matematico o unapresentacion mas intuitiva y practica. Los resultados estan presentados enforma de teoremas, corolarios y lemas, con sus respectivas demostraciones;estas pueden omitirse, si ası lo estima el profesor. En los cursos dirigidosa estudiantes de ingenierıa de sistemas, el enfasis debe residir —tanto porparte del profesor como por parte del estudiante— en los ejemplos y ejer-cicios practicos; hay que resaltar mas el significado de los enunciados quesus demostraciones formales. El libro contiene gran cantidad de ejemplos yproblemas resueltos, con aplicaciones o ilustraciones directas de la teorıa.

Como prerrequisito, es imprescindible que el estudiante haya tomado almenos un curso de matematicas discretas en el que se haya familiarizadocon las nociones basicas y la notacion de la teorıa intuitiva de conjuntos,grafos, induccion matematica y logica elemental. La experiencia previa enprogramacion es muy util pero, de ninguna manera, necesaria.

El material se presenta en secciones relativamente cortas, lo que permitealguna flexibilidad en la seleccion de los topicos del curso. Ası, si el tiempo

1

Page 8: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2 PROLOGO

disponible no es holgado, o no es posible avanzar con la velocidad suficiente,podrıan suprimirse las secciones demarcadas con el sımbolo �.

Casi todas las secciones poseen ejercicios, de variada dificultad; los masdifıciles estan precedidos de un sımbolo de admiracion ! y podrıan ser consi-derados opcionales. Es responsabilidad del estudiante resolver los ejerciciosque sean asignados por el profesor. La unica manera de aprender y asimilarlas ideas y tecnicas presentadas en la clase es trabajar seria y completa-mente los ejercicios.

Material de apoyo en la red

Versiones preliminares de estas notas aparecieron, de forma incompleta,en el curso virtual de Teorıa de la Computacion perteneciente al programaUniversidad Virtual de la la Universidad Nacional de Colombia. Es la inten-cion del autor mantener y actualizar permanentemente la version virtualinteractiva de este curso, con material de apoyo como temas y ejerciciosnuevos, correccion de errores, software, enlaces a otra paginas Web, etc. Sepuede acceder libremente al curso virtual en el portal

http://www.virtual.unal.edu.co/

siguiendo los enlaces: Cursos–Facultad de Ciencias–Matematicas–Teorıa dela Computacion.

Agradecimientos

Durante la elaboracion de estas notas he recibido por parte de estudiantesatentos muchas observaciones utiles que han ayudado a mejorar sustan-cialmente la presentacion. Quiero expresarles mis agradecimientos a todosellos, demasiado numerosos para mencionarlos individualmente.

La primera version del curso virtual fue realizada con la ayuda del es-tudiante de posgrado Adolfo Reyes, a quien expreso mi gratitud y reco-nocimiento. Para la preparacion de la presente version tuve la suerte decontar con la colaboracion del estudiante de matematicas Camilo Cubides,con quien estoy muy agradecido por la calidad y seriedad de su trabajo.

Finalmente, quiero agradecer a Gustavo Rubiano, Director de las oficinade publicaciones de la Facultad de Ciencias, por su continuo apoyo y sucooperacion desinteresada.

Page 9: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

Introduccion

¿Que es la Teorıa de la Computacion?

La Teorıa de la Computacion estudia modelos abstractos de los dispositivosconcretos que conocemos como computadores, y analiza lo que se puede y nose puede hacer con ellos. Este estudio teorico se inicio varias decadas antesde la aparicion de los primeros computadores reales y continua creciendo,a medida que que la computacion incrementa su sofisticacion.

Entre los muchos topicos que conforman la teorıa de la computacion,solo tendremos la oportunidad de tratar someramente los dos siguientes:

Modelos de computacion. Las investigaciones en este campo comenza-ron en la decada de los 30 del siglo XX con el trabajo del logico norteame-ricano Alonzo Church (1903–1995) y del matematico britanico Alan Turing(1912–1954). Church introdujo el formalismo conocido como calculo-λ yenuncio la tesis —hoy conocida como tesis de Church— de que las funcio-nes efectivamente computables, es decir, computables por cualquier metodocomputacional concebible, son exactamente las funciones λ-computables.En contraste con el enfoque mas abstracto de Church, Turing (quien fuealumno doctoral de Church en la universidad de Princeton) propuso unmodelo concreto de maquina computadora, hoy conocida como la maquinade Turing, capaz de simular las acciones de cualquier otro dispositivo fısicode computacion secuencial.

Curiosamente, las propuestas de Church y Turing se publicaron exacta-mente en el mismo ano: 1936. Los dos formalismos resultaron ser equiva-lentes y, desde entonces, se han propuesto muchos otros modelos de com-putacion. Como todos han resultados ser equivalentes entre sı, ha ganado

3

Page 10: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4 INTRODUCCION

aceptacion universal la tesis de Church-Turing: no hay modelo de compu-tacion mas general ni poderoso que la maquina de Turing.

En los anos 40 y 50 del siglo XX se adelantaron investigaciones sobremaquinas de Turing con capacidad restringida, surgiendo ası la nocion demaquina de estado finito o automata finito (“automata” es sinonimo de“maquina de computo automatico”). Los automatas han resultado ser mo-delos muy utiles para el diseno de diversos tipos de software y hardware.

Lenguajes y gramaticas formales. Una lınea investigativa, aparente-mente alejada de los modelos de computacion, surgio con los estudios dellinguista norteamericano Noam Chomsky1. Chomsky introdujo en 1956 lanocion de gramatica generativa con el proposito de describir los lenguajesnaturales como el espanol, el ingles, el frances, etc. Chomsky clasifico lasgramaticas en cuatro tipos, dependiendo de la forma de sus producciones,que son las reglas que utiliza una gramatica para generar palabras o ca-denas de sımbolos. Pocos anos despues se establecio que hay una estrecharelacion entre automatas y gramaticas: los lenguajes de la llamada jerarquıade Chomsky corresponden a los lenguajes que pueden ser reconocidos portipos especiales de automatas.

La interaccion entre los automatas (mecanismos para procesar cade-nas de sımbolos) y las gramaticas (mecanismos para generar cadenas desımbolos) es una fuente de resultados profundos y significativos. Desde laaparicion de los influyentes textos de Hopcroft y Ullman ([HU1], 1969) y([HU2], 1979), un curso semestral basico de teorıa de la computacion seha centrado en el estudio de automatas y gramaticas. Estas notas de clasereflejan esa tradicion.

1En el ano 2002, la Universidad Nacional de Colombia otorgo el doctorado HonorisCausa a Noam Chomsky.

Page 11: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

Capıtulo 1Alfabetos, cadenas y lenguajes

De manera muy amplia podrıa decirse que la computacion es la manipula-cion de secuencias de sımbolos. Pero el numero de sımbolos disponibles encualquier mecanismo de computo es finito y todos los objetos usados comoentradas o salidas (inputs/outputs) deben ser identificados en un tiempofinito. Desde el punto de vista teorico esto impone dos restricciones basicas:el conjunto de sımbolos (alfabeto) debe ser finito y se deben considerar uni-camente cadenas (secuencias de sımbolos) de longitud finita. Surgen ası losingredientes esenciales de una teorıa abstracta de la computacion: alfabe-tos y cadenas. Los conjuntos de cadenas (ya sean finitos o infinitos) sedenominaran lenguajes.

1.1. Alfabetos y cadenas

Un alfabeto es un conjunto finito no vacıo cuyos elementos se llamansımbolos. Denotamos un alfabeto arbitrario con la letra Σ.

Una cadena o palabra sobre un alfabeto Σ es cualquier sucesion (osecuencia) finita de elementos de Σ. Admitimos la existencia de una unicacadena que no tiene sımbolos, la cual se denomina cadena vacıa y sedenota con λ. La cadena vacıa desempena, en la teorıa de la computacion,un papel similar al del conjunto vacıo ∅ en la teorıa de conjuntos.�

�Ejemplo Sea Σ = {a, b} el alfabeto que consta de los dos sımbolos a y

b. Las siguientes son cadenas sobre Σ:abaababaaaaaaab.

5

Page 12: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6 CAPITULO 1. ALFABETOS, CADENAS Y LENGUAJES

Observese que aba �= aab. El orden de los sımbolos en una cadena es sig-nificativo ya que las cadenas se definen como sucesiones, es decir, conjuntossecuencialmente ordenados.�

�Ejemplo El alfabeto Σ = {0, 1} se conoce como alfabeto binario. Las

cadenas sobre este alfabeto son secuencias finitas de ceros yunos, llamadas secuencias binarias, tales como

0011011001000001.

�Ejemplo Σ = {a, b, c, . . . , x, y, z, A, B, C, . . . , X, Y, Z}, el alfabeto del

idioma castellano. Las palabras oficiales del castellano (las queaparecen en el diccionario DRA) son cadenas sobre Σ.�

�Ejemplo El alfabeto utilizado por muchos de los llamados lenguajes de

programacion (como Pascal o C) es el conjunto de caracte-res ASCII (o un subconjunto de el) que incluye, por lo general, las letrasmayusculas y minusculas, los sımbolos de puntuacion y los sımbolos ma-tematicos disponibles en los teclados estandares.

El conjunto de todas las cadenas sobre un alfabeto Σ, incluyendo lacadena vacıa, se denota por Σ∗.�

�Ejemplo Sea Σ = {a, b, c}, entonces

Σ∗ = {λ, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, abc, baa, . . .}.

En la siguiente tabla aparece la notacion corrientemente utilizada en lateorıa de la computacion. De ser necesario, se emplean subındices.

Notacion usada en la teorıa de la computacion

Σ, Γ denotan alfabetos.Σ∗ denota el conjunto de todas las cadenas que se

pueden formar con los sımbolos del alfabeto Σ.a, b, c, d, e,. . . denotan sımbolos de un alfabeto.u, v, w, x, y, z, . . .α, β, γ, . . .

denotan cadenas, es decir, sucesiones finitas desımbolos de un alfabeto.

λ denota la cadena vacıa, es decir, la unica cadenaque no tiene sımbolos.

A, B, C, . . . , L, M, N ,. . . denotan lenguajes (definidos mas adelante).

Page 13: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

1.2. CONCATENACION DE CADENAS 7

✎ Algunos autores denotan la cadena vacıa con la letra griega ε.Preferimos denotarla con λ porque ε tiende a confundirse con elsımbolo ∈ usado para la relacion de pertenencia.

✎ Si bien un alfabeto Σ es un conjunto finito, Σ∗ es siempre unconjunto infinito (enumerable). En el caso mas simple, Σ contienesolo un sımbolo, Σ = {a}, y Σ∗ = {λ, a, aa, aaa, aaaa, aaaaa, . . .}.

✎ Hay que distinguir entre los siguientes cuatro objetos, que sontodos diferentes entre sı: ∅, λ, {∅} y {λ}.

✎ La mayor parte de la teorıa de la computacion se hace con refe-rencia a un alfabeto Σ fijo (pero arbitrario).

1.2. Concatenacion de cadenas

Dado un alfabeto Σ y dos cadenas u, v ∈ Σ∗, la concatenacion de u y vse denota como u · v o simplemente uv y se define descriptivamente ası:

1. Si v = λ, entonces u · λ = λ · u = u. Es decir, la concatenacion decualquier cadena u con la cadena vacıa, a izquierda o a derecha, esigual a u.

2. Si u = a1a2 · · · an, v = b1b2 · · · bm, entonces

u · v = a1a2 · · · anb1b2 · · · bm.

Es decir, u · v es la cadena formada escribiendo los sımbolos de u y acontinuacion los sımbolos de v.

La concatenacion de cadenas se puede definir inductiva o recursivamentede la siguiente manera. Si u, v ∈ Σ∗, a ∈ Σ, entonces

1. u · λ = λ · u = u.

2. u · (va) = (u · v)a.

Propiedad. La concatenacion de cadenas es una operacion asociativa. Esdecir, si u, v, w ∈ Σ∗, entonces

(uv)w = u(vw).

Demostracion. Se puede hacer escribiendo explıcitamente las cadenas u, v,w y usando la definicion descriptiva de concatenacion. Tambien se puede daruna demostracion inductiva usando la definicion recursiva de concatenacion(ejercicio opcional).

Page 14: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

8 CAPITULO 1. ALFABETOS, CADENAS Y LENGUAJES

1.3. Potencias de una cadena

Dada u ∈ Σ∗ y n ∈ N, se define (descriptivamente) un en la siguiente forma

u0 = λ,

un = uu · · ·u︸ ︷︷ ︸n veces

.

Como ejercicio, el estudiante puede dar una definicion recursiva de un.

1.4. Longitud de una cadena

La longitud de una cadena u ∈ Σ∗ se denota |u| y se define como el numerode sımbolos de u (contando los sımbolos repetidos). Es decir,

|u| ={

0, si u = λ,n, si u = a1a2 · · · an.

�Ejemplo |aba| = 3, |baaa| = 4.

�Ejemplo Si w ∈ Σ∗, n, m ∈ N, demostrar que |wn+m| = |wn| + |wm|.

Esta no es una propiedad realmente importante (¡no la usare-mos nunca en este libro!); la presentamos aquı para enfatizar los conceptosinvolucrados e ilustrar los razonamientos estrictos.

Solucion. Caso n, m ≥ 1. |wn+m| = | ww · · ·w︸ ︷︷ ︸n+m veces

| = (n + m)|w|. Por otro

lado,

|wn| + |wm| = |ww · · ·w︸ ︷︷ ︸n veces

| + |ww · · ·w︸ ︷︷ ︸m veces

| = n|w| + m|w|.

Caso n = 0, m ≥ 1. |wn+m| = |w0+m| = |wm|. Por otro lado,

|wn| + |wm| = |w0| + |wm| = |λ| + |wm| = 0 + |wm| = |wm|.

Caso m = 0, n ≥ 1. Similar al caso anterior.

Caso n = 0, m = 0. |wn+m| = |w0+0| = |λ| = 0. Por otro lado,

|wn| + |wm| = |w0| + |w0| = |λ| + |λ| = 0 + 0 = 0.

Page 15: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

1.5. REFLEXION O INVERSA DE UNA CADENA 9

1.5. Reflexion o inversa de una cadena

La reflexion o inversa de una cadena u ∈ Σ∗ se denota uR y se definedescriptivamente ası:

uR ={

λ, si u = λ,an · · · a2a1, si u = a1a2 · · · an.

De la definicion se observa claramente que la reflexion de la reflexion deuna cadena es la misma cadena, es decir,

(uR)R = u, para u ∈ Σ∗.

✎ Algunos autores escriben u−1 en lugar de uR para denotar la re-flexion de una cadena u.

�Ejercicios de la seccion 1.5

➀ Dar una definicion recursiva de uR.

➁ Si u, v ∈ Σ∗, demostrar que (uv)R = vRuR. Generalizar esta propie-dad a la concatenacion de n cadenas.

1.6. Subcadenas, prefijos y sufijos

Una cadena v es una subcadena o una subpalabra de u si existen cadenasx, y tales que u = xvy. Notese que x o y pueden ser λ y, por lo tanto,la cadena vacıa es una subcadena de cualquier cadena y toda cadena essubcadena de sı misma.

Un prefijo de u es una cadena v tal que u = vw para alguna cadenaw ∈ Σ∗. Se dice que v es un prefijo propio si v �= u.

Similarmente, un sufijo de u es una cadena v tal que u = wv paraalguna cadena w ∈ Σ∗. Se dice que v es un sufijo propio si v �= u.

Observese que λ es un prefijo y un sufijo de toda cadena u ya queuλ = λu = u. Por la misma razon, toda cadena u es prefijo y sufijo desı misma.�

�Ejemplo Sean Σ = {a, b, c, d} y u = bcbaadb.

Page 16: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

10 CAPITULO 1. ALFABETOS, CADENAS Y LENGUAJES

Prefijos de u :

λb

bcbcb

bcbabcbaa

bcbaadbcbaadb

Sufijos de u :

λb

dbadb

aadbbaadb

cbaadbbcbaadb

1.7. Lenguajes

Un lenguaje L sobre un alfabeto Σ es un subconjunto de Σ∗, es decirL ⊆ Σ∗.

Casos extremos:

L = ∅, lenguaje vacıo.L = Σ∗, lenguaje de todas las cadenas sobre Σ.

Todo lenguaje L satisface ∅ ⊆ L ⊆ Σ∗, y puede ser finito o infinito. Loslenguajes se denotan con letras mayusculas A, B, C, . . . , L, M, N, . . .. En lasiguiente grafica se visualizan dos lenguajes A y B sobre Σ.

Σ∗

A

B

�Ejemplos Los siguientes son ejemplos de lenguajes sobre los alfabetos

especificados.

Σ = {a, b, c}. L = {a, aba, aca}.Σ = {a, b, c}. L = {a, aa, aaa, . . .} = {an : n ≥ 1}.

Page 17: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

1.8. OPERACIONES ENTRE LENGUAJES 11

Σ = {a, b, c}. L = {λ, aa, aba, ab2a, ab3a, . . .} = {abna : n ≥ 0} ∪ {λ}.Σ = {a, b, c, . . . , x, y, z, A, B, C, . . . , X, Y, Z}. L = {u ∈ Σ∗ : u apareceen el diccionario espanol DRA}. L es un lenguaje finito.

Σ = {a, b, c}. L = {u ∈ Σ∗ : u no contiene el sımbolo c}. Por ejemplo,abbaab ∈ L pero abbcaa /∈ L.

Σ = {0, 1}. L = conjunto de todas las secuencias binarias que contie-nen un numero impar de unos.

Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. El conjunto N de los numeros naturalesse puede definir como un lenguaje sobre Σ, en la siguiente forma:

N = {u ∈ Σ∗ : u = 0 o 0 no es un prefijo de u}.

Como ejercicio, el estudiante puede definir el conjunto de los enteros Z ={. . . ,−2,−1, 0, 1, 2, . . .} como un lenguaje sobre un alfabeto adecuado.

✎ El concepto abstracto de “lenguaje”, tal como se ha definido, no esexactamente la misma nocion utilizada en la expresion “lenguajede programacion”. Para precisar la relacion entre estos conceptos,consideremos el alfabeto Σ de los caracteres ASCII. Un programaen C o en Pascal, por ejemplo, es simplemente una cadena desımbolos de Σ y, por lo tanto, un conjunto de programas es unlenguaje (en el sentido formal definido en esta seccion).

1.8. Operaciones entre lenguajes

Puesto que los lenguajes sobre Σ son subconjuntos de Σ∗, las operacionesusuales entre conjuntos son tambien operaciones validas entre lenguajes.Ası, si A y B son lenguajes sobre Σ (es decir A, B ⊆ Σ∗), entonces lossiguientes tambien son lenguajes sobre Σ:

A ∪ B UnionA ∩ B InterseccionA − B DiferenciaA = Σ∗ − A Complemento

Estas operaciones entre lenguajes se llaman operaciones conjuntistas o boo-leanas para distinguirlas de las operaciones linguısticas (concatenacion, po-tencia, inverso, clausura) que son extensiones a los lenguajes de las opera-ciones entre cadenas.

Page 18: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

12 CAPITULO 1. ALFABETOS, CADENAS Y LENGUAJES

1.9. Concatenacion de lenguajes

La concatenacion de dos lenguajes A y B sobre Σ, notada A · B o sim-plemente AB se define como

AB = {uv : u ∈ A, v ∈ B}.En general, AB �= BA.�

�Ejemplo Si Σ = {a, b, c}, A = {a, ab, ac}, B = {b, b2}, entonces

AB = {ab, ab2, ab2, ab3, acb, acb2}.BA = {ba, bab, bac, b2a, b2ab, b2ac}.

�Ejemplo Si Σ = {a, b, c}, A = {ba, bc}, B = {bn : n ≥ 0}, entonces

AB = {babn : n ≥ 0} ∪ {bcbn : n ≥ 0}.BA = {bnba : n ≥ 0} ∪ {bnbc : n ≥ 0}

= {bn+1a : n ≥ 0} ∪ {bn+1c : n ≥ 0}= {bna : n ≥ 1} ∪ {bnc : n ≥ 1}.

Propiedades de la concatenacion de lenguajes. Sean A, B, C lengua-jes sobre Σ, es decir A, B, C ⊆ Σ∗. Entonces

1. A · ∅ = ∅ · A = ∅.

2. A · {λ} = {λ} · A = A.

3. Propiedad Asociativa,

A · (B · C) = (A · B) · C.

4. Distributividad de la concatenacion con respecto a la union,

A · (B ∪ C) = A · B ∪ A · C.(B ∪ C) · A = B · A ∪ C · A.

5. Propiedad distributiva generalizada. Si {Bi}i∈I es una familia cual-quiera de lenguajes sobre Σ, entonces

A · ⋃i∈I

Bi =⋃i∈I

(A · Bi),( ⋃i∈I

Bi

)· A =

⋃i∈I

(Bi · A).

Page 19: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

1.9. CONCATENACION DE LENGUAJES 13

Demostracion.

1. A · ∅ = {uv : u ∈ A, v ∈ ∅} = ∅.

2. A · {λ} = {uv : u ∈ A, v ∈ {λ}} = {u : u ∈ A} = A.

3. Se sigue de la asociatividad de la concatenacion de cadenas.

4. Caso particular de la propiedad general, demostrada a continuacion.

5. Demostracion de la igualdad A · ⋃i∈I

Bi =⋃i∈I

(A · Bi):

x ∈ A · ⋃i∈I Bi ⇐⇒ x = u · v, con u ∈ A & v ∈ ⋃i∈I Bi

⇐⇒ x = u · v, con u ∈ A & v ∈ Bj , para algun j ∈ I⇐⇒ x ∈ A · Bj , para algun j ∈ I⇐⇒ x ∈ ⋃

i∈I(A · Bi).

La igualdad( ⋃

i∈I

Bi

)· A =

⋃i∈I

(Bi · A) se demuestra de forma similar.

✎ La propiedad asociativa permite escribir concatenaciones de treso mas lenguajes sin necesidad de usar parentesis.

✎ En general, no se cumple que A · (B ∩C) = A ·B ∩A ·C. Es decir,la concatenacion no es distributiva con respecto a la interseccion.Contraejemplo: A = {a, λ}, B = {λ}, C = {a}. Se tiene:

A · (B ∩ C) = {a, λ} · ∅ = ∅.

Por otro lado,

A ·B ∩A ·C = {a, λ} · {λ} ∩ {a, λ} · {a} = {a, λ} ∩ {a2, a} = {a}.�

�Ejercicios de la seccion 1.9

➀ Dar un ejemplo de un alfabeto Σ y dos lenguajes diferentes A, B sobreΣ tales que AB = BA.

➁ Una de las dos contenencias siguientes es verdadera y la otra es falsa.Demostrar o refutar, segun sea el caso:

(i) A · (B ∩ C) ⊆ A · B ∩ A · C.

(ii) A · B ∩ A · C ⊆ A · (B ∩ C).

Page 20: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

14 CAPITULO 1. ALFABETOS, CADENAS Y LENGUAJES

1.10. Potencias de un lenguaje

Dado un lenguaje A sobre Σ, (A ⊆ Σ∗), y un numero natural n ∈ N, sedefine An en la siguiente forma

A0 = {λ},An = AA · · ·A︸ ︷︷ ︸

n veces

= {u1 · · ·un : ui ∈ A, para todo i, 1 ≤ i ≥ n}.

De esta forma, A2 es el conjunto de las concatenaciones dobles de cadenasde A, A3 esta formado por las concatenaciones triples y, en general, An

es el conjunto de todas las concatenaciones de n cadenas de A, de todaslas formas posibles. Como ejercicio, el estudiante puede dar una definicionrecursiva de An.

1.11. La clausura de Kleene de un lenguaje

La clausura de Kleene o estrella de Kleene o simplemente la estrellade un lenguaje A, A ⊆ Σ∗, es la union de todas las potencias de A y sedenota por A∗.

(Descripcion 1) A∗ =⋃i≥0

Ai = A0 ∪ A1 ∪ A2 ∪ · · · ∪ An · · ·

Segun la definicion de las potencias de una lenguaje, A∗ consta de todaslas concatenaciones de cadenas de A consigo mismas, de todas las formasposibles. Tenemos ası una util descripcion de A∗:

(Descripcion 2)A∗ = conjunto de todas las concatenaciones

de cadenas de A, incluyendo λ

= {u1 · · ·un : ui ∈ A, n ≥ 0}De manera similar se define la clausura positiva de un lenguaje A, A ⊆Σ∗, denotada por A+.

A+ =⋃i≥1

Ai = A1 ∪ A2 ∪ · · · ∪ An · · ·

A+ se puede describir de la siguiente manera

A+ = conjunto de todas las concatenaciones de cadenas de A

= {u1 · · ·un : ui ∈ A, n ≥ 1}

Page 21: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

1.11. LA CLAUSURA DE KLEENE DE UN LENGUAJE 15

Observese que A∗ = A+ ∪ {λ} y que A∗ = A+ si y solamente si λ ∈ A.

Propiedades de ∗ y +. Sea A un lenguaje sobre Σ, es decir, A ⊆ Σ∗.

1. A+ = A∗ · A = A · A∗.

2. A∗ · A∗ = A∗.

3.(A∗)n = A∗, para todo n ≥ 1.

4.(A∗)∗ = A∗.

5. A+ · A+ ⊆ A+.

6.(A∗)+ = A∗.

7.(A+

)∗ = A∗.

8.(A+

)+ = A+.

9. Si A y B son lenguajes sobre Σ∗, entonces (A ∪ B)∗ = (A∗B∗)∗.

Demostracion.

A · A∗ = A · (A0 ∪ A1 ∪ A2 ∪ · · · )1.

= A1 ∪ A2 ∪ A3 ∪ · · ·= A+.

Similarmente se demuestra que A∗ · A = A+.

2. Si x ∈ A∗ · A∗, entonces x = u · v, con u ∈ A∗, v ∈ A∗. De modo que,x = u · v, con u = u1u2 · · ·un, ui ∈ A, n ≥ 0 y v = v1v2 · · · vm, vi ∈ A,m ≥ 0.De donde

x = u · v = u1 · u2 · · ·un · v1 · v2 · · · vm.

con ui ∈ A, vi ∈ A, n ≥ 0. Por lo tanto, x es una concatenacion de n + mcadenas de A. Ası que x ∈ A∗.

Recıprocamente, si x ∈ A∗, entonces x = x · λ ∈ A∗ ·A∗. Esto prueba laigualdad de los conjuntos A∗ · A∗ y A∗.

3. Se sigue de la propiedad anterior.(A∗)∗ =

(A∗)0 ∪ (

A∗)1 ∪ (A∗)2 ∪ · · ·4.

= {λ} ∪ A∗ ∪ A∗ ∪ A∗ ∪ · · ·= A∗.

Page 22: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

16 CAPITULO 1. ALFABETOS, CADENAS Y LENGUAJES

5. La demostracion de esta propiedad es similar a la de la propiedad 2,pero con la restriccion m, n ≥ 1. En general, no se tiene la igualdad A+ ·A+ = A+; mas adelante se mostrara un contraejemplo.(

A∗)+ =(A∗)1 ∪ (A∗)2 ∪ (A∗)3 ∪ · · ·6.

= A∗ ∪ A∗ ∪ A∗ ∪ · · ·= A∗.

(A+

)∗ =(A+

)0 ∪ (A+

)1 ∪ (A+

)2 ∪ · · ·7.= {λ} ∪ A+ ∪ A+A+ ∪ · · ·= A∗ ∪ (conjuntos contenidos en A+)= A∗.

(A+

)+ =(A+

)1 ∪ (A+

)2 ∪ (A+

)3 ∪ · · · ,8.= A+ ∪ (conjuntos contenidos en A+)= A+.

9. Segun la Descripcion 2, el lenguaje (A∪B)∗ esta formado por las conca-tenaciones de cadenas de A consigo mismas, las concatenaciones de cadenasde B consigo mismas y las concatenaciones de cadenas de A con cadenas deB, de todas las formas posibles y en cualquier orden. Si se usa tambien laDescripcion 2, se observa que eso mismo se obtiene al efectuar (A∗B∗)∗.

✎ Contraejemplo de A+ · A+ = A+. Sea Σ = {a, b}, A = {a}. Setiene

A+ = A1 ∪ A2 ∪ · · · = {a} ∪ {aa} ∪ {aaa} ∪ · · · = {an : n ≥ 1}.Por otro lado,

A+ · A+ = {a, a2, a3, . . . } · {a, a2, a3, . . . } = {a2, a3, a4, . . . }= {an : n ≥ 2}.

✎ Segun las definiciones dadas, Σ∗ tiene dos significados:

Σ∗ = conjunto de las cadenas sobre el alfabeto Σ.Σ∗ = conjunto de todas las concatenaciones de cadenas de Σ.

No hay conflicto de notaciones porque las dos definiciones anterio-res de Σ∗ dan lugar al mismo conjunto.

Page 23: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

1.12. REFLEXION O INVERSO DE UN LENGUAJE 17

1.12. Reflexion o inverso de un lenguaje

Dado A un lenguaje sobre Σ, se define AR de la siguiente forma:

AR = {uR : u ∈ A}.AR se denomina la reflexion o el inverso de A.

Propiedades. Sean A y B lenguajes sobre Σ (es decir, A, B ⊆ Σ∗).

1. (A · B)R = BR · AR.

2. (A ∪ B)R = AR ∪ BR.

3. (A ∩ B)R = AR ∩ BR.

4.(AR

)R = A.

5. (A∗)R =(AR

)∗.6. (A+)R =

(AR

)+.

Demostracion. Demostraremos las propiedades 1 y 5; las demas se dejancomo ejercicio para el estudiante.

x ∈ (A · B)R ⇐⇒ x = uR, donde u ∈ A · B1.

⇐⇒ x = uR, donde u = vw, v ∈ A, w ∈ B

⇐⇒ x = (vw)R, donde v ∈ A, w ∈ B

⇐⇒ x = wRvR, donde v ∈ A, w ∈ B

⇐⇒ x ∈ BR · AR.

x ∈ (A∗)R ⇐⇒ x = uR, donde u ∈ A∗5.

⇐⇒ x = (u1 · u2 · · ·un)R, donde los ui ∈ A, n ≥ 0

⇐⇒ x = uRn · uR

2 · · ·uR1 , donde los ui ∈ A, n ≥ 0

⇐⇒ x ∈ (AR)∗.�

�Ejercicios de la seccion 1.12

➀ Demostrar las propiedades 2, 3, 4 y 6 de la reflexion de cadenas.

➁ ¿Se pueden generalizar las propiedades 2 y 3 anteriores para unionese intersecciones arbitrarias, respectivamente?

Page 24: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

18 CAPITULO 1. ALFABETOS, CADENAS Y LENGUAJES

1.13. Lenguajes regulares

Los lenguajes regulares sobre un alfabeto dado Σ son todos los lenguajesque se pueden formar a partir de los lenguajes basicos ∅, {λ}, {a}, a ∈ Σ,por medio de las operaciones de union, concatenacion y estrella de Kleene.

A continuacion presentamos una definicion recursiva de los lenguajesregulares. Sea Σ un alfabeto.

1. ∅, {λ} y {a}, para cada a ∈ Σ, son lenguajes regulares sobre Σ. Estosson los denominados lenguajes regulares basicos.

2. Si A y B son lenguajes regulares sobre Σ, tambien lo son

A ∪ B (union),A · B (concatenacion),A∗ (estrella de Kleene).

Observese que tanto Σ como Σ∗ son lenguajes regulares sobre Σ. La union,la concatenacion y la estrella de Kleene se denominan operaciones regu-lares.�

�Ejemplos Sea Σ = {a, b}. Los siguientes son lenguajes regulares sobre

Σ:

1. El lenguaje A de todas las cadenas que tienen exactamente una a:

A = {b}∗ · {a} · {b}∗.

2. El lenguaje B de todas las cadenas que comienzan con b:

B = {b} · {a, b}∗.

3. El lenguaje C de todas las cadenas que contienen la cadena ba:

C = {a, b}∗ · {ba} · {a, b}∗.

4. ({a} ∪ {b}∗) · {a}.5.

[({a}∗ ∪ {b}∗) · {b}]∗.Es importante observar que todo lenguaje finito L = {w1, w2, . . . , wn} esregular ya que L se puede obtener con uniones y concatenaciones:

L = {w1} ∪ {w2} ∪ · · · ∪ {wn},y cada wi es la concatenacion de un numero finito de sımbolos, wi =a1a2 · · · ak; por lo tanto, {wi} = {a1} · {a2} · · · {ak}.

Page 25: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

1.14. EXPRESIONES REGULARES 19

1.14. Expresiones regulares

Con el proposito de simplificar la descripcion de los lenguajes regulares sedefinen las llamadas expresiones regulares.

La siguiente es la definicion recursiva de las expresiones regularessobre un alfabeto Σ dado.

1. Expresiones regulares basicas:

∅ es una expresion regular que representa al lenguaje ∅.λ es una expresion regular que representa al lenguaje {λ}.a es una expresion regular que representa al lenguaje {a}, a ∈ Σ.

2. Si R y S son expresiones regulares sobre Σ, tambien lo son:

(R)(S)(R ∪ S)

(R)∗

(R)(S) representa la concatenacion de los lenguajes representados porR y S; (R ∪ S) representa su union, y (R)∗ representa la clausurade Kleene del lenguaje representado por R. Los parentesis ( y ) sonsımbolos de agrupacion y se pueden omitir si no hay peligro de am-biguedad.

Para una expresion regular R cualquiera se utiliza en ocasiones la siguientenotacion:

L(R) := lenguaje representado por R.

Utilizando esta notacion y la definicion recursiva de expresion regular po-demos escribir las siguientes igualdades en las que R y S son expresionesregulares arbitrarias:

L(∅) = ∅.L(λ) = {λ}.L(a) = {a}, a ∈ Σ.L(RS) = L(R)L(S).L(R ∪ S) = L(R) ∪ L(S).L(R∗) = L(R)∗.

�Ejemplo Dado el alfabeto Σ = {a, b, c},

(a ∪ b∗)a∗(bc)∗

Page 26: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

20 CAPITULO 1. ALFABETOS, CADENAS Y LENGUAJES

es una expresion regular que representa al lenguaje

({a} ∪ {b}∗) · {a}∗ · {bc}∗.�

�Ejemplo Dado el alfabeto Σ = {a, b},

(λ ∪ a)∗(a ∪ b)∗(ba)∗

es una expresion regular que representa al lenguaje

({λ} ∪ {a})∗ · ({a} ∪ {b})∗ · {ba}∗.�

�Ejemplos Podemos representar los tres primeros lenguajes de la sec-

cion 1.13 con expresiones regulares:

1. El lenguaje A de todas las cadenas que tienen exactamente una a:

A = b∗ab∗.

2. El lenguaje B de todas las cadenas que comienzan con b:

B = b(a ∪ b)∗.

3. El lenguaje C de todas las cadenas que contienen la cadena ba:

C = (a ∪ b)∗ba(a ∪ b)∗.

✎ La representacion de lenguajes regulares por medio de expresionesregulares no es unica. Es posible que haya varias expresiones re-gulares diferentes para el mismo lenguaje. Por ejemplo, b(a ∪ b)∗

y b(b ∪ a)∗ representan el mismo lenguaje.Otro ejemplo: las dos expresiones regulares (a ∪ b)∗ y (a∗b∗)∗ re-presentan el mismo lenguaje por la propiedad 9 de la seccion 1.11.

�Ejemplos Encontrar expresiones regulares que representen los siguientes

lenguajes, definidos sobre el alfabeto Σ = {a, b}:

1. Lenguaje de todas las cadenas que comienzan con el sımbolo b yterminan con el sımbolo a.

Solucion. b(a ∪ b)∗a.

Page 27: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

1.14. EXPRESIONES REGULARES 21

2. Lenguaje de todas las cadenas que tienen un numero par de sımbolos(cadenas de longitud par).

Solucion. (aa∪ ab∪ ba∪ bb)∗. Otra expresion regular para este len-guaje es [(a ∪ b)(a ∪ b)]∗.

3. Lenguaje de todas las cadenas que tienen un numero par de aes.

Soluciones:b∗(b∗ab∗ab∗)∗.(ab∗a ∪ b)∗.(b∗ab∗ab∗)∗ ∪ b∗.

�Ejemplos Encontrar expresiones regulares que representen los siguientes

lenguajes, definidos sobre el alfabeto Σ = {0, 1}:

1. Lenguaje de todas las cadenas que tienen exactamente dos ceros.

Solucion. 1∗01∗01∗.

2. Lenguaje de todas las cadenas cuyo penultimo sımbolo, de izquierdaa derecha, es un 0.

Solucion. (0∪ 1)∗0(0∪ 1). Usando la propiedad distributiva obtene-mos otra expresion regular para este lenguaje: (0∪ 1)∗00∪ (0∪ 1)∗01.

�Ejemplo Sea Σ = {0, 1}. Encontrar una expresion regular que represente

el lenguaje de todas las cadenas que no contienen dos cerosconsecutivos.

Solucion. La condicion de que no haya dos ceros consecutivos implica quetodo cero debe estar seguido necesariamente de un uno, excepto un cero alfinal de la cadena. Por lo tanto, las cadenas de este lenguaje se obtienenconcatenado unos con bloques 01, de todas las formas posibles. Hay quetener en cuenta, ademas, que la cadena puede terminar ya sea en 1 o en 0.A partir de este analisis, llegamos a la expresion regular

(1 ∪ 01)∗ ∪ (1 ∪ 01)∗0.

Usando la propiedad distributiva, obtenemos otra expresion para este len-guaje: (1 ∪ 01)∗(λ ∪ 0).�

�Ejemplo Sea Σ = {a, b, c}. Encontrar una expresion regular que repre-

sente el lenguaje de todas las cadenas que no contienen la ca-dena bc.

Page 28: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

22 CAPITULO 1. ALFABETOS, CADENAS Y LENGUAJES

Solucion. Una b puede estar seguida solamente de otra b o de una a, mientrasque las aes y las ces pueden estar seguidas de cualquier sımbolo. Teniendoen cuenta todas las restricciones y posibilidades, arribamos a la siguienteexpresion regular:

(a ∪ c ∪ b+a)∗b∗.

La condicion de que no aparezca la cadena bc significa que una c puedeestar precedida solamente de una a y de otra c. Siguiendo esta descripcion,obtenemos otra expresion regular para el lenguaje en cuestion:

c∗(b ∪ ac∗)∗.

�Ejercicios de la seccion 1.14

➀ Encontrar expresiones regulares para los lenguajes descritos a conti-nuacion:

(i) Σ = {0, 1, 2}. Lenguaje de todas las cadenas que comienzan con2 y terminan con 1.

(ii) Σ = {a, b, c}. Lenguaje de todas las cadenas que tienen un nume-ro par de sımbolos.

(iii) Σ = {a, b}. Lenguaje de todas las cadenas que tienen un numeroimpar de sımbolos.

(iv) Σ = {a, b, c}. Lenguaje de todas las cadenas que tienen un nume-ro impar de sımbolos.

(v) Σ = {a, b}. Lenguaje de todas las cadenas que tienen un numeroimpar de aes.

(vi) Σ = {a, b}. Lenguaje de todas las cadenas que tienen la cadenaab un numero par de veces.

(vii) Σ = {a, b}. Lenguaje de todas las cadenas que tienen un numeropar de aes o un numero impar de bes.

(viii) Σ = {0, 1, 2}. Lenguaje de todas las cadenas que no contienendos unos consecutivos.

➁ Encontrar expresiones regulares para los siguientes lenguajes definidossobre el alfabeto Σ = {0, 1}:

(i) Lenguaje de todas las cadenas que tienen por lo menos un 0 ypor lo menos un 1.

Page 29: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

1.14. EXPRESIONES REGULARES 23

(ii) Lenguaje de todas las cadenas que tienen a lo sumo dos cerosconsecutivos.

(iii) Lenguaje de todas las cadenas cuyo quinto sımbolo, de izquierdaa derecha, es un 1.

(iv) Lenguaje de todas las cadenas de longitud par ≥ 2 formadaspor ceros y unos alternados.

(v) Lenguaje de todas las cadenas cuya longitud es ≥ 4.

(vi) Lenguaje de todas las cadenas de longitud impar que tienenunos unicamente en las posiciones impares.

(vii) Lenguaje de todas las cadenas cuya longitud es un multiplo detres.

(viii) Lenguaje de todas las cadenas que no contienen tres ceros con-secutivos.

(ix) Lenguaje de todas las cadenas que no contienen cuatro cerosconsecutivos.

!(x) Lenguaje de todas las cadenas que no contienen la subcadena101.

✎ No todos los lenguajes sobre un alfabeto dado Σ son regulares.Mas adelante se mostrara que el lenguaje

L = {λ, ab, aabb, aaabbb, . . . } = {anbn : n ≥ 0}

sobre Σ = {a, b} no se puede representar por medio de una expre-sion regular, y por lo tanto, no es un lenguaje regular.

Page 30: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa
Page 31: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

Capıtulo 2Automatas finitos

Los automatas son maquinas abstractas con capacidad de computacion.Historicamente, su estudio se origino con la llamada “maquina de Turing”,que fue propuesta en 1936 por el matematico britanico Alan Turing (1912–1954) con el proposito de precisar las caracterısticas y las limitaciones deun dispositivo de computacion mecanica. En los anos 40 y 50 del siglo XXse adelantaron investigaciones sobre maquinas de Turing con capacidadrestringida, lo que dio lugar a la nocion de automata finito.

2.1. Automatas finitos deterministas (AFD)

Los automatas finitos son maquinas abstractas que procesan cadenas deentrada, las cuales son aceptadas o rechazadas:

AutomataM

Cadena de

entrada u

si (u es aceptada)

no (u es rechazada)

El automata actua leyendo los sımbolos escritos sobre una cinta semi-infinita, dividida en celdas o casillas, sobre la cual se escribe una cadenade entrada u, un sımbolo por casilla. El automata posee una unidad decontrol (tambien llamada cabeza lectora, control finito o unidad de

25

Page 32: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

26 CAPITULO 2. AUTOMATAS FINITOS

memoria) que tiene un numero finito de configuraciones internas, llama-das estados del automata. Entre los estados de un automata se destacanel estado inicial y los estados finales o estados de aceptacion.

Formalmente, un automata finito M esta definido por cinco parametroso componentes, M = (Σ, Q, q0, F, δ), a saber:

1. Un alfabeto Σ, llamado alfabeto de cinta. Todas las cadenas que pro-cesa M pertenecen a Σ∗.

2. Q = {q0, q1, . . . , qn}, conjunto de estados internos del automata.

3. q0 ∈ Q, estado inicial.

4. F ⊆ Q, conjunto de estados finales o de aceptacion. F �= ∅.

5. La funcion de transicion del automata

δ : Q × Σ −→ Q(q, s) −→ δ(q, s)

Una cadena de entrada u se coloca en la cinta de tal manera que el primersımbolo de u ocupa la primera casilla de la cinta. La unidad de controlesta inicialmente en el estado q0 escaneando la primera casilla:

u︷ ︸︸ ︷Unidad

de control �

a a · · · b ≡ · · ·

q↑

La funcion de transicion δ indica el estado al cual pasa el control finito,dependiendo del sımbolo escaneado y de su estado actual. Ası, δ(q, s) = q′

significa que, en presencia del sımbolo s, la unidad de control pasa delestado q al estado q′ y se desplaza hacia la derecha. Esta accion constituyeun paso computacional:

s s· · · · · · · · ·· · ·

q↑

q′↑

δ(q, s) = q′

Page 33: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.1. AUTOMATAS FINITOS DETERMINISTAS (AFD) 27

Puesto que la funcion δ esta definida para toda combinacion estado-sımbolo, una cadena de entrada cualquiera es procesada completamente,hasta que la unidad de control encuentra la primera casilla vacıa.

La unidad de control de un automata siempre se desplaza hacia la dere-cha; no puede retornar ni escribir sımbolos sobre la cinta.�

�Ejemplo Consideremos el automata definido por los siguientes cinco

componentes:Σ = {a, b}.Q = {q0, q1, q2}.q0 : estado inicial.F = {q0, q2}, estados de aceptacion.Funcion de transicion δ:

δ a b

q0 q0 q1

q1 q1 q2

q2 q1 q1

δ(q0, a) = q0 δ(q0, b) = q1

δ(q1, a) = q1 δ(q1, b) = q2

δ(q2, a) = q1 δ(q2, b) = q1.

Vamos a ilustrar el procesamiento de dos cadenas de entrada.

1. u = aabab.

︷ ︸︸ ︷a a b a b ≡ · · ·

q0 q0 q0 q1 q1 q2

↑ ↑ ↑ ↑ ↑ ↑

u

Como q2 es un estado de aceptacion, la cadena de entrada u es aceptada.

2. v = aababa.

︷ ︸︸ ︷a a b a b a ≡ · · ·

q0 q0 q0 q1 q1 q2 q1

↑ ↑ ↑ ↑ ↑ ↑ ↑

v

Puesto que q1 no es un estado de aceptacion, la entrada v es rechazada.

Page 34: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

28 CAPITULO 2. AUTOMATAS FINITOS

Caso especial: la cadena λ es la cadena de entrada.

≡ ≡ · · ·

q0

Como q0 es un estado de aceptacion, la cadena λ es aceptada.

En general se tiene lo siguiente: la cadena vacıa λ es aceptada por unautomata M si y solamente si el estado inicial q0 de M tambien es un estadode aceptacion.

Los automatas finitos descritos anteriormente se denominan automatasfinitos deterministas (AFD) ya que para cada estado q y para cadasımbolo a ∈ Σ, la funcion de transicion δ(q, a) siempre esta definida. Esdecir, la funcion de transicion δ determina completa y unıvocamente laaccion que el automata realiza cuando la unidad de control se encuentra enun estado q leyendo un sımbolo s sobre la cinta.

Dado un automata M , el lenguaje aceptado o reconocido por M sedenota L(M) y se define por

L(M) := {u ∈ Σ∗ : M termina el procesamiento de la cadenade entrada u en un estado q ∈ F}.

2.2. Diagrama de transiciones de un automata

Un automata finito se puede representar por medio de un grafo dirigido yetiquetado. Recuerdese que un grafo es un conjunto de vertices o nodosunidos por arcos o conectores; si los arcos tienen tanto direccion comoetiquetas, el grafo se denomina grafo dirigido y etiquetado o digrafoetiquetado.

El digrafo etiquetado de un automata se obtiene siguiendo las siguientesconvenciones:

Los vertices o nodos son los estados del automata.

El estado q se representa por: q

El estado inicial q0 se representa por: > q0

Page 35: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.2. DIAGRAMA DE TRANSICIONES DE UN AUTOMATA 29

Un estado final q se representa por: q

La transicion δ = (q, s) = p se representa en la forma

q ps

Dicho grafo se denomina diagrama de transiciones del automata yes muy util para hacer el seguimiento completo del procesamiento de unacadena de entrada. Una cadena u es aceptada si existe una trayectoriaetiquetada con los sımbolos de u, que comienza en el estado q0 y terminaen un estado de aceptacion.�

�Ejemplo Diagrama de transiciones del automata presentado en la sec-

cion anterior.

Σ = {a, b}.Q = {q0, q1, q2}.q0 : estado inicial.F = {q0, q2}, estados de aceptacion.Funcion de transicion δ:

δ a b

q0 q0 q1

q1 q1 q2

q2 q1 q1

δ(q0, a) = q0 δ(q0, b) = q1

δ(q1, a) = q1 δ(q1, b) = q2

δ(q2, a) = q1 δ(q2, b) = q1

> q0 q1

q2

aa b

b

a, b

Examinando el diagrama de transiciones podemos observar facilmente quela entrada aaababbb es aceptada mientras que aabaaba es rechazada.

Page 36: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

30 CAPITULO 2. AUTOMATAS FINITOS

2.3. Diseno de automatas

Para automatas deterministas se adopta la siguiente convencion adicionalcon respecto a los diagramas de transiciones: se supone que los arcos nodibujadas explıcitamente conducen a un estado “limbo” de no-aceptacion.Es decir, en el diagrama de transiciones se indican unicamente los arcos queintervengan en trayectorias de aceptacion. Esto permite simplificar consi-derablemente los diagramas.

En este capıtulo abordaremos dos tipos de problemas:

1. Dado un lenguaje regular L disenar un automata finito M que acepteo reconozca a L, es decir, tal que L(M) = L.

2. Dado un automata M determinar el lenguaje aceptado por M .

Mas adelante se demostrara, en toda su generalidad, que estos problemassiempre tienen solucion. Consideremos inicialmente problemas del primertipo.�

�Ejemplo L = a∗ = {λ, a, a2, a3, . . .}. AFD M tal que L(M) = L:

> q0 q1

a a

b

b

Version simplificada: > q0

a

�Ejemplo L = a+ = {a, a2, a3, . . .}. AFD M tal que L(M) = L:

> q0 q1

q2

a

a

b

a

b b

Version simplificada: > q0 q1

aa

Page 37: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.3. DISENO DE AUTOMATAS 31

�Ejemplo Σ = {a, b}. L = lenguaje de las cadenas que contienen exacta-

mente dos aes = b∗ab∗ab∗. AFD M tal que L(M) = L:

> q0 q1 q2

b b ba a

�Ejemplo Σ = {0, 1}. L = lenguaje de las cadenas sobre Σ que tienen un

numero par de sımbolos (cadenas de longitud par). AFD Mtal que L(M) = L:

> q0 q1

0, 1

0, 1

�Ejemplo Σ = {0, 1}. L = lenguaje de las cadenas sobre Σ que contienen

un numero par de ceros. AFD M tal que L(M) = L:

> q0 q1

1 10

0

�Ejemplo Σ = {a, b}. L = lenguaje de las cadenas sobre Σ que terminan

en b. AFD M tal que L(M) = L:

> q0 q1

a bb

a

�Ejercicios de la seccion 2.3

➀ Disenar automatas finitos deterministas que acepten los siguienteslenguajes:

(i) Σ = {0, 1}. L = lenguaje de las cadenas sobre Σ de longitudimpar.

Page 38: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

32 CAPITULO 2. AUTOMATAS FINITOS

(ii) Σ = {0, 1}. L = lenguaje de las cadenas sobre Σ que contienenun numero impar de unos.

(iii) Σ = {a, b}. L = ab+.(iv) Σ = {a, b}. L = ab∗ ∪ ab∗a.(v) Σ = {0, 1}. L = (0 ∪ 10)∗.(vi) Σ = {0, 1}. L = (01 ∪ 10)∗.(vii) Σ = {0, 1}. Lenguaje de todas las cadenas que no contienen dos

unos consecutivos.(viii) Σ = {a, b}. L = {a2ib3j : i, j ≥ 0}.(ix) Σ = {a, b}. L = lenguaje de las cadenas sobre Σ que contienen

un numero par de aes y un numero par de bes. Ayuda: utilizar4 estados.

(x) Σ = {a, b}. Para cada combinacion de las condiciones “par” e“impar” y de las conectivas “o” e “y”, disenar un AFD queacepte el lenguaje L definido por

L = lenguaje de las cadenas con un numero par/impar de aesy/o un numero par/impar de bes.

Ayuda: utilizar el automata de 4 estados disenado en el ejerci-cio anterior, modificando adecuadamente el conjunto de estadosfinales.

➁ Determinar los lenguajes aceptados por los siguientes AFD. Describirlos lenguajes ya sea por medio de una propiedad caracterıstica o deuna expresion regular.

(i)

> q0 q1 q2 q3 q4

0 0 0 0

1 1 1 1

0

1

(ii)

> q0 q1 q2 q3

1 01

0

Page 39: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.4. AUTOMATAS FINITOS NO-DETERMINISTAS (AFN) 33

(iii)

> q0

q1

q2 q3

1 1

0 1

1

0

(iv)

> q0 q1 q2

b

a

b

b a

2.4. Automatas finitos no-deterministas (AFN)

Los automatas finitos no-deterministas (AFN) se asemejan a los AFD,excepto por el hecho de que para cada estado q ∈ Q y cada a ∈ Σ, latransicion δ(q, a) puede consistir en mas de un estado o puede no estardefinida. Concretamente, un AFN esta definido por M = (Σ, Q, q0, F, Δ)donde:

1. Σ es el alfabeto de cinta.

2. Q es un conjunto (finito) de estados internos.

3. q0 ∈ Q es el estado inicial.

4. ∅ �= F ⊆ Q es el conjunto de estados finales o estados de aceptacion.

5.Δ : Q × Σ −→ ℘(Q)

(q, s) −→ Δ(q, s) = {qi1 , qi2 , . . . , qik}donde ℘(Q) es el conjunto de subconjunto de Q.

Page 40: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

34 CAPITULO 2. AUTOMATAS FINITOS

El significado de Δ(q, s) = {qi1 , qi2 , . . . , qik} es el siguiente: estando enel estado q, en presencia del sımbolo s, la unidad de control puede pasar(aleatoriamente) a uno cualquiera de los estados qi1 , qi2 ,. . . , qik , despues delo cual se desplaza a la derecha.

Puede suceder que Δ(q, s) = ∅, lo cual significa que, si durante el proce-samiento de una cadena de entrada u, M ingresa al estado q leyendo sobrela cinta el sımbolo s, el computo se aborta.

Computo abortado:

︷ ︸︸ ︷· · · s · · · · · ·≡

q↑

u

La nocion de diagrama de transiciones para un AFN se define de maneraanaloga al caso AFD, pero puede suceder que desde un mismo nodo (estado)salgan dos o mas arcos con la misma etiqueta:

q

q′

q′′

q′′′

s

s

s

Un AFN M puede procesar una cadena de entrada u ∈ Σ∗ de varias ma-neras. Sobre el diagrama de transiciones del automata, esto significa quepueden existir varias trayectorias, desde el estado q0, etiquetadas con lossımbolos de u.

La siguiente es la nocion de aceptacion para automatas no-deterministas:

L(M) = lenguaje aceptado o reconocido por M= {u ∈ Σ∗ : existe por lo menos un computo completo

de u que termina en un estado q ∈ F}

Page 41: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.4. AUTOMATAS FINITOS NO-DETERMINISTAS (AFN) 35

Es decir, para que una cadena u sea aceptada, debe existir algun compu-to en el que u sea procesada completamente y que finalice estando M enun estado de aceptacion.�

�Ejemplo Sea M el siguiente AFN:

> q0 q1 q2

q3

a b

ba

a a b

b

Δ a b

q0 {q0, q1, q3} ∅

q1 {q1} {q2}q2 ∅ {q1, q2}q3 ∅ {q3}

Para la cadena de entrada u = abb, existen computos que conducen al recha-zo, computos abortados y computos que terminan en estados de aceptacion.Segun la definicion de lenguaje aceptado, u ∈ L(M).

Computo de rechazo:

Computo de aceptacion:

︷ ︸︸ ︷

︷ ︸︸ ︷

a

a

b

b

b

b

· · ·

· · ·

q0 q3 q3 q3

q0 q1 q2 q2

↑ ↑ ↑ ↑

↑ ↑ ↑ ↑

u

u

Otro computo de aceptacion:

︷ ︸︸ ︷a b b ≡ · · ·

q0 q1 q2 q1

↑ ↑ ↑ ↑

u

Page 42: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

36 CAPITULO 2. AUTOMATAS FINITOS

Computo abortado:

︷ ︸︸ ︷a b b ≡ · · ·

q0 q0

↑ ↑

u

�Ejemplo En el ultimo ejemplo de la seccion 2.3 se diseno el siguiente

AFD que acepta el lenguaje de las cadenas sobre Σ = {a, b}que terminan en b:

> q0 q1

a bb

a

Un AFN que acepta el mismo lenguaje y que es, tal vez, mas facil deconcebir, es el siguiente:

> q0 q1

a

b

b

Este automata se asemeja a la expresion regular (a ∪ b)∗b.�

�Ejemplo Considerese el lenguaje L = ab∗ ∪ a+ sobre el alfabeto Σ =

{a, b}. El siguiente AFN M satisface L(M) = L.

> q0 q1

q2

b

a

a

a

�Ejemplo Σ = {0, 1}, L = (01 ∪ 010)∗. El siguiente AFN acepta a L.

Page 43: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.4. AUTOMATAS FINITOS NO-DETERMINISTAS (AFN) 37

> q0 q1

q2 q3

0

1

1

00

Otro AFN que acepta el mismo lenguaje y que tiene solo tres estados es elsiguiente:

> q0 q1 q2

0

1

1

0

�Ejercicios de la seccion 2.4

Disenar automatas AFD o AFN que acepten los siguientes lenguajes:

➀ Σ = {a, b}. L = ab+a∗.

➁ Σ = {a, b}. L = a(a ∪ ab)∗.

➂ Σ = {a, b, c}. L = a∗b∗c∗.

➃ Σ = {0, 1, 2}. L = lenguaje de las cadenas sobre Σ que comienzancon 0 y terminan con 2.

➄ Σ = {0, 1}. Lenguaje de las cadenas de longitud par ≥ 2 formadaspor ceros y unos alternados.

➅ Σ = {0, 1}. Lenguaje de las cadenas que tienen a lo sumo dos cerosconsecutivos.

➆ Σ = {0, 1}. Lenguaje de las cadenas de longitud impar que tienenunos unicamente en las posiciones impares.

➇ Σ = {a, b, c}. L = lenguaje de las cadenas sobre Σ que contienen lacadena bc.

➈ Σ = {a, b, c}. L = lenguaje de las cadenas sobre Σ que no contienenla cadena bc. En el ultimo ejemplo de la seccion 1.14 se presentarondos expresiones regulares para L. Nota: ¡se puede construir un AFDcon solo dos estados para aceptar este lenguaje!

Page 44: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

38 CAPITULO 2. AUTOMATAS FINITOS

2.5. Equivalencia computacional entre los AFD ylos AFN

En esta seccion se mostrara que los modelos AFD y AFN son computa-cionalmente equivalentes. En primer lugar, es facil ver que un AFD M =(Σ, Q, q0, F, δ) puede ser considerado como un AFN M ′ = (Σ, Q, q0, F, Δ)definiendo Δ(q, a) = {δ(q, a)} para cada q ∈ Q y cada a ∈ Σ. Para laafirmacion recıproca tenemos el siguiente teorema.

2.5.1 Teorema. Dado un AFN M = (Σ, Q, q0, F, Δ) se puede construirun AFD M ′ equivalente a M , es decir, tal que L(M) = L(M ′).

Este teorema, cuya demostracion se dara en detalle mas adelante, es-tablece que el no-determinismo se puede eliminar. Dicho de otra manera,los automatas deterministas y los no-deterministas aceptan los mismos len-guajes. La idea de la demostracion consiste en considerar cada conjunto deestados {p1, . . . , pj}, que aparezca en la tabla de la funcion Δ del automatano-determinista, como un unico estado del nuevo automata determinista.La tabla de Δ se completa hasta que no aparezcan nuevas combinaciones deestados. Los estados de aceptacion del nuevo automata son los conjuntosde estados en los que aparece por lo menos un estado de aceptacion delautomata original. El siguiente ejemplo ilustra el procedimiento.

�Ejemplo Consideremos el AFN M , presentado en la seccion 2.4, que

acepta el lenguaje L(M) = ab∗ ∪ a+ sobre Σ = {a, b}:

> q0 q1

q2

b

a

a

a

Δ a b

q0 {q1, q2} ∅

q1 ∅ {q1}q2 {q2} ∅

El nuevo AFD M ′ construido a partir de M tiene un estado mas, {q1, q2},y su funcion de transicion δ tiene el siguiente aspecto:

Page 45: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.5. EQUIVALENCIA COMPUTACIONAL ENTRE LOS AFD Y LOS AFN 39

δ a b

q0 {q1, q2} ∅

q1 ∅ {q1}q2 {q2} ∅

{q1, q2} {q2} {q1}

El diagrama de transiciones de este automata es:

> {q0} {q1, q2} {q2}

{q1}

a

a a

b

b

Los estados de aceptacion son aquellos en los que aparezcan q1 o q2, queson los estados de aceptacion del automata original.

Para mayor simplicidad, podemos cambiar los nombres de los estadosdel nuevo automata:

> p0 p1 p2

p3

aa a

b

b

�Ejemplo El siguiente AFN M , presentado en la seccion 2.4, acepta el

lenguaje L = (01 ∪ 010)∗ sobre Σ = {0, 1}.

Page 46: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

40 CAPITULO 2. AUTOMATAS FINITOS

> q0 q1 q2

0

1

1

0

La tabla de la funcion de transicion de M se extiende para completar lafuncion δ del nuevo AFN:

δ 0 1

q0 {q1} ∅

q1 ∅ {q0, q2}q2 {q0} ∅

{q0, q2} {q0, q1} ∅

{q0, q1} {q1} {q0, q2}

El diagrama de transiciones del nuevo automata es:

> {q0} {q1} {q2}

{q0, q2} {q0, q1}

0

0

1 0

0

1

Los estados de aceptacion son aquellos en los que aparezca q0 ya que q0 esel unico estado de aceptacion del automata original.

Puesto que el nuevo estado {q2} no interviene en la aceptacion de cade-nas, el automata se puede simplificar en la siguiente forma:

Page 47: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.5. EQUIVALENCIA COMPUTACIONAL ENTRE LOS AFD Y LOS AFN 41

> p0 p1

p2 p3

0

1 0

0

1

Para la demostracion del Teorema 2.5.1, conviene extender la definicion dela funcion de transicion, tanto de los automatas deterministas como de losno-deterministas.

2.5.2 Definicion. Sea M = (Σ, Q, q0, F, δ) un AFD. La funcion de transi-cion δ : Q×Σ −→ Q se extiende a una funcion δ : Q×Σ∗ −→ Q por mediode la siguiente definicion recursiva:⎧⎪⎨⎪⎩

δ(q, λ) = q, q ∈ Q,

δ(q, a) = δ(q, a), q ∈ Q, a ∈ Σ,

δ(q, wa) = δ(δ(q, w), a), q ∈ Q, a ∈ Σ, w ∈ Σ∗.

Segun esta definicion, para una cadena de entrada w ∈ Σ∗, δ(q0, w) es elestado en el que el automata termina el procesamiento de w. Por lo tanto,podemos describir el lenguaje aceptado por M de la siguiente forma:

L(M) = {w ∈ Σ∗ : δ(q0, w) ∈ F}.

Notacion. Sin peligro de ambiguedad, la funcion extendida δ(q, w) se no-tara simplemente δ(q, w).

2.5.3 Definicion. Sea M = (Σ, Q, q0, F, Δ) un AFN. La funcion de tran-sicion Δ : Q×Σ −→ ℘(Q) se extiende inicialmente a conjuntos de estados.Para a ∈ Σ y S ⊆ F se define

Δ(S, a) :=⋃q∈S

Δ(q, a).

Page 48: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

42 CAPITULO 2. AUTOMATAS FINITOS

Luego se extiende Δ a una funcion Δ : Q × Σ∗ −→ ℘(Q), de manerasimilar a como se hace para los AFD. Recursivamente,⎧⎪⎪⎪⎨⎪⎪⎪⎩

Δ(q, λ) = {q}, q ∈ Q,

Δ(q, a) = Δ(q, a), q ∈ Q, a ∈ Σ,

Δ(q, wa) = Δ(Δ(q, w), a) =⋃

p∈Δ(q,w)

Δ(p, a), q ∈ Q, a ∈ Σ, w ∈ Σ∗.

Segun esta definicion, para una cadena de entrada w ∈ Σ∗, Δ(q0, w) es elconjunto de los posibles estados en los que terminan los computos completosde w. Si el computo se aborta durante el procesamiento de w, se tendrıaΔ(q0, w) = ∅. Usando la funcion extendida Δ, el lenguaje aceptado por Mse puede describir de la siguiente forma:

L(M) = {w ∈ Σ∗ : Δ(q0, w) contiene un estado de aceptacion}.Notacion. Sin peligro de ambiguedad, la funcion extendida Δ(q, w) senotara simplemente Δ(q, w).

Demostracion del Teorema 2.5.1:

Dado el AFN M = (Σ, Q, q0, F, Δ), construimos el AFD M ′ ası:

M ′ = (Σ, ℘(Q), {q0}, F ′, δ)

dondeδ : ℘(Q) × Σ −→ ℘(Q)

(S, a) −→ δ(S, a) := Δ(S, a).

F ′ = {S ⊆ ℘(Q) : S ∩ F �= ∅}.Se demostrara que L(M) = L(M ′) probando que, para toda cadena w ∈ Σ∗,δ({q0}, w) = Δ(q0, w). Esta igualdad se demostrara por induccion sobre w.Para w = λ, claramente se tiene δ({q0}, λ) = Δ(q0, λ) = {q0}. Para w = a,a ∈ Σ, se tiene

δ({q0}, a) = Δ({q0}, a) = Δ(q0, a).

Supongase (hipotesis de induccion) que δ({q0}, w) = Δ(q0, w), y que a ∈ Σ.

δ({q0}, wa) = δ(δ({q0}, w), a) (definicion de la extension de δ)= δ(Δ({q0}, w), a) (hipotesis de induccion)= Δ(Δ({q0}, w), a) (definicion de δ)= Δ({q0}, wa) (definicion de la extension de Δ)= Δ(q0, wa) (definicion de la extension de Δ).

Page 49: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.6. AUTOMATAS CON TRANSICIONES λ (AFN-λ) 43

�Ejercicios de la seccion 2.5

Disenar AFD equivalentes a los siguientes AFN:

> q0 q1

q2 q3

b

a

a

bb

> q0 q1 q2

q3

0 1

10

0 0 1

1

2.6. Automatas con transiciones λ (AFN-λ)

Un automata finito con transiciones λ (AFN-λ) es un automata no-determinista M = (Σ, Q, q0, F, Δ) en el que la funcion de transicion esta de-finida como:

Δ : Q × (Σ ∪ {λ}) → ℘(Q).

La transicion Δ(q, λ) = {pi1 , . . . , pin}, llamada transicion λ, transicionnula o transicion espontanea, tiene el siguiente significado computacio-nal: estando en el estado q, el automata puede cambiar a uno cualquiera delos estados pi1 , . . . , pin , independientemente del sımbolo leıdo y sin moverla unidad de control. Dicho de otra manera, las transiciones λ permitenal automata cambiar internamente de estado sin procesar o “consumir” elsımbolo leıdo sobre la cinta.

En el diagrama del automata, las transiciones λ dan lugar a arcos conetiquetas λ. Una cadena de entrada w es aceptada por un AFN-λ si exis-te por lo menos una trayectoria, desde el estado q0, cuyas etiquetas sonexactamente los sımbolos de w, intercalados con cero, uno o mas λs.

Page 50: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

44 CAPITULO 2. AUTOMATAS FINITOS

En los automatas AFN-λ, al igual que en los AFN, puede haber multiplescomputos para una misma cadena de entrada, ası como computos aborta-dos.�

�Ejemplo M :

> q0

q3

q1

q4

q2λ

a

b

λb

a

a

b

Ejemplos de cadenas aceptadas por M :

u = aabv = abaaw = abbaa

Computos de aceptacion de u = aab y v = abaa:

a a

a a a

b

b

≡ · · ·

· · ·

q0 q1 q1 q2

q1

↑ ↑ ↑ ↑

q0 q3 q3 q4 q4

q4

↑ ↑ ↑ ↑ ↑

Page 51: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.6. AUTOMATAS CON TRANSICIONES λ (AFN-λ) 45

Los AFN-λ permiten aun mas libertad en el diseno de automatas, espe-cialmente cuando hay numerosas concatenaciones.�

�Ejemplo Σ = {a, b, c}. L = a∗b∗c∗. AFD que acepta a L:

> q0 q1 q2

b c

c

a b c

AFN-λ que acepta a L:

> q0 q1 q2

λ λa b c

Este automata se asemeja a la expresion regular a∗b∗c∗: las concatenacioneshan sido reemplazadas por transiciones λ.�

�Ejemplo Σ = {a, b}. L = lenguaje de todas las cadenas sobre Σ que

tienen un numero par de aes o un numero par de bes.

AFD que acepta el lenguaje de las cadenas con un numero par de aes:

> q0 q1

a

a

b b

AFD que acepta el lenguaje de las cadenas con un numero par de bes:

> q0 q1

b

b

a a

AFN-λ que acepta el lenguaje de las cadenas con un numero par de aes oun numero par de bes:

Page 52: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

46 CAPITULO 2. AUTOMATAS FINITOS

> q0

q3

q1

q4

q2λ

λ

a

a

b

ba

b

a

b

A diferencia de los AFD y los AFN, en los AFN-λ pueden existir “computosinfinitos”, es decir computos que nunca terminan. Esto puede suceder siel automata ingresa a un estado desde el cual haya varias transiciones λencadenadas que retornen al mismo estado, como por ejemplo:

λ λ

λ

�Ejercicios de la seccion 2.6

Disenar AFN-λ que acepten los siguientes lenguajes:

➀ (ab ∪ b)∗ab∗, sobre Σ = {a, b}.➁ a(a ∪ c)∗b+, sobre Σ = {a, b, c}.➂ ab∗ ∪ ba∗ ∪ b(ab ∪ ba)∗, sobre Σ = {a, b}.➃ ab∗ba∗b(ab ∪ ba)∗, sobre Σ = {a, b}.➄ (0 ∪ 010)∗0∗(01 ∪ 10)∗, sobre Σ = {0, 1}.➅ 0+1(010)∗(01 ∪ 10)∗1+, sobre Σ = {0, 1}.➆ Σ = {a, b}. L = lenguaje de todas las cadenas sobre Σ que tienen un

numero par de aes y un numero par de bes.

Page 53: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.7. EQUIVALENCIA COMPUTACIONAL ENTRE LOS AFN-λ Y LOS AFN 47

2.7. Equivalencia computacional entre los AFN-λy los AFN

En esta seccion se mostrara que el modelo AFN-λ es computacionalmenteequivalente al modelo AFN. O dicho mas graficamente, las transiciones λse pueden eliminar, anadiendo transiciones que las simulen, sin alterar ellenguaje aceptado.

En primer lugar, un AFN M = (Σ, Q, q0, F, Δ) puede ser consideradocomo un AFN-λ en el que, simplemente, hay cero transiciones λ. Para laafirmacion recıproca tenemos el siguiente teorema.

2.7.1 Teorema. Dado un AFN-λ M = (Σ, Q, q0, F, Δ), se puede construirun AFN M ′ equivalente a M , es decir, tal que L(M) = L(M ′).

Bosquejo de la demostracion. Para construir M ′ a partir de M se requierela nocion de λ-clausura de un estado. Para un estado q ∈ Q, la λ-clausura de q, notada λ[q], es el conjunto de estados de M a los que sepuede llegar desde q por 0, 1 o mas transiciones λ. Notese que, en general,λ[q] �= Δ(q, λ). Por definicion, q ∈ λ[q]. La λ-clausura de un conjunto deestados {q1, . . . , qk} se define por:

λ[{q1, . . . , qk}] := λ[q1] ∪ · · · ∪ λ[qk].

Ademas, λ[∅] := ∅. Sea M ′ = (Σ, Q, q0, F′, Δ′) donde

Δ′ : Q × Σ −→ ℘(Q)(q, a) −→ Δ′(q, a) := λ

[Δ(λ[q], a)

].

M ′ simula ası las transiciones λ de M teniendo en cuenta todas las posiblestrayectorias. F ′ se define como:

F ′ = {q ∈ Q : λ[q] contiene al menos un estado de aceptacion}.

Es decir, los estados de aceptacion de M ′ incluyen los estados de aceptacionde M y aquellos estados desde los cuales se puede llegar a un estado deaceptacion por medio de una o mas transiciones λ.

Como se puede apreciar, la construccion de M ′ a partir de M es pura-mente algorıtmica.�

�Ejemplo Vamos a ilustrar el anterior algoritmo con el AFN-λ M , pre-

sentado en el segundo ejemplo de la seccion 2.6.

Page 54: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

48 CAPITULO 2. AUTOMATAS FINITOS

> q0 q1 q2

λ λa b c

L(M) = a∗b∗c∗. Las λ-clausuras de los estados vienen dadas por:

λ[q0] = {q0, q1, q2}.λ[q1] = {q1, q2}.λ[q2] = {q2}.

La funcion de transicion Δ′ : Q × {a, b, c} → ℘({q0, q1, q2}) es:

Δ′(q0, a) = λ [Δ(λ[q0], a)] = λ [Δ({q0, q1, q2}, a)] = λ[{q0}] = {q0, q1, q2}.Δ′(q0, b) = λ [Δ(λ[q0], b)] = λ [Δ({q0, q1, q2}, b)] = λ[{q1}] = {q1, q2}.Δ′(q0, c) = λ [Δ(λ[q0], c)] = λ [Δ({q0, q1, q2}, c)] = λ[{q2}] = {q2}.Δ′(q1, a) = λ [Δ(λ[q1], a)] = λ [Δ({q1, q2}, a)] = λ[∅] = ∅.Δ′(q1, b) = λ [Δ(λ[q1], b)] = λ [Δ({q1, q2}, b)] = λ[{q1}] = {q1, q2}.Δ′(q1, c) = λ [Δ(λ[q1], c)] = λ [Δ({q1, q2}, c)] = λ[{q2}] = {q2}.Δ′(q2, a) = λ [Δ(λ[q2], a)] = λ [Δ({q2}, a)] = λ[∅] = ∅.Δ′(q2, b) = λ [Δ(λ[q2], b)] = λ [Δ({q2}, b)] = λ[∅] = ∅.Δ′(q2, c) = λ [Δ(λ[q2], c)] = λ [Δ({q2}, c)] = λ[{q2}] = {q2}.

El automata M ′ ası obtenido es el siguiente:

> q0 q1 q2

a, b b, c

a, b, c

a b c

�Ejercicios de la seccion 2.7

Construir AFN equivalentes a los siguientes AFN-λ:

> q0 q1

q2 q3

λ

b

λ

a, λb

Page 55: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.8. TEOREMA DE KLEENE. PARTE I 49

> q0 q1 q2

q3

λ λ

a a b

b

2.8. Teorema de Kleene. Parte I

En las secciones anteriores se ha mostrado la equivalencia computacionalde los modelos AFD, AFN y AFN-λ, lo cual puede ser descrito en la forma:

AFD ≡ AFN ≡ AFN-λ

Esto quiere decir que para cada automata de uno de estos tres modelos sepueden construir automatas equivalentes en los otros modelos. Por lo tanto,los modelos AFD, AFN y AFN-λ aceptan exactamente los mismos lengua-jes. El Teorema de Kleene establece que tales lenguajes son precisamentelos lenguajes regulares.

2.8.1. Teorema de Kleene. Un lenguaje es regular si y solo si es aceptadopor un automata finito (AFD o AFN o AFN-λ).

Para demostrar el teorema consideraremos las dos direcciones por separado.Primero demostraremos que para un lenguaje regular L dado existe unAFN-λ tal que L(M) = L. En la seccion 2.11 demostraremos que, a partirde un AFD M , se puede encontrar una expresion regular R tal que L(M) =R. En ambas direcciones las demostraciones son constructivas.

Las construcciones de este capıtulo se pueden presentar ası:

AFD

Lenguajes regulares

AFN

AFN-λ

T. de Kleene II T. de Kleene I

Page 56: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

50 CAPITULO 2. AUTOMATAS FINITOS

Parte I. Dada una expresion regular R sobre un alfabeto Σ, se puedeconstruir un AFN-λ M tal que el lenguaje aceptado por M sea exactamenteel lenguaje representado por R.

Expresion regular RProcedimiento−−−−−−−−−→

algorıtmico

MAFN-λ tal que L(M) = R.

Demostracion. Puesto que la definicion de las expresiones regulares se hacerecursivamente, la demostracion se lleva a cabo razonando por induccion so-bre R. Para las expresiones regulares basicas, podemos construir facilmenteautomatas que acepten los lenguajes representados. Ası, el automata

> q0 q1

acepta el lenguaje ∅, es decir, el lenguaje representado por la expresionregular R = ∅.

El automata

> q0

acepta el lenguaje {λ}, es decir, el lenguaje representado por la expresionregular R = λ.

El automata

> q0 q1

a

acepta el lenguaje {a}, a ∈ Σ, es decir, el lenguaje representado por laexpresion regular R = a.

Paso inductivo: supongase que para las expresiones regulares R y S exis-ten AFN-λ M1 y M2 tales que L(M1) = R y L(M2) = S. Esquematicamentevamos a presentar los automatas M1 y M2 en la siguiente forma:

>

M1

... >

M2

...

Page 57: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.8. TEOREMA DE KLEENE. PARTE I 51

Los estados finales o de aceptacion se dibujan a la derecha, pero cabe ad-vertir que el estado inicial puede ser tambien un estado de aceptacion.Obviando ese detalle, podemos ahora obtener AFN-λ que acepten los len-guajes R ∪ S, RS y R∗.

Automata que acepta R ∪ S. Los automatas M1 y M2 se conectanen paralelo y los estados finales del nuevo automata son los estadosfinales de M1 junto con los de M2:

>

λ

λ

M1

M2

...

...

Automata que acepta RS. Los automatas M1 y M2 se conectan enserie y los estados finales del nuevo automata son unicamente losestados finales de M2:

>

λ

λ

M1 M2

......

...

Automata que acepta R∗. Los estados finales del nuevo automata sonlos estados finales de M1 junto con el estado inicial.

Page 58: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

52 CAPITULO 2. AUTOMATAS FINITOS

>

M1

...

λ

λ

Esto concluye la demostracion de la parte I del Teorema de Kleene. En la si-guiente seccion se presentan ejemplos concretos del procedimiento utilizadoen la demostracion.

2.9. Ejemplos de la parte I del Teorema de Kleene

De acuerdo con las construcciones presentadas en la demostracion de laparte I del Teorema de Kleene, un AFN-λ que acepta el lenguaje a∗ es:

>a

λ

Para simplificar las proximas construcciones utilizaremos, en su lugar, elbucle de un estado:

>

a

�Ejemplo Vamos a utilizar el procedimiento del teorema para construir

un AFN-λ que acepte el lenguaje a∗(ab∪ba)∗ ∪ a(b∪a∗) sobreel alfabeto {a, b}.Automata que acepta ab:

>

a λ b

Page 59: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.9. EJEMPLOS DE LA PARTE I DEL TEOREMA DE KLEENE 53

Automata que acepta ba:

>

b λ a

Automata que acepta ab ∪ ba:

>

λ

λ

a λ b

b λ a

Automata que acepta (ab ∪ ba)∗:

λ

a λ b

b λ a

λ

λ

Page 60: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

54 CAPITULO 2. AUTOMATAS FINITOS

Automata que acepta a∗(ab ∪ ba)∗:

λ

a λ b

b λ a

λ

λ

λ

a

Automata que acepta b ∪ a∗:

>

λ

λ

b

a

Automata que acepta a(b ∪ a∗):

>

a λ

λ

λ

b

a

Page 61: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.10. LEMA DE ARDEN 55

Automata que acepta a∗(ab ∪ ba)∗ ∪ a(b ∪ a∗):

>

λ

λ

λ

a λ

λ

λ

λ

λ

a λ b

b λ a

b

a

a

λ

λ

�Ejercicios de la seccion 2.9

Disenar automatas AFN-λ que acepten los siguientes lenguajes sobre elalfabeto Σ = {a, b, c}:

➀ a∗(b ∪ ab∗ ∪ ab∗a)c∗ ∪ (a ∪ b)(a ∪ ac)∗.

➁ c∗a(a ∪ ba)∗(abc)∗ ∪ c∗(a ∪ cb∗c).

➂ (ac)∗ ∪ a(a ∪ ab∗a) ∪ (abc)∗(cba)∗ ∪ (c ∪ ab ∪ ba ∪ ca)∗(ca ∪ cb)∗.

2.10. Lema de Arden

Vamos a utilizar el siguiente resultado, conocido como “lema de Arden”,para demostrar la segunda parte del Teorema de Kleene.

2.10.1. Lema de Arden. Si A y B son lenguajes sobre un alfabeto Σ yλ �∈ A, entonces la ecuacion X = AX ∪ B tiene una unica solucion dadapor X = A∗B.

Page 62: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

56 CAPITULO 2. AUTOMATAS FINITOS

Demostracion. Si X es una solucion de X = AX ∪ B, entonces B ⊆AX ∪ B = X. Tambien se tiene AX ⊆ X; a partir de esta contenencia yusando induccion sobre n, se puede demostrar que AnX ⊆ X para todon ∈ N. Por lo tanto

AnB ⊆ AnX ⊆ X

para todo n ∈ N. Ası que

A∗B =

( ⋃n≥0

An

)B =

⋃n≥0

AnB ⊆ X.

Esto muestra que toda solucion de X = AX ∪ B contiene a A∗B y es facilverificar que, de hecho, A∗B es una solucion:

A(A∗B) ∪ B = A+B ∪ B = (A+ ∪ λ)B = A∗B.

Para la unicidad, demostraremos que si A∗B∪C, con C∩A∗B = ∅, es unasolucion de la ecuacion, entonces C = ∅.

A∗B ∪ C = A(A∗B ∪ C) ∪ B

= A+B ∪ AC ∪ B

= (A+ ∪ λ)B ∪ AC

= A∗B ∪ AC.

Intersectando con C ambos lados de la anterior igualdad, se tiene:

(A∗B ∩ C) ∪ C = (A∗B ∩ C) ∪ (AC ∩ C),C = AC ∩ C.

Por lo tanto, C ⊆ AC. Si se tuviera C �= ∅, existirıa una cadena u ∈ C delongitud mınima. Entonces u = vw, con v ∈ A, w ∈ C. Como λ �∈ A, v �= λ;por consiguiente |w| < |u|. Esta contradiccion muestra que necesariamenteC = ∅, tal como se querıa.�

�Ejemplo La ecuacion X = aX ∪ b∗ab tiene solucion unica X = a∗b∗ab.

�Ejemplo La ecuacion X = a2X ∪ b+X ∪ab se puede escribir en la forma

X = (a2 ∪ b+)X ∪ ab. Por el lema de Arden la ecuacion tienesolucion unica X = (a2 ∪ b+)∗ab.�

�Ejemplo La ecuacion X = ab2X ∪aX ∪a∗b∪ b∗a se puede escribir como

X = (ab2 ∪ a)X ∪ (a∗b ∪ b∗a). Por lema de Arden la ecuaciontiene solucion unica X = (ab2 ∪ a)∗(a∗b ∪ b∗a).

Page 63: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.11. TEOREMA DE KLEENE. PARTE II 57

�Ejercicios de la seccion 2.10

➀ Encontrar las soluciones (unicas) de las siguientes ecuaciones:

(i) X = aX ∪ bX.

(ii) X = aX ∪ b∗ab ∪ bX ∪ a∗.

!➁ Demostrar de si λ ∈ A, entonces Y es una solucion de la ecuacionX = AX ∪ B si y solo si Y = A∗(B ∪ D) para algun D ⊆ Σ∗.

2.11. Teorema de Kleene. Parte II

En esta seccion demostraremos que para todo AFN M = (Σ, Q, q0, F, Δ)existe una expresion regular R tal que L(M) = R.

Un automata tiene un unico estado inicial pero cambiando dicho es-tado surgen nuevos automatas. Para cada qi ∈ Q, sea Mi el automataque coincide con M pero con estado inicial qi; mas precisamente, Mi =(Σ, Q, qi, F, Δ). Al lenguaje aceptado por Mi lo denotaremos Ai; es decir,L(Mi) = Ai. En particular, A0 = L(M). Puesto que los estados de acepta-cion no se han alterado, se tiene que

Ai = {w ∈ Σ∗ : Δ(qi, w) ∩ F �= ∅}.

Cada Ai se puede escribir como

(2.1) Ai =

⎧⎪⎨⎪⎩⋃

a∈Σ

{aAj : qj ∈ Δ(qi, a)}, si qi �∈ F,⋃a∈Σ

{aAj : qj ∈ Δ(qi, a)} ∪ λ. si qi ∈ F.

Si Q = {q0, q1, . . . , qn}, las igualdades de la forma (2.1) dan lugar a unsistema de n + 1 ecuaciones con n + 1 incognitas (los Ai):⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩

A0 = C01A0 ∪ C02A1 ∪ · · · ∪ C0nAn (∪λ)A1 = C11A0 ∪ C12A1 ∪ · · · ∪ C1nAn (∪λ)......An = Cn1A0 ∪ Cn2A1 ∪ · · · ∪ CnnAn (∪λ)

donde cada coeficiente Cij o es ∅ o es un sımbolo de Σ. El termino λ seanade a una ecuacion solamente si el estado correspondiente es un estadode aceptacion.

Page 64: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

58 CAPITULO 2. AUTOMATAS FINITOS

Utilizando sucesivas veces el lema de Arden, se puede mostrar que estesistema de ecuaciones siempre se puede solucionar y su solucion es unica.En efecto, comenzando con la ultima ecuacion, se escribe An en terminosde los demas Ai, para lo cual se usa el lema de Arden si es necesario. Estevalor de An se reemplaza en las demas ecuaciones y el sistema se reduce an ecuaciones con n incognitas. Similarmente, An−1 se escribe en terminosde los demas Ai, usando el lema de Arden si es necesario, y tal valor sereemplaza en las ecuaciones restantes. Prosiguiendo de esta manera, el sis-tema original se reduce a una sola ecuacion cuya incognita es precisamenteA0. Esta ecuacion se soluciona recurriendo una vez mas al lema de Arden.Puesto que los coeficientes Cij diferentes de ∅ son sımbolos de Σ, se obtieneuna expresion regular R tal que L(M) = A0 = R.

2.12. Ejemplos de la parte II del Teorema deKleene

A continuacion ilustraremos el procedimiento de la seccion 2.11 para en-contrar L(M) a partir de un AFN M = (Σ, Q, q0, F, Δ) dado.�

�Ejemplo Considerese el siguiente AFN M :

> q0 q1 q2

a aa

b

a

b

Por simple inspeccion sabemos que L(M) = (a ∪ b)∗a2(a ∪ b)∗, pero utili-zaremos el metodo descrito para encontrar explıcitamente L(M).

El sistema de ecuaciones asociado con el automata M es:⎧⎪⎨⎪⎩(1) A0 = aA0 ∪ bA0 ∪ aA1

(2) A1 = aA2

(3) A2 = aA2 ∪ bA2 ∪ λ.

La ecuacion (3) se puede escribir como

(4) A2 = (a ∪ b)A2 ∪ λ.

Aplicando el lema de Arden en (4):

(5) A2 = (a ∪ b)∗λ = (a ∪ b)∗.

Page 65: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.12. EJEMPLOS DE LA PARTE II DEL TEOREMA DE KLEENE 59

Reemplazando (5) en (2):

(6) A1 = a(a ∪ b)∗.

Reemplazando (6) en (1):

(7) A0 = (a ∪ b)A0 ∪ a2(a ∪ b)∗.

Aplicando el lema de Arden en (7) concluimos:

A0 = (a ∪ b)∗a2(a ∪ b)∗

�Ejemplo Encontrar una expresion regular para el lenguaje aceptado por

el siguiente AFN M :

> q0 q1 q2 q3 q4

a a b bb a

a

a

El sistema de ecuaciones asociado con el automata M es:⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

(1) A0 = aA1

(2) A1 = aA2

(3) A2 = bA2 ∪ bA3 ∪ λ

(4) A3 = aA3 ∪ bA4

(5) A4 = aA2 ∪ aA3 ∪ λ

Reemplazando (5) en (4):

(6) A3 = aA3 ∪ baA2 ∪ baA3 ∪ b = (a ∪ ba)A3 ∪ baA2 ∪ b.

Aplicando el lema de Arden en (6):

(7) A3 = (a ∪ ba)∗(baA2 ∪ b) = (a ∪ ba)∗baA2 ∪ (a ∪ ba)∗b.

Reemplazando (7) en (3):

(8) A2 = bA2 ∪ b(a ∪ ba)∗baA2 ∪ b(a ∪ ba)∗b ∪ λ.

El sistema original de cinco ecuaciones y cinco incognitas se reduce al sis-tema de tres ecuaciones y tres incognitas formado por (1), (2) y (8).

La ecuacion (8) se puede escribir como

Page 66: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

60 CAPITULO 2. AUTOMATAS FINITOS

(9) A2 =[b ∪ b(a ∪ ba)∗ba

]A2 ∪ b(a ∪ ba)∗ ∪ λ.

Aplicando el lema de Arden en (9):

(10) A2 =[b ∪ b(a ∪ ba)∗ba

]∗[b(a ∪ ba)∗b ∪ λ

].

Si se sustituye (10) en (2) y luego el valor de A1 obtenido se sustituye en(1), se obtiene finalmente:

A0 = a2[b ∪ b(a ∪ ba)∗ba

]∗[b(a ∪ ba)∗b ∪ λ

]�

�Ejemplo Encontrar una expresion regular para el lenguaje L de todas

las cadenas sobre Σ = {a, b} que tienen un numero par de aesy un numero par de bes. El siguiente automata acepta el lenguaje L:

> q0

q2 q3

q1

a

a

a

a

b b b b

Este automata da lugar al siguiente sistema de ecuaciones:⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩(1) A0 = aA1 ∪ bA2 ∪ λ

(2) A1 = aA0 ∪ bA3

(3) A2 = aA3 ∪ bA0

(4) A3 = aA2 ∪ bA1

Reemplazando (4) en (3):

(5) A2 = a2A2 ∪ abA1 ∪ bA0.

Reemplazando (4) en (2):

(6) A1 = aA0 ∪ baA2 ∪ b2A1.

El sistema original de cuatro ecuaciones y cuatro incognitas se reduce a unsistema de tres ecuaciones y tres incognitas, a saber:⎧⎪⎨⎪⎩

(1) A0 = aA1 ∪ bA2 ∪ λ

(6) A1 = aA0 ∪ baA2 ∪ b2A1

(5) A2 = a2A2 ∪ abA1 ∪ bA0

Page 67: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

2.12. EJEMPLOS DE LA PARTE II DEL TEOREMA DE KLEENE 61

Aplicando el lema de Arden en (5):

(7) A2 = (a2)∗(abA1 ∪ bA0) = (a2)∗abA1 ∪ (a2)∗bA0.

Reemplazando (7) en (6):

(8) A1 = aA0 ∪ ba(a2)∗abA1 ∪ ba(a2)∗bA0 ∪ b2A1.

Reemplazando (7) en (1):

(9) A0 = aA1 ∪ b(a2)∗abA1 ∪ b(a2)∗bA0 ∪ λ.

El sistema se reduce ahora a dos ecuaciones:⎧⎨⎩(9) A0 = aA1 ∪ b(a2)∗abA1 ∪ b(a2)∗bA0 ∪ λ(8) A1 = aA0 ∪ ba(a2)∗abA1 ∪ ba(a2)∗bA0 ∪ b2A1

=(ba(a2)∗ab ∪ b2

)A1 ∪ aA0 ∪ ba(a2)∗bA0.

Aplicando el lema de Arden en (8):

A1 =(ba(a2)∗ab ∪ b2

)∗(aA0 ∪ ba(a2)∗bA0

)=

(ba(a2)∗ab ∪ b2

)∗aA0 ∪

(ba(a2)ab ∪ b2

)∗ba(a2)∗bA0.

(10)

Haciendo R =(ba(a2)∗ab ∪ b2

)∗, (10) se puede escribir como

(11) A1 = RaA0 ∪ Rba(a2)∗bA0.

Aplicando el lema de Arden en (9):

A0 =(b(a2)∗b

)∗(aA1 ∪ b(a2)∗abA1 ∪ λ

)=

(b(a2)∗b

)∗aA1 ∪

(b(a2)∗b

)∗b(a2)∗abA1 ∪

(b(a2)∗b

)∗.

(12)

Haciendo S =(b(a2)∗b

)∗, (12) se puede escribir como:

(13) A0 = SaA1 ∪ Sb(a2)∗abA1 ∪ S.

Al sustituir (11) en (13), el sistema original se reduce a una sola ecuacion:

(14) A0 = Sa[RaA0 ∪Rba(a2)∗bA0

]∪Sb(a2)∗ab[RaA0 ∪Rba(a2)∗bA0

]∪S.

Agrupando los terminos en los que aparece A0 y factorizando, se obtiene

(15) A0 =[SaRa∪SaRba(a2)∗b∪Sb(a2)abRa∪Sb(a2)∗abRba(a2)∗b

]A0∪S.

Aplicando lema de Arden en (15):

(16) A0 =[SaRa ∪ SaRba(a2)∗b ∪ Sb(a2)∗abRa ∪ Sb(a2)∗abRba(a2)∗b

]∗S.

Si sustituimos R y S en (16) obtenemos una expresion regular para L.

Page 68: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

62 CAPITULO 2. AUTOMATAS FINITOS

�Ejercicios de la seccion 2.12

➀ Utilizando el lema de Arden, encontrar expresiones regulares para lossiguientes lenguajes sobre Σ = {a, b}:

(i) El lenguaje L de todas las cadenas que tienen un numero parde aes y un numero impar de bes.

(ii) El lenguaje L de todas las cadenas que tienen un numero parde aes o un numero impar de bes.

➁ Utilizando el lema de Arden, encontrar expresiones regulares para loslenguajes aceptados por los siguientes AFN:

(i)

> q0 q1 q2

q3

ba a

b

a a

b

(ii)

> q0 q1 q2 q3 q4

b a b ab

b

b

Page 69: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

Capıtulo 3Otras propiedades de los lenguajesregulares

En los dos capıtulos anteriores hemos presentado las propiedades basicas delos lenguajes regulares pero no hemos visto como se puede demostrar queun lenguaje no es regular. El llamado “lema de bombeo”, expuesto en estecapıtulo, sirve para tal proposito. Tambien veremos que la regularidad esuna propiedad que se preserva por las operaciones booleanas usuales, porhomomorfismos y por las imagenes inversas de homomorfismos. Finalmen-te, analizaremos ciertos problemas de decision referentes a automatas y alenguajes regulares.

3.1. Lema de bombeo

El llamado “lema de bombeo” (pumping lemma, en ingles) es una propie-dad de los lenguajes regulares que es muy util para demostrar que ciertoslenguajes no son regulares.

3.1.1. Lema de bombeo. Para todo lenguaje regular L (sobre un alfabetodado Σ) existe una constante n ∈ N, llamada constante de bombeo para L,tal que toda cadena w ∈ L, con |w| ≥ n, satisface la siguiente propiedad:

(B){

w se puede descomponer como w = uvx, con |uv| ≤ n, v �= λ,y para todo i ≥ 0 se tiene uvix ∈ L.

Demostracion. Por el Teorema de Kleene y por los teoremas de equivalenciade los modelos AFD, AFN y AFN-λ, existe un AFD M tal que L(M) = L.

63

Page 70: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

64 CAPITULO 3. OTRAS PROPIEDADES DE LOS LENGUAJES REGULARES

Sean = # de estados de M.

Si w ∈ L y |w| ≥ n, entonces durante el procesamiento completo de w, haypor lo menos un estado que se repite. Sea q el primer estado que se repite.Tal como se muestra en la siguiente grafica, w se puede descomponer comow = uvx, donde |uv| ≤ n, v �= λ.

︷ ︸︸ ︷︸ ︷︷ ︸ ︸ ︷︷ ︸ ︸ ︷︷ ︸

w

u v x

· · · · · · · · · ≡

q↑

q↑

q0

↑p↑

Notese que tanto u como x pueden ser la cadena vacıa λ, pero v �= λ.Ademas, la cadena v se puede “bombear”, en el sentido de que uvix esaceptada por M para todo i ≥ 0. En el diagrama de estados, se puedevisualizar esta propiedad de bombeo de v:

q0>

q

p

u x

v

Uso del lema de bombeo. El lema de bombeo se puede usar para concluirque un cierto lenguaje dado L no es regular, recurriendo a un razonamientopor contradiccion (o reduccion al absurdo). El razonamiento utilizado tienela siguiente forma:

1. Si L fuera regular, existirıa una constante de bombeo n para L.

2. Se escoge una cadena “adecuada” w ∈ L y se aplica la propiedad (B)del lema de bombeo, descomponiendo w como

w = uvx, v �= λ, |uv| ≤ n.

3. Se llega a la siguiente contradiccion:

(I) Por el lema de bombeo, uvix ∈ L, para todo i ≥ 0.

Page 71: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

3.1. LEMA DE BOMBEO 65

(II) uvix no puede estar en L, para algun i ∈ I. Por lo general, bastaescoger valores pequenos de i como i = 0 o i = 2.

�Ejemplo Usar el lema de bombeo para demostrar que el lenguaje L =

{aibi : i ≥ 0} no es regular.

Solucion. Si L fuera regular, existirıa una constante de bombeo n para L.Sea w = anbn ∈ L. Entonces w se puede descomponer como w = uvx, con|v| ≥ 1 y |uv| ≤ n. Por lo tanto, u y v constan unicamente de aes:

u = ar, para algun r ≥ 0,v = as, para algun s ≥ 1.

Entonces,x = an−(r+s)bn = an−r−sbn.

Por el lema de bombeo, uvix ∈ L para todo i ≥ 0. En particular, si i = 0,ux ∈ L. Pero ux = aran−r−sbn = an−sbn. Como n − s �= n, la cadenaux /∈ L lo cual es una contradiccion. Se concluye entonces que L no puedeser regular.

Tomando i = 2 tambien se llega a una contradiccion: por un lado, uv2x ∈L, pero

uv2x = arasasan−r−sbn = ar+2s+n−r−sbn = an+sbn.

Como s ≥ 1, an+sbn no esta en L.

El argumento anterior tambien sirve para demostrar que el lenguajeL = {aibi : i ≥ 1} no es regular.�

�Ejemplo Demostrar que el lenguaje de los palındromos sobre {a, b} no

es un lenguaje regular. Recuerdese que un palındromo es unacadena w tal que w = wR.

Solucion. Si L fuera regular, existirıa una constante de bombeo n para L.Sea w = anban ∈ L. Entonces w se puede descomponer como w = uvx, con|v| ≥ 1, |uv| ≤ n, y para todo i ≥ 0, uvix ∈ L. Por lo tanto, u y v constanunicamente de aes:

u = ar, para algun r ≥ 0,v = as, para algun s ≥ 1.

Entonces,x = an−(r+s)ban = an−r−sban.

Page 72: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

66 CAPITULO 3. OTRAS PROPIEDADES DE LOS LENGUAJES REGULARES

Tomando i = 0, se concluye que ux ∈ L, pero

ux = aran−r−sban = an−sban.

Como s ≥ 1, an−sban no es un palındromo. Esta contradiccion muestra queL no puede ser regular.�

�Ejemplo Demostrar que el lenguaje L =

{ai2 : i ≥ 0

}no es regular. L

esta formado por cadenas de aes cuya longitud es un cuadradoperfecto.Solucion. Si L fuera regular, existirıa una constante de bombeo n para L.Sea w = an2 ∈ L. Entonces w se puede descomponer como w = uvx, con|v| ≥ 1, |uv| ≤ n. Por el lema de bombeo, uv2x ∈ L, pero por otro lado,

n2 < n2 + |v| = |uvx| + |v| = |uv2x| ≤ n2 + |uv| ≤ n2 + n < (n + 1)2.

Esto quiere decir que el numero de sımbolos de la cadena uv2x no es uncuadrado perfecto y, por consiguiente, uv2x �∈ L. En conclusion, L no esregular.�

�Ejercicios de la seccion 3.1

➀ Usar el lema de bombeo para demostrar que los siguientes lenguajesno son regulares:

(i) L = {w ∈ {a, b}∗ : w tiene el mismo numero de aes que de bes}.(ii) L = {aibai : i ≥ 1}, sobre Σ = {a, b}.(iii) L = {aibjai : i, j ≥ 0}, sobre Σ = {a, b}.(iv) L = {0i12i : i ≥ 0}, sobre Σ = {0, 1}.(v) L = {1i01i0 : i ≥ 1}, sobre Σ = {0, 1}.(vi) L = {aibjci+j : i, j ≥ 0}, sobre Σ = {a, b, c}.(vii) L = {aibj : j > i ≥ 0}, sobre Σ = {a, b}.(viii) L = {ww : w ∈ Σ∗}, siendo Σ = {a, b}.(ix) L = {wwR : w ∈ Σ∗}, siendo Σ = {a, b}.(x) L = {ai : i es un numero primo}, sobre Σ = {a}.

➁ ¿Es L = {(ab)i : i ≥ 0} un lenguaje regular?

➂ Encontrar la falacia en el siguiente argumento: “Segun la propiedad(B) del enunciado del lema de bombeo, se tiene que uvix ∈ L para to-do i ≥ 0. Por consiguiente, L posee infinitas cadenas y, en conclusion,todo lenguaje regular es infinito.”

Page 73: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

3.2. PROPIEDADES DE CLAUSURA 67

3.2. Propiedades de clausura

Las propiedades de clausura afirman que a partir de lenguajes regulares sepueden obtener otros lenguajes regulares por medio de ciertas operacionesentre lenguajes. Es decir, la regularidad es preservada por ciertas operacio-nes entre lenguajes; en tales casos se dice que los lenguajes regulares soncerrados bajo las operaciones.

El siguiente teorema establece que la coleccion R ⊆ ℘(Σ∗) de los len-guajes regulares sobre un alfabeto Σ es cerrada bajo todas las operacionesbooleanas.

3.2.1 Teorema. Si L, L1 y L2 son lenguajes regulares sobre un alfabetoΣ, tambien lo son:

(1) L1 ∪ L2 (union)(2) L1L2 (concatenacion)(3) L∗ (estrella de Kleene)(4) L+ (clausura positiva)(5) L = Σ∗ − L (complemento)(6) L1 ∩ L2 (interseccion)(7) L1 − L2 (diferencia)(8) L1 � L2 (diferencia simetrica)

Demostracion.

(1), (2) y (3) se siguen de la definicion de los lenguajes regulares.

(4) Por (2), (3) y L+ = L∗L.

(5) Por el Teorema de Kleene y por los teoremas de equivalencia de losmodelos AFD, AFN y AFN-λ, existe un AFD M = (Σ, Q, q0, F, δ) talque L(M) = L. Para construir un AFD que acepte el complementode L basta intercambiar los estados finales con los no finales. Si M ′

es el automata (Σ, Q, q0, Q − F, δ), entonces L(M ′) = L.

(6) Se sigue de (1) y (5) teniendo en cuenta que L1 ∩ L2 = L1 ∪ L2.

(7) Se sigue de (5) y (6) teniendo en cuenta que L1 − L2 = L1 ∩ L2.

(8) Puesto que

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

el resultado se sigue de (1), (6), (7).

Page 74: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

68 CAPITULO 3. OTRAS PROPIEDADES DE LOS LENGUAJES REGULARES

Recuerdese que un algebra booleana de conjuntos es una familia A ⊆℘(X) cerrada bajo las operaciones de union, interseccion y complemento,tal que ∅ ∈ A, X ∈ A.

3.2.2 Corolario. La coleccion R ⊆ ℘(Σ∗) de todos los lenguajes regularessobre un alfabeto Σ es un algebra booleana de conjuntos.

Demostracion. Se sigue del Teorema 3.2.1 y del hecho de que ∅ y Σ∗ sonlenguajes regulares sobre Σ.

✎ Hemos visto que un lenguaje finito es regular y que la union fi-nita de lenguajes regulares es regular. Pero una union infinita delenguajes regulares no necesariamente es regular; considerese, porejemplo,

L = {anbn : n ≥ 1} =⋃i≥1

{aibi}.

Cada conjunto {aibi} es regular (porque posee solo una cadena)pero L no lo es.

✎ Un sublenguaje (subconjunto) de un lenguaje regular no es nece-sariamente regular, es decir, la familia de los lenguajes regularesno es cerrada para subconjuntos. Dicho de otra forma, un lengua-je regular puede contener sublenguajes no-regulares. Por ejemplo,L = {anbn : n ≥ 1} es un sublenguaje del lenguaje regular a∗b∗,pero L mismo no es regular.

Las propiedades de clausura permiten concluir, razonando por contradic-cion, que ciertos lenguajes no son regulares. Esto se ilustra en los siguientesejemplos en los que se usa el hecho de que los lenguajes L = {aibi : i ≥ 0}y L = {aibi : i ≥ 1} no son regulares.�

�Ejemplo L = {aibj : i, j ≥ 0, i �= j} no es regular. Si lo fuera, a∗b∗ − L

tambien lo serıa, pero a∗b∗ − L = {aibi : i ≥ 0}.�

�Ejemplo El lenguaje L = {wbn : w ∈ Σ∗, |w| = n, n ≥ 1} sobre

Σ = {a, b} no es regular. Si L fuera regular, tambien lo serıaL ∩ a∗b∗ pero L ∩ a∗b∗ = {anbn : n ≥ 1}.�

�Ejercicios de la seccion 3.2

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

Page 75: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

3.3. PROPIEDADES DE CLAUSURA PARA AUTOMATAS 69

➁ Sea L un lenguaje no-regular y N un subconjunto finito de L. De-mostrar 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, tambien 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, tambien lo es L.

(v) Si L es regular y N es un subconjunto finito de L, entoncesL − N es regular.

(vi) Un lenguaje regular L es infinito si y solo si en cualquier expre-sion regular de L aparece por lo menos una ∗.

➃ Utilizar las propiedades de clausura para concluir que los siguienteslenguajes no son regulares:

(i) L = {1i01j0 : i, j ≥ 1, i �= j}, sobre Σ = {0, 1}. Ayuda: utilizarel ejercicio 1(v) de la seccion 3.1.

(ii) L = {uvuR : u, v ∈ {a, b}+}, sobre Σ = {a, b}. Ayuda: utilizarel ejercicio 1(ii) de la seccion 3.1.

(iii) L = {u : |u| es un cuadrado perfecto}, sobre Σ = {a, b, c}. Ayu-da: utilizar el ultimo ejemplo de la seccion 3.1.

3.3. Propiedades de clausura para automatas

Las propiedades de clausura del Teorema 3.2.1 se pueden enunciar comoprocedimientos algorıtmicos para la construccion de automatas finitos.

3.3.1 Teorema. Sean M , M1 y M2 automatas finitos (ya sean AFD o AFNo AFN-λ) y L(M) = L, L(M1) = L1, L(M2) = L2. Se pueden construirautomatas finitos que 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 para L1 ∪L2, L1L2, L∗ y L+

se presento en la demostracion de la parte I del Teorema de Kleene. En el

Page 76: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

70 CAPITULO 3. OTRAS PROPIEDADES DE LOS LENGUAJES REGULARES

numeral (5) del Teorema 3.2.1 se vio como se puede construir un AFD M ′

que acepte L a partir de un AFD M que acepte L.Los procedimientos de construccion de (1), (2), (3), (4) y (5) se pueden

combinar para obtener automatas que acepten los lenguajes L1∩L2, L1−L2

y L1 � L2.

Para disenar un automata que acepte L1 ∩ L2, segun el argumento delTeorema 3.3.1, hay que usar la igualdad L1 ∩ L2 = L1 ∪ L2 y los proce-dimientos para union, complemento, eliminacion de transiciones λ y elimi-nacion del no-determinismo. El siguiente teorema muestra que existe unaconstruccion mas sencilla para el caso L1 ∩ L2.

3.3.2 Teorema. Sean M1 = (Σ, Q1, q1, F1, δ1) y M2 = (Σ, Q2, q2, F2, δ2)dos AFD. Entonces el AFD

M = (Σ, Q1 × Q2, (q1, q2), F1 × F2, δ)

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

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

satisface L(M) = L(M1) ∩ L(M2).

Demostracion. Sea w ∈ Σ∗. La conclusion del teorema se sigue demostrandoprimero por induccion sobre w que δ((q1, q2), w) = (δ1(q1, w), δ2(q2, w)) paratoda cadena w ∈ Σ∗ (aquı se usan las funciones extendidas de δ, δ1 y δ2,segun la definicion 2.5.2). Finalmente, se observa que:

w ∈ L(M) ⇐⇒ δ((q1, q2), w) ∈ F1 × F2

⇐⇒ (δ1(q1, w), δ2(q2, w)) ∈ F1 × F2

⇐⇒ δ(q1, w) ∈ F1 & δ(q2, w) ∈ F2

⇐⇒ w ∈ L(M1) & w ∈ L(M2)⇐⇒ w ∈ L(M1) ∩ L(M2). �

�Ejemplo Utilizar el Teorema 3.3.2 para construir un AFD que acepte el

lenguaje L de todas las cadenas sobre Σ = {a, b} que tienenun numero par de aes y un numero par de bes.

AFD M1 que acepta las cadenas con un numero par de aes:

> q1 q3

b ba

a

Page 77: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

3.3. PROPIEDADES DE CLAUSURA PARA AUTOMATAS 71

AFD M2 que acepta las cadenas con un numero par de bes:

> q2 q4

a ab

b

Entonces L = L(M1) ∩L(M2). El nuevo automata tiene 4 estados: (q1, q2),(q1, q4), (q3, q2) y (q3, q4); el unico estado de aceptacion es (q1, q2). Su funcionde transicion δ es

δ((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)

(q3, q2) (q3, q4)

(q1, q4)

b

b

b

b

a a a a

�Ejercicios de la seccion 3.3

➀ Utilizar el Teorema 3.3.2 para construir AFD que acepten los siguien-tes los siguientes lenguajes sobre el alfabeto {a, b, c}:

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

Page 78: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

72 CAPITULO 3. OTRAS PROPIEDADES DE LOS LENGUAJES REGULARES

(ii) El lenguaje L de todas las cadenas de longitud par que tenganun numero impar de bes.

(iii) El lenguaje L de todas las cadenas de longitud impar que tenganun numero par de ces.

(iv) El lenguaje L de todas las cadenas de longitud impar que tenganexactamente dos aes.

➁ Utilizar el procedimiento del Teorema 3.3.1 para construir un automa-ta que acepte el lenguaje L de todas las cadenas sobre Σ = {a, b} quetienen un numero par de aes y un numero par de bes. Comparese conel AFD construido en el ultimo ejemplo de esta seccion.

3.4. Homomorfismos �Un homomorfismo es una sustitucion h que reemplaza cada sımbolo a deun alfabeto de Σ por una cadena h(a) ∈ Γ∗, donde Γ es otro alfabeto(por supuesto, Σ y Γ pueden ser el mismo alfabeto). Mas precisamente, unhomomorfismo es una funcion h : Σ∗ → Γ∗ tal que h(λ) = λ y para todacadena u = a1a2 · · · an, con ai ∈ Σ, se tiene

h(a1a2 · · · an) = h(a1)h(a2) · · ·h(an).

Un homomorfismo h esta completamente determinado por sus imagenes enlos sımbolos de Σ, es decir, por los valores h(a), con a ∈ Σ.�

�Ejemplo Sean Σ = {a, b, c}, Γ = {0, 1} y h : Σ∗ → Γ∗ el homomorfismo

definido por h(a) = 0, h(b) = 1 y h(c) = 010. El homomorfismoh convierte cadenas de Σ∗ en cadenas de Γ∗ siguiendo las siguientes reglas:cada a se reemplaza por 0, cada b por 1 y cada c se reemplaza por la cadena010. Ası,

h(a2b2) = h(aabb) = h(a)h(a)h(b)h(b) = 0011.

h(acb2c) = h(a)h(c)h(b)2h(b) = 001011010.

Tambien se deduce facilmente que h(a∗b∗c∗) = 0∗1∗(010)∗.

El siguiente teorema afirma que los homomorfismos preservan lengua-jes regulares; dicho de otra manera, la imagen homomorfa de un lenguajeregular es un lenguaje regular.

3.4.1 Teorema. Sea h : Σ∗ → Γ∗ un homomorfismo.

Page 79: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

3.4. HOMOMORFISMOS � 73

(1) Para cadenas u, v ∈ Σ∗ y lenguajes A, B ⊆ Σ∗ se tiene

h(uv) = h(u)h(v),h(A ∪ B) = h(A) ∪ h(B),h(AB) = h(A)h(B),h(A∗) = [h(A)]∗.

(2) Si L es un lenguaje regular sobre Σ, entonces h(L) es un lenguajeregular sobre Γ.

Demostracion.

(1) Se sigue directamente de la definicion de homomorfismo; los detalles sedejan al estudiante.

(2) Por induccion sobre el numero de operandos (uniones, concatenacionesy estrellas) en la expresion regular que representa a L. La base de lainduccion es inmediata ya que h(λ) = λ, para cada a ∈ Σ, h(a) es unacadena determinada en Γ∗ y h(∅) = ∅.

La hipotesis de induccion afirma que si L es regular tambien lo esh(L). Para el paso inductivo se supone, en tres casos, que L = A ∪ B,L = AB o L = A∗. Utilizando la hipotesis de induccion y la parte (1)del presente teorema se llega a la conclusion deseada.

La parte (2) del Teorema 3.4.1 es muy util para demostrar que ciertoslenguajes no son regulares, razonando por contradiccion. En los siguientesejemplos ilustramos la tecnica que se usa en estas situaciones.�

�Ejemplo Sabiendo que {aibi : i ≥ 1} no es regular (seccion 3.1), pode-

mos concluir que L = {0i1i : i ≥ 1} tampoco lo es. Razonamosde la siguiente manera: si L fuera regular, lo serıa tambien h(L) donde hes el homomorfismo h(0) = a, h(1) = b. Pero h(L) = {h(0)ih(1)i : i ≥ 1} ={aibi : i ≥ 1}. Por consiguiente, L no es regular.�

�Ejemplo L = {0n21n : n ≥ 1} no es regular; si lo fuera, h(L) tambien

lo serıa, donde h es el homomorfismo h(0) = 0, h(1) = 1,h(2) = λ. Pero h(L) = {0n1n : n ≥ 1} no es regular, como se dedujo en elejemplo anterior.�

�Ejercicios de la seccion 3.4

➀ Llenar los detalles de la demostracion de la parte (1) del Teore-ma 3.4.1.

Page 80: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

74 CAPITULO 3. OTRAS PROPIEDADES DE LOS LENGUAJES REGULARES

➁ Utilizar homomorfismos y el hecho de que los lenguajes {aibi : i ≥ 1}y {0i1i : i ≥ 1} no son regulares para concluir que los siguienteslenguajes tampoco lo son:

(i) L = {aibaj : i, j ≥ 1, i �= j}, sobre Σ = {a, b}.(ii) L = {aibici : i ≥ 1}, sobre Σ = {a, b, c}.(iii) L = {aibjci : i, j ≥ 1}, sobre Σ = {a, b, c}.(iv) L = {0i1j2k : i, j, k ≥ 0, i + j = k}, sobre Σ = {a, b, c}.

3.5. Imagen inversa de un homomorfismo �Dado un homomorfismo h : Σ∗ → Γ∗ y un lenguaje B ⊆ Γ∗, la imageninversa de A por h es

h−1(B) := {u ∈ Σ∗ : h(u) ∈ B}.

La regularidad es tambien preservada por imagenes inversas de homomor-fismos, tal como lo afirma el siguiente teorema.

3.5.1 Teorema. Sea h : Σ∗ → Γ∗ un homomorfismo y B ⊆ Γ∗ un lenguajeregular sobre Γ. La imagen inversa h−1(B) es un lenguaje regular sobre Σ.

Demostracion. Comenzando con un AFD M = (Γ, Q, q0, F, δ) que acepte aB podemos construir un AFD M ′ = (Σ, Q, q0, F, δ′) que acepte h−1(B). Lafuncion de transicion δ′ se define mediante δ′(q, a) = δ(q, h(a)) (aquı se usala funcion extendida δ, segun la definicion 2.5.2). No es difıcil demostrar porinduccion sobre w que δ′(q0, w) = δ(q0, h(w)), para toda cadena w ∈ Σ∗.Como los estados de aceptacion de M y M ′ coinciden, M ′ acepta a w si ysolo si M acepta a h(w). Por lo tanto,

w ∈ L(M ′) ⇐⇒ h(w) ∈ L(M) = B ⇐⇒ w ∈ h−1(B)

Esto quiere decir que L(M ′) = h−1(B).

Con la ayuda del Teorema 3.5.1 y de las demas propiedades de clausuratambien podemos concluir que ciertos lenguajes no son regulares.�

�Ejemplo El lenguaje L = {0n10n : n ≥ 1} no es regular ya que si lo

fuera, tambien lo serıa h−1(L) donde h es el homomorfismoh(0) = h(1) = 0, h(2) = 1. Pero

h−1(L) ={{0, 1}n2{0, 1}n : n ≥ 1

}.

Page 81: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

3.6. ALGORITMOS DE DECISION 75

Entonces h−1(L) ∩ 0∗21∗ serıa regular; este ultimo lenguaje es igual a{0n21n : n ≥ 1}. Finalmente, por medio del homomorfismo g(0) = 0,g(1) = 1, g(2) = λ se concluirıa que g

({0n21n : n ≥ 1}) = {0n1n : n ≥ 1}es regular, lo cual sabemos que no es cierto.�

�Ejercicios de la seccion 3.5

Por medio de un razonamiento similar al del ejemplo de esta seccion, de-mostrar que los siguientes lenguajes sobre Σ = {0, 1} no son regulares:

➀ L = {ww : w ∈ Σ∗}. Ayuda: intersectar primero L con 0∗10∗1.

➁ L = {wwR : w ∈ Σ∗}. Ayuda: intersectar primero L con 0∗110∗.

3.6. Algoritmos de decision

La nocion de algoritmo que consideraremos en esta seccion es la corriente:

Un algoritmo es un procedimiento sistematico, claro y preciso,que termina en un numero finito de pasos para cualquier entradadada.

Dada una propiedad P, referente a automatas sobre un alfabeto Σ, unproblema de decision para P consiste en buscar un algoritmo, aplicablea un automata arbitrario M , que responda SI o NO a la pregunta: ¿satisfaceM la propiedad P? El siguiente diagrama ilustra la situacion.

M satisface P

M no satisface P

Automata M Algoritmode decision

SI

NO

Si existe un algoritmo de decision, se dice que el problema P es decidible oresoluble; en caso contrario, el problema P es indecidible o irresoluble.

Page 82: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

76 CAPITULO 3. OTRAS PROPIEDADES DE LOS LENGUAJES REGULARES

Es importante tener presente que, para que un problema P sea decidible,no basta responder SI o NO a la pregunta “¿satisface M la propiedad P?”para uno o varios automatas aislados M ; es necesario exhibir un algoritmoaplicable a todos los automatas. Es posible que en algunos casos concretosse pueda decidir afirmativa o negativamente sobre la satisfabilidad de unapropiedad P y, sin embargo, el problema P sea indecidible.

El primer problema de decision que consideraremos es el problema dedecidir si un automata M acepta o no alguna cadena; es decir, decidir siL(M) = ∅ o L(M) �= ∅. Este problema, llamado problema de la vacuidad,difiere del siguiente problema

P :

{Dado un automata (AFD o AFN o AFN-λ) M yuna cadena w ∈ Σ∗, ¿acepta M la cadena w?

En el problema P anterior las entradas son automatas M y cadenas w ∈ Σ∗;para resolverlo es suficiente el siguiente algoritmo: convertir M en un AFDM ′ (utilizando los algoritmos ya conocidos para tal efecto) y luego procesarw con M ′. Solo habra dos salidas: M ′ acepta a w o M ′ no acepta a w.El problema de la vacuidad no se puede resolver usando esta misma ideaporque no podemos examinar todas las entradas w ∈ Σ∗ (hay infinitascadenas w). Se requiere entonces una idea diferente, como la presentada enel siguiente teorema.

3.6.1 Teorema. Sea Σ un alfabeto dado. Existe un algoritmo para el si-guiente problema de decision referente a automatas sobre Σ:

Dado un automata (AFD o AFN o AFN-λ) M , ¿Es L(M) �= ∅?(es decir, ¿acepta M alguna cadena?).

Demostracion. Podemos disenar un algoritmo sencillo para encontrar losestados que son accesibles (o alcanzables) desde el estado inicial de M , esdecir, los estados para los cuales existen trayectorias desde el estado inicial.Si algun estado de aceptacion es alcanzable, se tendra L(M) �= ∅; en casocontrario L(M) = ∅. En el recuadro de la parte superior de la paginasiguiente aparece el algoritmo para encontrar el conjunto ALC de estadosalcanzables.

Claramente, el automata M acepta alguna cadena (o sea, L(M) �= ∅) siy solo si ALC contiene algun estado de aceptacion.

3.6.2 Corolario. Sea Σ un alfabeto dado. Existen algoritmos para los si-guientes problemas de decision referentes a automatas sobre Σ:

Page 83: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

3.6. ALGORITMOS DE DECISION 77

INICIALIZAR:

ALC := {q0}, donde q0 es el estado inicial de M .

REPETIR:

Para cada q ∈ ALC buscar los arcos que salen de q yanadir a ALC los estados p para los cuales haya unarco de q a p con cualquier etiqueta (puede ser λ).

HASTA:

No se anaden nuevos estados a ALC.

(1) Dados dos automatas M1 y M2 (AFD o AFN o AFN-λ), ¿L(M1) ⊆L(M2)?

(2) Dados dos automatas M1 y M2 (AFD o AFN o AFN-λ), ¿L(M1) =L(M2)?

Demostracion.

(1) Sea L1 = L(M1) y L2 = L(M2). Se tiene

L1 ⊆ L2 ⇐⇒ L1 − L2 = ∅.

Algoritmo: construir un AFD M ′ que acepte el lenguaje L1 − L2 (estose puede hacer en razon de la parte (7) del Teorema 3.3.1). Utilizarluego el procedimiento del Teorema 3.6.1 para decidir si L1 − L2 es ono vacıo.

(2) L(M1) = L(M2) ⇐⇒ L(M1) ⊆ L(M2) y L(M2) ⊆ L(M1). Por lotanto, basta aplicar dos veces el algoritmo de la parte (1). Tambiense puede encontrar un algoritmo de decision teniendo en cuenta queL1 = L2 ⇐⇒ L1�L2 = ∅ junto con la parte (8) del Teorema 3.3.1.

El argumento utilizado en la demostracion del lema de bombeo sirve paraestablecer un criterio que permite decidir si el lenguaje aceptado por unautomata es o no infinito. El criterio aparece en el siguiente teorema.

3.6.3 Teorema. Sea M un AFD con n estados y sea L = L(M). L esinfinito si y solo si M acepta una cadena w tal que n ≤ |w| < 2n.

Demostracion. Si w ∈ M y n ≤ |w| < 2n, entonces por la demostracion dellema de bombeo, w se puede descomponer como w = uvx, donde |uv| ≤ n,v �= λ. M acepta infinitas cadenas: uvix para todo i ≥ 0.

Page 84: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

78 CAPITULO 3. OTRAS PROPIEDADES DE LOS LENGUAJES REGULARES

Recıprocamente, si L es infinito, existe w ∈ L con |w| ≥ n. Por lademostracion del lema de bombeo, w = uvx donde |uv| ≤ n, v �= λ. Si|w| < 2n la demostracion termina. Si |w| ≥ 2n, puesto que |v| ≤ |uv| ≤ n,se tendra |ux| ≥ n y ux ∈ L. De nuevo, si |ux| < 2n, la demostraciontermina; en caso contrario, se prosigue de esta forma hasta encontrar unacadena en L cuya longitud satisfaga n ≤ < 2n.

3.6.4 Corolario. Sea Σ un alfabeto dado. Existe un algoritmo para elsiguiente problema de decision referente a automatas sobre Σ:

Dado un automata M (AFD o AFN o AFN-λ), ¿Es L(M) in-finito?

Demostracion. Algoritmo: construir un AFD M ′ que acepte el lenguajeL(M) y chequear la aceptacion o rechazo de todas las cadenas w ∈ Σ∗ talesque n ≤ |w| < 2n, donde n = # de estados de M ′.

Hemos trabajado con problemas de decision referentes a automatas, perotambien podemos considerar problemas sobre lenguajes regulares. Dadauna propiedad P, referente a lenguajes regulares sobre un alfabeto Σ, unproblema de decision para P consiste en buscar un algoritmo, aplicable atodo lenguaje regular L (es decir, a toda expresion regular R), que respondaSI o NO a la pregunta: ¿satisface L la propiedad P? Puesto que conocemosalgoritmos de conversion entre la representacion por expresiones regulares yla representacion por automatas, los problemas decidibles sobre automatascorresponden a problemas decidibles sobre lenguajes regulares y viceversa.Ası por ejemplo, en razon del Corolario 3.6.4, el siguiente problema esdecidible: “Dada una expresion regular R, ¿es L(R) infinito?”�

�Ejercicios de la seccion 3.6

➀ Sea Σ un alfabeto dado. Encontrar algoritmos para los siguientesproblemas de decision referentes a automatas sobre Σ:

(i) Dado un automata M (AFD o AFN o AFN-λ), ¿es L(M) = Σ∗?(ii) Dado un automata M (AFD o AFN o AFN-λ), ¿acepta M todas

las cadenas de longitud impar?

(iii) Dado un automata M (AFD o AFN o AFN-λ) y una cadenaw ∈ Σ∗, ¿acepta M la cadena wwR?

(iv) Dados dos automatas M1 y M2 (AFD o AFN o AFN-λ), ¿existealguna cadena que no sea aceptada por ninguno de los automa-tas M1 y M2?

Page 85: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

3.6. ALGORITMOS DE DECISION 79

(v) Dado un automata M (AFD o AFN o AFN-λ), ¿es L(M) cofi-nito? (Un conjunto es cofinito si su complemento es finito).

(vi) Dado un automata M (AFD o AFN o AFN-λ), ¿acepta M al-guna cadena de longitud 1250? Ayuda: hay un numero finito decadenas con longitud 1250.

(vii) Dado un automata M (AFD o AFN o AFN-λ), ¿acepta M al-guna cadena de longitud mayor que 1250? Ayuda: habrıa unnumero infinito de cadenas por examinar; usar el Teorema 3.6.3.

(viii) Dado un automata M (AFD o AFN o AFN-λ), ¿acepta M porlo menos 1250 cadenas? Ayuda: usar la misma idea del proble-ma (vii).

!➁ Encontrar algoritmos de decision, que no utilicen automatas, pararesolver los siguientes problemas:

(i) Dada una expresion regular R, ¿es L(R) �= ∅? Ayuda: puestoque las expresiones regulares se definen recursivamente, el algo-ritmo requiere descomponer la expresion R y utilizar criterios devacuidad para la estrella de Kleene, la union y la concatenacionde lenguajes.

(ii) Dada una expresion regular R, ¿contiene L(R) por lo menos 150cadenas?

✎ Al considerar problemas de decision lo importante es la existenciao no de algoritmos de decision, no tanto la eficiencia de los mismos.

✎ En el Capıtulo 7 se mostrara que existen problemas indecidibles,es decir, problemas para los cuales no hay algoritmos de decision.

Page 86: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa
Page 87: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

Capıtulo 4Lenguajes y gramaticasindependientes del contexto

Como se ha visto, los automatas son dispositivos que procesan cadenasde entrada. En capıtulos posteriores consideraremos modelos de automatascon mayor poder computacional que el de los modelos AFD, AFN y AFN-λ.En el presente capıtulo estudiaremos una nocion completamente diferente,aunque relacionada, la de gramatica generativa, que es un mecanismo paragenerar cadenas a partir de un sımbolo inicial.

☞ Los automatas procesan cadenas

☞ Las gramaticas generan cadenas

4.1. Gramaticas generativas

Las gramaticas generativas fueron introducidas por Noam Chomsky en 1956como un modelo para la descripcion de los lenguajes naturales (espanol, in-gles, etc). Chomsky clasifico las gramaticas en cuatro tipos: 0, 1, 2 y 3.Las gramaticas de tipo 2, tambien llamadas gramaticas independientes delcontexto, se comenzaron a usar en la decada de los sesenta para presentarla sintaxis de lenguajes de programacion y para el diseno de analizadoressintacticos en compiladores. En este curso unicamente tendremos oportu-nidad de estudiar gramaticas de tipos 2 y 3. El estudiante puede pasardirectamente a la seccion 4.2; el resto de la presente seccion es material(opcional) de referencia.

Una gramatica generativa es una cuadrupla, G = (V, Σ, S, P ) formada

81

Page 88: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

82 LENGUAJES LIC Y GRAMATICAS GIC

por dos alfabetos disyuntos V (alfabeto de variables o no-terminales) y Σ(alfabeto de terminales), una variable especial S ∈ V (llamada sımboloinicial) y un conjunto finito P ⊆ (V ∪ Σ)∗ × (V ∪ Σ)∗ de producciones oreglas de re-escritura. Una produccion (v, w) ∈ P se denota por v → w y selee “v produce w”; v se denomina la cabeza y w el cuerpo de la produccion.Se exige que la cabeza de la produccion tenga por lo menos una variable.

El significado de la produccion v → w es: la cadena v se puede reem-plazar (sobre-escribir) por la cadena w. Comenzando con el sımbolo inicialS y aplicando las producciones de la gramatica, en uno o mas pasos, seobtienen cadenas de terminales y/o no-terminales. Aquellas cadenas quesolo tengan terminales conforman lo que se denomina el lenguaje generadopor G.

Las gramaticas se clasifican de acuerdo con el tipo de sus producciones:

Gramaticas de tipo 0. No tienen restricciones. Tambien se llaman gramati-cas no-restringidas o gramaticas con estructura de frase en razon desu origen linguıstico.

Gramaticas de tipo 1. Las producciones son de la forma u1Au2 → v1wv2,donde A es una variable y w �= λ. Tambien se llaman gramaticassensibles al contexto o gramaticas contextuales.

Gramaticas de tipo 2. Las producciones son de la forma A → w dondeA es una variable. Tambien se llaman gramaticas independientes delcontexto o gramaticas no-contextuales.

Gramaticas de tipo 3. Las producciones son de la forma A → a o de laforma A → aB, donde A y B son variables y a es un sımbolo terminal.Tambien se llaman gramaticas regulares.

Se dice que un lenguaje es de tipo i si es generado por una gramaticade tipo i. Esta clasificacion de lenguajes se conoce como la jerarquıa deChomsky.

4.2. Gramaticas independientes del contexto

Una gramatica independiente del contexto (GIC), tambien llamadagramatica no-contextual o gramatica de tipo 2, es una cuadrupla,G = (V, Σ, S, P ) formada por:

1. Un alfabeto V cuyos elementos se llaman variables o sımbolos no-terminales.

Page 89: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.2. GRAMATICAS INDEPENDIENTES DEL CONTEXTO 83

2. Un alfabeto Σ cuyos elementos se llaman sımbolos terminales. Seexige que los alfabetos Σ y V sean disyuntos.

3. Una variable especial S ∈ V , llamada sımbolo inicial de la gramati-ca.

4. Un conjunto finito P ⊆ V × (V ∪ Σ)∗ de producciones o reglasde re-escritura. Una produccion (A, w) ∈ P de G se denota porA → w y se lee “A produce w”; su significado es: la variable A sepuede reemplazar (sobre-escribir) por la cadena w. En la produccionA → w, A se denomina la cabeza y w el cuerpo de la produccion.

Notacion y definiciones. Las variables se denotan con letras mayusculasA, B, C, . . . Los elementos de Σ o sımbolos terminales se denotan con letrasminusculas a, b, c, . . .. Si u, v ∈ (V ∪ Σ)∗ y A → w es una produccion, sedice que uwv se deriva directamente de uAv, lo cual se denota por

uAv =⇒ uwv.

Si se quiere hacer referencia a la gramatica G, se escribe

uAvG=⇒ uwv o uAv =⇒G uwv.

Si u1, u2, . . . , un son cadenas en (V ∪Σ)∗ y hay una sucesion de derivacionesdirectas

u1G=⇒ u2, u2

G=⇒ u3, . . . , un−1G=⇒ un

se dice que un se deriva de u1 y se escribe u1∗=⇒ un. La anterior sucesion

de derivaciones directas se representa como

u1 =⇒ u2 =⇒ u3 =⇒ · · · =⇒ un−1 =⇒ un

y se dice que es una derivacion o una generacion de un a partir deu1. Para toda cadena w se asume que w

∗=⇒ w; por lo tanto, u∗=⇒ v

significa que v se obtiene de u utilizando cero, una o mas produccionesde la gramatica. Analogamente, u

+=⇒ v significa que v se obtiene de uutilizando una o mas producciones.

El lenguaje generado por una gramatica G se denota por L(G) yse define como

L(G) := {w ∈ Σ∗ : S+=⇒ w}.

Un lenguaje L sobre un alfabeto Σ se dice que es un lenguaje indepen-diente del contexto (LIC) si existe una GIC G tal que L(G) = L. DosGIC G1 y G2 son equivalentes si L(G1) = L(G2).

Page 90: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

84 LENGUAJES LIC Y GRAMATICAS GIC

La denominacion “independiente del contexto” proviene del hecho decada produccion o regla de re-escritura A → w se aplica a la variable Aindependientemente de los caracteres que la rodean, es decir, independien-temente del contexto en el que aparece A.�

�Ejemplo Sea G una gramatica (V, Σ, S, P ) dada por:

V = {S}Σ = {a}P = {S → aS, S → λ}

Se tiene S =⇒ λ y

S =⇒ aS∗=⇒ a · · · aS =⇒ a · · · a.

Por consiguiente, L(G) = a∗.De manera mas simple, podemos presentar una gramatica GIC listando

sus producciones y separando con el sımbolo | las producciones de unamisma variable. Se supone siempre que las letras mayusculas representanvariables y las letras minusculas representan sımbolos terminales. Ası lagramatica del ejemplo anterior se presenta simplemente como:

S → aS | λ.

�Ejemplo La gramatica G = (V, Σ, S, P ) dada por:

V = {S, A}Σ = {a, b}P = {S → aS, S → bA, S → λ, A → bA, A → b, A → λ}

se puede presentar como {S → aS | bA | λ

A → bA | b | λ

Se tiene S =⇒ λ. Todas las demas derivaciones en G comienzan ya sea conla produccion S → aS o con S → bA. Por lo tanto, tenemos

S =⇒ aS∗=⇒ a · · · aS =⇒ a · · · a.

S =⇒ bA∗=⇒ b · · · bA =⇒ b · · · b.

S =⇒ aS∗=⇒ a · · · aS =⇒ a · · · abA

∗=⇒ a · · · ab · · · bA =⇒ a · · · ab · · · b.

Por consiguiente L(G) = a∗b∗.

Page 91: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.2. GRAMATICAS INDEPENDIENTES DEL CONTEXTO 85

Las siguientes gramaticas tambien generan el lenguaje a∗b∗ y son, porlo tanto, equivalentes a G:⎧⎪⎨⎪⎩

S → AB

A → aA | λ

B → bB | λ

⎧⎪⎨⎪⎩S → AB | λ

A → aA | a | λ

B → bB | b | λ

{S → aS | A

A → bA | λ

�Ejemplo La gramatica {

S → aS | aA

A → bA | b

genera el lenguaje a+b+. Otra gramatica equivalente es:⎧⎪⎨⎪⎩S → AB

A → aA | a

B → bB | b

�Ejemplo La gramatica{

S → 1A | 0A → 0A | 1A | λ

genera el lenguaje de los numeros naturales en numeracion binaria. Noteseque la unica cadena que comienza con 0, generable con esta gramatica, esla cadena 0.�

�Ejemplo Encontrar una GIC que genere el lenguaje 0∗10∗10∗ sobre

Σ = {0, 1}, es decir, el lenguaje de todas las cadenas con exac-tamente dos unos.

Solucion.

G :

{S → A1A1A

A → 0A | λ

Una gramatica equivalente es⎧⎪⎨⎪⎩S → 0S | 1A

A → 0A | 1B

B → 0B | λ

Page 92: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

86 LENGUAJES LIC Y GRAMATICAS GIC

�Ejemplo Encontrar una GIC que genere el lenguaje L = {aibi : i ≥ 0}

sobre Σ = {a, b}, el cual no es un lenguaje regular.Solucion.

S → aSb | λ.

�Ejemplo Encontrar una GIC que genere el lenguaje de todos los

palındromos sobre Σ = {a, b}, el cual no es lenguaje regular.

Solucion.S → aSa | bSb | a | b | λ.

�Ejemplo Encontrar una GIC que genere el lenguaje de todas las cadenas

sobre Σ = {a, b} que tienen un numero par de sımbolos.

Solucion.S → aSa | bSb | aSb | bSa | λ

Dos gramaticas equivalentes son:

{S → aaS | bbS | abS | baS | λ

{S → AAS | λ

A → a | b

�Ejemplo Encontrar una GIC que genere el lenguaje (ab ∪ ba)∗ sobre

Σ = {a, b}.Solucion.

S → abS | baS | λ.

�Ejemplo Demostrar que la gramatica G dada por:

S → (S)S | λ

genera el lenguaje de todas las cadenas de parentesis anidados y equilibra-dos; es decir, cadenas como (()), ()()(), (())((())).

Solucion. Es facil ver que G genera cadenas de parentesis anidados y equi-librados ya que cada aplicacion de la produccion S → (S)S da lugar a unpar de parentesis equilibrados.

Para establecer la direccion recıproca demostraremos por induccion so-bre n la siguiente afirmacion: “Toda cadena con 2n parentesis anidados yequilibrados se puede generar en G”.

n = 1: () se genera con S =⇒ (S)S2=⇒ ().

n = 2: ()() se genera con S =⇒ (S)S =⇒ (S)(S)S3=⇒ ()().

(()) se genera con S =⇒ (S)S =⇒ ((S)S)S3=⇒ (()).

Page 93: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.2. GRAMATICAS INDEPENDIENTES DEL CONTEXTO 87

Paso inductivo: una cadena con 2n parentesis anidados y equilibrados esde la forma (u) o (u)v donde u y v tienen estrictamente menos de 2n

parentesis anidados y equilibrados. Por hipotesis de induccion S+=⇒ u y

S+=⇒ v. Por lo tanto,

S =⇒ (S)S+=⇒ (u)S =⇒ (u).

S =⇒ (S)S+=⇒ (u)S

+=⇒ (u)v.

�Ejercicios de la seccion 4.2

➀ Encontrar GIC que generen los siguientes lenguajes sobre Σ = {a, b}:(i) El lenguaje de las cadenas que tienen un numero par de bes.

(ii) El lenguaje de las cadenas que comienzan con b y terminan conba.

(iii) a∗b ∪ a.

(iv) a∗b ∪ b∗a.

(v) (ab∗ ∪ b∗a)∗.

(vi) {aib2i : i ≥ 0}.(vii) {abiabi : i ≥ 1}.

➁ Encontrar GIC que generen los siguientes lenguajes sobre Σ = {a, b, c, d}:(i) {aibjcjdi : i, j ≥ 1}.(ii) {aibicjdj : i, j ≥ 1}.(iii) {aibjcjdi : i, j ≥ 1} ∪ {aibicjdj : i, j ≥ 1}.(iv) {aibjci+j : i ≥ 0, j ≥ 1}.

➂ Demostrar que la gramatica S → SS | (S) | λ tambien genera ellenguaje de todas las cadenas de parentesis anidados y equilibrados.

➃ Encontrar una gramatica que genere el lenguaje de todas las cadenasde parentesis circulares y/o angulares, anidados y equilibrados. Es de-cir cadenas como ([()]), ([])[()], [()([[()()]])], etc. Cadenascomo ([)] o [([)]] tienen parentesis equilibrados pero no anidadosy, por lo tanto, no pertenecen a este lenguaje.

!➄ Sea Σ = {0, 1}. Encontrar una GIC que genere el lenguaje de lascadenas que tienen igual numero de ceros que de unos.

Page 94: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

88 LENGUAJES LIC Y GRAMATICAS GIC

4.3. Arbol de una derivacion

Un arbol con raız es un tipo muy particular de grafo no-dirigido; esta for-mado por un conjunto de vertices o nodos conectados entre sı por arcos oaristas, con la siguiente propiedad: existe un nodo especial, llamado la raızdel arbol, tal que hay una unica trayectoria entre cualquier nodo y la raız.De esta manera, la raız se ramifica en nodos, llamados descendientesinmediatos, cada uno de los cuales puede tener, a su vez, descendientesinmediatos, y ası sucesivamente.

La propiedad que caracteriza a un arbol garantiza que un nodo puedetener 0, 1, o mas descendientes inmediatos pero un unico antecesor inmedia-to. El unico nodo que no tiene antecesores es la raız. Los nodos que tienendescendientes, excepto la raız, se denominan nodos interiores. Los nodosque no tienen descendientes se llaman hojas del arbol. En la terminologıausualmente utilizada, los descendientes de un nodo tambien se denominanhijos y los antecesores padres o ancestros. El numero de vertices (y porlo tanto, el numero de arcos) de un arbol puede ser infinito.�

�Ejemplo Algunos arboles con raız:

� �

� �

� �

� �

� �

� �

� � � � �

� � �

� � � � �

Page 95: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.3. ARBOL DE UNA DERIVACION 89

El arbol de una derivacion S∗=⇒ w, w ∈ Σ∗, en una GIC es un arbol

con raız que se forma de la siguiente manera:

1. La raız esta etiquetada con el sımbolo inicial S.

2. Cada nodo interior esta etiquetado con un no terminal.

3. Cada hoja esta etiquetada con terminal o con λ.

4. Si en la derivacion se utiliza la produccion A → s1s2 · · · sk, dondesi ∈ (V ∪Σ)∗, el nodo A tiene k descendientes inmediatos: s1, s2,. . . ,sk, escritos de izquierda a derecha.

De esta forma, las hojas del arbol de derivacion de S∗=⇒ w son precisamen-

te los sımbolos de la cadena w, leıdos de izquierda a derecha y, posiblemente,algunos λ.

La busqueda de un arbol de derivacion para una cadena w ∈ Σ∗ sedenomina analisis sintactico de w. Los arboles de derivacion tambien sesuelen llamar arboles sintacticos o arboles de analisis sintactico.�

�Ejemplo Sea G la gramatica:⎧⎪⎨⎪⎩

S → AB | AaB

A → aA | a

B → bBa | b

El arbol de la derivacion

S =⇒ AB =⇒ AbBa =⇒ abBa =⇒ abba

es

S

A �

a �

�B

b � �B

b �

�a

El anterior es tambien el arbol de la derivacion

S =⇒ AB =⇒ aB =⇒ abBa =⇒ abba.

Page 96: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

90 LENGUAJES LIC Y GRAMATICAS GIC

Esto muestra que dos derivaciones diferentes pueden tener el mismo arbolde derivacion ya que en el arbol aparecen las producciones utilizadas perono el orden en que han sido aplicadas.�

�Ejemplo Sea G la gramatica:⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩

S → BAa

A → bBC | a

B → bB | b | λ

C → aB | aa

El arbol de la derivacion

S =⇒ BAa =⇒ bAa =⇒ bbBCa =⇒ bbbCa =⇒ bbbaBa =⇒ bbbaa

es

S

B �

b �

�A

b � B �

b �

�C

a � �B

λ �

�a

�Ejercicios de la seccion 4.3

➀ Sea G siguiente gramatica:

G :

⎧⎪⎨⎪⎩S −→ aS | AaB

A −→ aA | a

B −→ bBbB | b

Encontrar una derivacion de la cadena aaaabbbb y hallar el arbol detal derivacion.

Page 97: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.4. GRAMATICAS AMBIGUAS 91

➁ Sea G la siguiente gramatica:

G :

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → ABC | BaC | aB

A → Aa | a

B → BAB | bab

C → cC | λ

Encontrar derivaciones de las cadenas w1 = abab, w2 = babacc, w3 =ababababc y hallar los arboles de tales derivaciones.

4.4. Gramaticas ambiguas

La nocion de ambiguedad se puede presentar en terminos de arboles sintacti-cos o en terminos de ciertas derivaciones “estandares”: las llamadas deri-vaciones a izquierda.

4.4.1 Definicion. Una derivacion se llama derivacion a izquierda (oderivacion mas a la izquierda) si en cada paso se aplica una produccion ala variable que esta mas a la izquierda.

Una derivacion cualquiera se puede transformar siempre en una unicaderivacion a izquierda aplicando, en cada paso, producciones a la variableque este mas a la izquierda.

4.4.2 Definicion. Una GIC G es ambigua si existe una cadena w ∈ Σ∗

para la cual hay dos derivaciones a izquierda diferentes. Equivalentemente,una GIC G es ambigua si existe una cadena w ∈ Σ∗ con dos arboles dederivacion diferentes.

�Ejemplo Considerese el alfabeto Σ =

{0, 1, +, ∗, (, )}. La siguiente

gramatica Gsp para generar numeros naturales, sumas y pro-ductos, en numeracion binaria, es ambigua:

S → S + S | S ∗ S | (S) | 0S | 1S | 0 | 1

La cadena 1 + 1 ∗ 0 tiene dos derivaciones a izquierda diferentes:

S =⇒ S + S =⇒ 1 + S =⇒ 1 + S ∗ S =⇒ 1 + 1 ∗ S =⇒ 1 + 1 ∗ 0.

S =⇒ S ∗ S =⇒ S + S ∗ S =⇒ 1 + S ∗ S =⇒ 1 + 1 ∗ S =⇒ 1 + 1 ∗ 0.

Los arboles de derivacion correspondientes a las anteriores derivaciones son:

Page 98: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

92 LENGUAJES LIC Y GRAMATICAS GIC

S

S �

1

+�S

S �

1

∗�S

0

S

S �

S �

1

+�S

1

∗�S

0

En la gramatica Gsp la ambiguedad se puede eliminar introduciendo parente-sis:

S → (S + S) | (S ∗ S) | (S) | 0S | 1S | 0 | 1

Aunque la introduccion de parentesis elimina la ambiguedad, las expresio-nes generadas tienen un excesivo numero de parentesis lo que dificulta elanalisis sintactico (en un compilador, por ejemplo). Lo mas corriente enestos casos es utilizar gramaticas ambiguas como Gsp siempre y cuando seestablezca un orden de precedencia para los operadores. Lo usual es esta-blecer que ∗ tenga una mayor orden de precedencia que +, es decir, porconvencion ∗ actua antes que +. Por ejemplo, la expresion 1 ∗ 1 + 0 se in-terpreta como (1∗1)+0 y la expresion 10+11∗110+1 se interpreta como10 + (11 ∗ 110) + 1.�

�Ejemplo La siguiente gramatica es ambigua:

G :

{S → aSA | λ

A → bA | λ

G es ambigua porque para la cadena aab hay dos derivaciones a izquierdadiferentes.

S =⇒ aSA =⇒ aaSAA =⇒ aaAA =⇒ aaA =⇒ aabA =⇒ aab.

S =⇒ aSA =⇒ aaSAA =⇒ aaAA =⇒ aabAA =⇒ aabA =⇒ aab.

Los arboles de derivacion para estas dos derivaciones son:

Page 99: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.4. GRAMATICAS AMBIGUAS 93

S

a � S �

a � S �

λ �

A �

λ �

�A

b � A �

λ �

S

a � S �

a � S �

λ �

�A

b � �A

λ �

A

λ �

El lenguaje generado por esta gramatica es a+b∗ ∪ λ. Se puede construiruna gramatica no-ambigua que genere el mismo lenguaje:

G′ :

⎧⎪⎨⎪⎩S → AB | λ

A → aA | a

B → bB | λ

Para ver que la gramatica G′ no es ambigua se puede razonar de la siguientemanera: la cadena λ se puede generar de manera unica con la derivacionS =⇒ λ. Una derivacion de una cadena no vacıa debe comenzar aplicando laproduccion S → AB; la variable A genera cadenas de aes de manera unicay B genera cadenas de bes tambien de manera unica. Por consiguiente, todacadena tiene una unica derivacion a izquierda.

✎ Existen lenguajes independientes del contexto para los cuales todagramatica es ambigua. Tales lenguajes se llaman inherentementeambiguos. Un ejemplo es el lenguaje

L = {aibicjdj : i, j ≥ 1} ∪ {aibjcjdi : i, j ≥ 1}.

sobre el alfabeto {a, b, c, d}. En el Ejercicio ➁ (iii) de la seccion 4.2se pidio mostrar que L es un LIC. La demostracion de que L es in-herentemente ambiguo es bastante intrincada y puede encontrarseen la referencia [HU1].

✎ No existe ningun algoritmo que permita determinar si una GICdada es o no ambigua. Con la terminologıa de la seccion 3.6, estoquiere decir que el problema de la ambiguedad para GIC es in-decidible. Este no es un resultado trivial; para su demostracionremitimos al estudiante a la referencia [HMU].

Page 100: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

94 LENGUAJES LIC Y GRAMATICAS GIC

�Ejercicios de la seccion 4.4

➀ Mostrar que las siguientes gramaticas son ambiguas:

(i) S → aSbS | bSaS | λ.

(ii) S → abS | abScS | λ.

➁ Mostrar que las gramaticas G1 y G2 siguientes son ambiguas. Encada caso, encontrar el lenguaje generado por la gramatica y construirluego una gramatica no-ambigua que genere el mismo lenguaje.

G1 :

⎧⎪⎨⎪⎩S → AaSbB | λ

A → aA | a

B → bB | λ

G2 :

⎧⎪⎨⎪⎩S → ASB | AB

A → aA | a

B → bB | λ

➂ Encontrar una GIC no-ambigua que genere el lenguaje a∗b(a ∪ b)∗.

4.5. Gramaticas para lenguajes de programacion

La sintaxis de los lenguajes de programacion, o al menos una gran porcionde esta, se presenta usualmente por medio de gramaticas GIC. En tales ca-sos se dice que el lenguaje esta en la forma Backus-Naur o, simplemente,en la forma BNF. Los lenguajes que estan en BNF ofrecen ventajas sig-nificativas para el diseno de analizadores sintacticos en compiladores.�

�Ejemplo A continuacion se exhibe una gramatica para generar los nume-

ros reales sin signo, similar a la utilizada en muchos lenguajesde programacion. Las variables aparecen encerradas entre parentesis 〈 〉 y〈real〉 es la variable inicial de la gramatica. El alfabeto de terminales es{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ., +, -, E}. En el contexto de los lenguajes de pro-gramacion los terminales se denominan tambien componentes lexicos,lexemas o tokens.

〈real〉 → 〈dıgitos〉〈decimal〉〈exp〉〈dıgitos〉 → 〈dıgitos〉〈dıgitos〉 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9〈decimal〉 → .〈dıgitos〉 | λ

〈exp〉 → E〈dıgitos〉 | E+〈dıgitos〉 | E-〈dıgitos〉 | λ

Page 101: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.5. GRAMATICAS PARA LENGUAJES DE PROGRAMACION 95

Esta gramatica genera expresiones como 47.236, 321.25E+35, 0.8E9 y0.8E+9. Las partes decimal y exponencial son “opcionales” debido a lasproducciones 〈decimal〉 → λ y 〈exp〉 → λ, pero no se generan expresionescomo .325, E125, 42.5E ni 0.1E+.�

�Ejemplo Gramatica para generar los identificadores en lenguajes de

programacion, es decir, cadenas cuyo primer sımbolo es una le-tra que va seguida de letras y/o dıgitos. Las variables aparecen encerradasentre parentesis 〈 〉 e 〈identificador〉 es la variable inicial de la gramati-ca. La variable 〈lsds〉 representa “letras o dıgitos”. Los terminales en estagramatica son las letras, minusculas o mayusculas, y los dıgitos.

〈identificador〉 → 〈letra〉〈lsds〉〈lsds〉 → 〈letra〉〈lsds〉 | 〈dıgito〉〈lsds〉 | λ

〈letra〉 → a | b | c| · · · | x | y | z | A | B | C | · · · | Y | Z〈dıgito〉 → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

�Ejercicios de la seccion 4.5

➀ Con la gramatica del primer ejemplo de esta seccion hacer derivacio-nes y arboles de derivacion para las cadenas 235.101E+25 y 0.01E-12.

➁ Encontrar una GIC, con una sola variable, para generar los identifi-cadores, es decir, el lenguaje del segundo ejemplo de esta seccion.

➂ Una gramatica similar a la siguiente se usa en muchos lenguajes deprogramacion para generar expresiones aritmeticas formadas por su-mas y productos de numeros en binario:

〈expresion〉 → 〈termino〉 | 〈expresion〉+〈termino〉〈termino〉 → 〈factor〉 | 〈termino〉*〈factor〉〈factor〉 → 〈numero〉 | (〈expresion〉)〈numero〉 → 1〈numero〉 | 0〈numero〉 | 0 | 1

El alfabeto de terminales de esta gramatica es {0, 1, +, *, (, )}.(i) Hacer derivaciones y arboles de derivacion para las siguientes

cadenas:10+101*10(101+10*10)(10+111)*(100+10*101+1111)

(ii) Demostrar que esta gramatica no es ambigua.

Page 102: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

96 LENGUAJES LIC Y GRAMATICAS GIC

4.6. Gramaticas para lenguajes naturales �Para los lenguajes naturales, como el espanol, se pueden presentar GICque generen las frases u oraciones permitidas en la comunicacion habladao escrita. Una GIC para generar una porcion de las oraciones del idiomaespanol se presenta a continuacion; las variables aparecen encerradas en-tre parentesis 〈 〉 y 〈Oracion〉 es la variable inicial de la gramatica. Losterminales son las palabras propias del idioma.

〈Oracion〉 → 〈Sujeto〉〈Verbo〉〈Compl. Directo〉 |〈Sujeto〉〈Verbo〉〈Compl. Directo〉〈Compl. Circunst.〉 |〈Sujeto〉〈Verbo〉〈Compl. Indirecto〉〈Compl. Circunst.〉

〈Sujeto〉 → 〈Sustant.〉 | Juan | Pedro | Marıa | · · ·〈Compl. Directo〉 → 〈Prepos.〉〈Artıculo〉〈Sustant.〉 |

〈Prepos.〉〈Artıculo〉〈Sustant.〉〈Prepos.〉〈Artıculo〉〈Sustant.〉 |〈Prepos.〉〈Artıculo〉〈Sustant.〉〈Prepos.〉〈Sustant.〉〈Adjetivo〉

〈Compl. Indirecto〉 → 〈Prepos.〉〈Artıculo〉〈Sustant.〉 |〈Prepos.〉〈Artıculo〉〈Sustant.〉〈Adjetivo〉 |〈Prepos.〉〈Sustant.〉〈Prepos.〉〈Sustant.〉

〈Compl. Circunst.〉→ 〈Prepos.〉〈Artıculo〉〈Sustant.〉 |〈Prepos.〉〈Artıculo〉〈Sustant.〉〈Adjetivo〉 | 〈Adverbio〉 |〈Prepos.〉〈Artıculo〉〈Sustant.〉〈Prepos.〉〈Artıculo〉〈Sustant.〉

〈Sustant.〉 → casa | perro | libro | lapiz | mesa | λ | · · ·〈Adjetivo〉 → rojo | azul | inteligente | malvado | util | λ | · · ·〈Prepos.〉 → a | ante | bajo | con | contra | de | desde | en | entre | hacia |

hasta | para | por | segun | sin | so | sobre | tras | λ | · · ·〈Artıculo〉 → el | la | lo | las | los | un | uno | una | unas | unos | λ

〈Adverbio〉 →muy | bastante | poco | demasiado | lento | lentamente |rapido | rapidamente | λ | · · ·

〈Verbo〉 → escribir | escribo | escribe | escribes | escriben | escribı |escribiste | escribieron | · · ·

Los lenguajes naturales son casi siempre ambiguos porque existen muchasreglas de produccion, lo que da lugar a multiples arboles de derivacion paraciertas oraciones.�

�Ejemplo La oracion

Juan mira a una persona con un telescopio

Page 103: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.6. GRAMATICAS PARA LENGUAJES NATURALES � 97

es ambigua. La ambiguedad surge porque las producciones permiten dosarboles de derivacion:

〈Oracion〉

〈Sujeto〉

Juan

〈Verbo〉

mira

〈Compl.Indirecto〉

〈Prepos.〉

a

〈Art.〉

una

〈Sustant.〉

persona

〈Compl. Circunst.〉

〈Prepos.〉

con

〈Art.〉

un

〈Sustant.〉

telescopio

〈Oracion〉

〈Sujeto〉

Juan

〈Verbo〉

mira

〈Compl. Directo〉

〈Prepos.〉

a

〈Art.〉

una

〈Sustant.〉

persona

〈Prepos.〉

con

〈Art.〉

un

〈Sustant.〉

telescopio�

�Ejercicios de la seccion 4.6

Usando la gramatica exhibida en la presente seccion, mostrar que las si-guientes oraciones del idioma espanol son ambiguas. En cada caso hacer losarboles de derivacion.

➀ Marıa escucha la conversacion tras la puerta.

➁ Pedro ve la television en la mesa.

➂ Manuel observa a la chica con vestido rojo.

➃ Ana sono con un gato en pijama.

Page 104: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

98 LENGUAJES LIC Y GRAMATICAS GIC

4.7. Gramaticas regulares

4.7.1 Definicion. Una GIC se llama regular si sus producciones son dela forma {

A → aB, a ∈ Σ, B ∈ V.

A → λ.

Los siguientes teoremas establecen la conexion entre los lenguajes regularesy las gramaticas regulares.

4.7.2 Teorema. Dado un AFD M = (Q, Σ, q0, F, δ), existe una GIC regu-lar G = (V, Σ, S, P ) tal que L(M) = L(G).

Demostracion. Sea V = Q y S = q0. Las producciones de G estan dadaspor {

q → ap si y solo si δ(q, a) = p.

q → λ si y solo si q ∈ F.

Demostraremos primero que para toda w ∈ Σ∗, w �= λ y para todo p, q ∈ Qse tiene

(1) Si δ(q, w) = p entonces q∗=⇒ wp.

La demostracion de (1) se hace por induccion sobre w. Si w = a y δ(q, a) =p, entonces q → ap es una produccion de G y obviamente se concluyeq =⇒ ap. Para el paso inductivo, sea δ(q, wa) = p′. Entonces

p′ = δ(q, wa) = δ(δ(q, w), a) = δ(p, a)

donde δ(q, w) = p. Por hipotesis de induccion q∗=⇒ wp y como δ(p, a) = p′,

entonces p =⇒ ap′. Por lo tanto,

q∗=⇒ wp =⇒ wap′

que era lo que se querıa demostrar.

A continuacion demostraremos el recıproco de (1): para toda w ∈ Σ∗,w �= λ y para todo p, q ∈ Q se tiene

(2) Si q∗=⇒ wp entonces δ(q, w) = p.

La demostracion de (2) se hace por induccion sobre la longitud de la deri-vacion q

∗=⇒ wp, es decir, por el numero de pasos o derivaciones directasque hay en q

∗=⇒ wp. Si la derivacion tiene longitud 1, necesariamenteq =⇒ ap lo cual significa que δ(q, a) = p. Para el paso inductivo, supongase

Page 105: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.7. GRAMATICAS REGULARES 99

que q∗=⇒ wp tiene longitud n + 1, w = w′a y en el ultimo paso se aplica la

produccion p′ → ap. Entonces

q∗=⇒ w′p′ =⇒ w′ap = wp.

Por hipotesis de induccion, δ(q, w′) = p′ y por consiguiente

δ(q, w) = δ(q, w′a) = δ(δ(q, w′), a) = δ(p′, a) = p,

que era lo que se querıa demostrar.Como consecuencia de (1) y (2) se puede ahora demostrar que

(3) Para toda cadena w ∈ Σ∗, δ(q0, w) ∈ F si y solo si S∗=⇒G w,

lo cual afirma que L(M) = L(G). En efecto, si w = λ, δ(q0, w) ∈ F si y solosi q0 ∈ F . Por lo tanto, q0 → λ es una produccion de G. Ası que S =⇒ λ.Recıprocamente, si S

∗=⇒ λ, necesariamente S =⇒ λ, q0 ∈ F y δ(q0, λ) ∈ F .

Sea ahora w �= λ. Si δ(q0, w) = p ∈ F , por (1) se tiene q0

∗=⇒ w, o sea,S

∗=⇒ w. Recıprocamente, si S∗=⇒G w, entonces q0

∗=⇒G wp =⇒ w dondep → λ. Utilizando (2), se tiene δ(q0, w) = p ∈ F .�

�Ejemplo El siguiente AFD M , presentado en el ultimo ejemplo de la

seccion 2.3, acepta las cadenas que terminan en b:

> q0 q1

a bb

a

M induce la gramatica regular

G :

{q0 → aq0 | bq1

q1 → bq1 | aq0 | λ

que cumple L(M) = L(G). Las variables de G son q0 y q1, siendo q0 lavariable inicial.�

�Ejemplo Para el lenguaje regular 0∗10∗10∗, sobre Σ = {0, 1} (el lenguaje

de todas las cadenas con exactamente dos unos), vimos en laseccion 4.2 una gramatica que lo genera:{

S → A1A1A

A → 0A | λ

Esta gramatica no es regular, pero por medio del AFD

Page 106: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

100 LENGUAJES LIC Y GRAMATICAS GIC

> S A B

0 0 01 1

y el Teorema 4.7.2 se puede obtener una GIC regular que genere 0∗10∗10∗:⎧⎪⎨⎪⎩S → 0S | 1A

A → 0A | 1B

B → 0B | λ

4.7.3 Teorema. Dada una GIC regular G = (V, Σ, S, P ), existe un AFNM = (Q, Σ, q0, F, Δ) tal que L(M) = L(G).

Demostracion. Se construye M = (Q, Σ, q0, F, Δ) haciendo Q = V , q0 = Sy {

B ∈ Δ(A, a) para cada produccion A → aB.

A ∈ F si A → λ.

Usando razonamientos similares a los del Teorema 4.7.2, se puede demostrarque

A∗=⇒G wB si y solo si B ∈ Δ(A, w), para todo w ∈ Σ∗, w �= λ,

de donde L(M) = L(G). Los detalles se dejan como ejercicio.

4.7.4 Corolario. 1. Un lenguaje es regular si y solamente si es gene-rado por una gramatica regular.

2. Todo lenguaje regular es un LIC (pero no viceversa).

Demostracion.

1. Se sigue del Teorema 4.7.2, el Teorema 4.7.3 y del Teorema de Kleene.

2. Se sigue de la parte 1. Por otro lado, {aibi : i ≥ 0} es LIC pero no esregular.

4.7.5 Definicion. Una GIC se llama regular por la derecha si susproducciones son de la forma{

A → wB, w ∈ Σ∗, B ∈ V,

A → λ

Page 107: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.7. GRAMATICAS REGULARES 101

4.7.6 Teorema. Las gramaticas regulares y las gramaticas regulares porla derecha generan los mismos lenguajes, es decir, los lenguajes regulares.Dicho de otra manera, la definicion de gramatica regular es equivalente ala definicion de gramatica regular por la derecha.

Demostracion. Una gramatica regular es obviamente regular por la derecha.Recıprocamente, en una gramatica regular por la derecha G = (V, Σ, S, P ),una produccion de la forma

A → a1a2 · · · anB

donde los ai ∈ Σ, n ≥ 2, B ∈ V , se puede simular con producciones de laforma A → aB y A → λ. En efecto, se introducen n − 1 variables nuevasA1, . . . , An−1 cuyas unicas producciones son:

A → a1A1

A1 → a2A2...

An−1 → anB

De esta manera se puede construir una gramatica regular equivalente aG.�

�Ejercicios de la seccion 4.7

➀ Encontrar GIC regulares que generen los siguientes lenguajes:

(i) ab∗a.

(ii) (ab ∪ ba)∗.

(iii) a+b ∪ b+a∗b.

(iv) 0∗(10∗ ∪ 01∗).

➁ Una GIC se llama regular por la izquierda si sus producciones sonde la forma: {

A → Bw, w ∈ Σ∗, B ∈ V

A → λ

Demostrar que las gramaticas regulares y las gramaticas regulares porla izquierda generan los mismos lenguajes.

!➂ Completar los detalles de la demostracion del Teorema 4.7.3.

Page 108: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

102 LENGUAJES LIC Y GRAMATICAS GIC

4.8. Eliminacion de las variables inutiles

En una GIC puede haber dos tipos de variables inutiles: aquellas que nuncaaparecen en el curso de una derivacion y aquellas que no se pueden convertiren cadenas de terminales. A continuacion se precisan estos conceptos.

4.8.1. Definiciones.

(i) Una variable A es alcanzable o accesible si existen u, v ∈ (V ∪Σ)∗

tales que S∗=⇒ uAv. La variable inicial S es alcanzable por definicion.

(ii) Una variable A es terminable si existe w ∈ Σ∗ tal que A∗=⇒ w. En

particular, si A → λ es una produccion entonces A es terminable.

(iii) A es una variable inutil si no es alcanzable o no es terminable.

Existen algoritmos para detectar todas las variables inutiles de una GICque permiten construir una gramatica G′ equivalente a una gramatica Gdada, de tal manera que G′ no tenga variables inutiles.

4.8.2. Algoritmo para encontrar las variables terminables.

El siguiente algoritmo sirve para encontrar todas las variables terminablesde una GIC.

TERM1 :={A ∈ V : Existe una produccion de la forma A → w,w ∈ Σ∗}.

TERMi+1 := TERMi ∪{A ∈ V : ∃ produccion A → w, w ∈ (Σ ∪ TERMi)∗

}.

Obtenemos una sucesion creciente de conjuntos de variables:

TERM1 ⊆ TERM2 ⊆ TERM3 ⊆ · · ·

Como el conjunto de variables es finito, existe k tal que

TERMk = TERMk+1 = TERMk+2 = · · ·

El conjunto TERM de variables terminables es entonces

TERM :=⋃i≥1

TERMi

El anterior algoritmo se puede presentar de la siguiente forma:

Page 109: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.8. ELIMINACION DE LAS VARIABLES INUTILES 103

INICIALIZAR:

TERM :={A ∈ V : ∃ produccion A → w,w ∈ Σ∗}

REPETIR:

TERM := TERM ∪ {A ∈ V : ∃ produccion A → w,w ∈ (Σ ∪ TERM)∗

}HASTA:

No se anaden nuevas variables a TERM

�Ejemplo Encontrar las variables terminables de la siguiente gramatica.

G :

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

S → ACD | bBd | ab

A → aB | aA | C

B → aDS | aB

C → aCS | CB | CC

D → bD | ba

E → AB | aDb

Solucion.

TERM1 = {S, D}.TERM2 = {S, D} ∪ {B, E} = {S, D, B, E}.TERM3 = {S, D, B, E} ∪ {A} = {S, D, B, E, A}.TERM4 = {S, D, B, E, A} ∪ { } = {S, D, B, E, A}.TERM = {S, A, B, D, E}.

Conjunto de variables no terminables: {C}.

4.8.3. Algoritmo para encontrar las variables alcanzables.

El siguiente algoritmo sirve para encontrar todas las variables alcanzablesde una GIC.

ALC1 := {S}.ALCi+1 := ALCi ∪ {A ∈ V : ∃ produc. B → uAv,B ∈ ALCi u, v ∈ (V ∪ Σ)∗}.Obtenemos una sucesion creciente de conjuntos de variables:

ALC1 ⊆ ALC2 ⊆ ALC3 ⊆ · · ·Como el conjunto de variables es finito, existe k tal que

ALCk = ALCk+1 = ALCk+2 = · · ·

Page 110: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

104 LENGUAJES LIC Y GRAMATICAS GIC

El conjunto ALC de variables alcanzables es entonces

ALC =⋃i≥1

ALCi

El anterior algoritmo se puede presentar de la siguiente forma:

INICIALIZAR:

ALC := {S}REPETIR:

ALC := ALC ∪ {A ∈ V : ∃ produccion B → uAv, B ∈ ALC y

u, v ∈ (V ∪ Σ)∗}

HASTA:

No se anaden nuevas variables a ALC

�Ejemplo Encontrar las variables alcanzables de la siguiente gramatica.

G :

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

S → aS | AaB | ACS

A → aS | AaB | AC

B → bB | DB | BB

C → aDa | ABD | ab

D → aD | DD | ab

E → FF | aa

F → aE | EF

Solucion.

ALC1 = {S}.ALC2 = {S} ∪ {A, B, C} = {S, A, B, C}.ALC3 = {S, A, B, C} ∪ {D} = {S, A, B, C, D}.ALC4 = {S, A, B, C, D} ∪ { } = {S, A, B, C, D}ALC = {S, A, B, C, D}.

Conjunto de variables no alcanzables: {E, F}.Dada una GIC G, los dos algoritmos anteriores (algoritmo 4.8.2 y algo-

ritmo 4.8.3) se pueden llevar a cabo en dos ordenes diferentes:

(I) GAlgoritmo−−−−−−−−→ Eliminar variables

no-terminablesG1

Algoritmo−−−−−−−−→ Eliminar variablesno-alcanzables

G2

Page 111: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.8. ELIMINACION DE LAS VARIABLES INUTILES 105

(II) GAlgoritmo−−−−−−−−→ Eliminar variables

no-alcanzablesG3

Algoritmo−−−−−−−−→ Eliminar variablesno-terminables

G4

Esto da lugar a las siguientes preguntas:

(1) ¿Es G2 = G4?

(2) ¿G2 tiene variables inutiles?

(3) ¿G4 tiene variables inutiles?

El siguiente ejemplo muestra que la respuesta a la pregunta (1) es no y queal realizar los algoritmos en el orden (II) pueden permanecer en G4 algunasvariables inutiles.�

�Ejemplo Considerese la siguiente gramatica G.

G :

{S → a | AB

A → aA | λ

Aplicacion de los algoritmos en el orden (I):Variables terminables de G: TERM= {S, A}.

G1 :

{S → a

A → aA | λ

Variables alcanzables de G1: ALC= {S}.

G2 :{S → a

Se tiene que L(G2) = {a}.Aplicacion de los algoritmos en el orden (II):Variables alcanzables de G: ALC={S, A, B}.

G3 :

{S → a | AB

A → aA | λ

Variables terminables de G3: TERM={S, A}.

G4 :

{S → a

A → aA | λ

Se observa que en G4, A no es alcanzable. Ademas, G2 �= G4.

Page 112: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

106 LENGUAJES LIC Y GRAMATICAS GIC

No obstante, si los algoritmos se llevan a cabo en el orden (I) la gramaticaG2 ya no tiene variables inutiles. Nos podemos convencer de eso observandoque las variables alcanzables obtenidas al finalizar el procedimiento siguensiendo terminables. Mas precisamente, si una variable A permanece al fi-nalizar el procedimiento completo, sera es alcanzable, y si la derivacionA

∗=⇒ w, con w ∈ Σ∗, se podıa hacer antes de eliminar las variables noalcanzables, tambien se podra realizar en la gramatica final ya que todaslas variables que aparezcan en esa derivacion seran alcanzables.�

�Ejemplo Eliminar las variables inutiles de la siguiente gramatica G.

G :

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

S → SBS | BC | Bb

A → AA | aA

B → aBCa | b

C → aC | ACC | abb

D → aAB | ab

E → aS | bAA

F → aDb | aF

Solucion. Ejecutamos los algoritmos en el orden (I):

TERM1 = {B, C, D}.TERM2 = {B, C, D} ∪ {S, F}.TERM3 = {B, C, D, S, F} ∪ {E} = {B, C, D, S, F, E}.TERM4 = {B, C, D, S, F, E} ∪ { }.

La unica variable no-terminable de G es A. Por lo tanto, G es equivalentea la siguiente gramatica G1:

G1 :

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

S → SBS | BC | Bb

B → aBCa | b

C → aC | abb

D → ab

E → aS

F → aDb | aF

Variables alcanzables de G1:

ALC1 = {S}.ALC2 = {S} ∪ {B, C}.ALC3 = {S, B, C} ∪ { }.

Page 113: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.9. ELIMINACION DE LAS PRODUCCIONES λ 107

Las variables D, E, F son no alcanzables. Por lo tanto, G es equivalentea la siguiente gramatica G2, que no tiene variables inutiles.

G2 :

⎧⎪⎨⎪⎩S → SBS | BC | Bb

B → aBCa | b

C → aC | abb

�Ejercicios de la seccion 4.8

➀ Eliminar las variables inutiles de la siguiente gramatica:

G :

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

S → SS | SBB | CCE

A → aE | bE

B → bB | Db

C → aC | bB

D → aDb | ab | λ

E → aA | bB

➁ Eliminar las variables inutiles de la siguiente gramatica:

G :

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

S → EA | SaBb | aEb

A → DaD | bD

B → bB | Ab | λ

C → aC | bBC

D → aEb | ab

E → aA | bB | λ

F → Fb | Fa | a

4.9. Eliminacion de las producciones λ

4.9.1. Definiciones.

(i) Una produccion de la forma A → λ se llama produccion λ.

(ii) Una variable A se llama anulable si A∗=⇒ λ.

4.9.2. Algoritmo para encontrar las variables anulables.

Page 114: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

108 LENGUAJES LIC Y GRAMATICAS GIC

ANUL1 := {A ∈ V : A → λ es una produccion}.ANULi+1 := ANULi ∪

{A ∈ V : ∃ produccion A → w, w ∈ (ANULi)∗

}.

Obtenemos una sucesion creciente de conjuntos de variables:

ANUL1 ⊆ ANUL2 ⊆ ANUL3 ⊆ · · ·Como el conjunto de variables es finito, existe k ∈ N tal que

ANULk = ANULk+1 = ANULk+2 = · · ·El conjunto ANUL de variables anulables es entonces

ANUL :=⋃i≥1

ANULi

El anterior algoritmo se puede presentar de la siguiente forma:

INICIALIZAR:

ANUL := {A ∈ V : A → λ es una produccion}REPETIR:

ANUL := ANUL ∪ {A ∈ V : ∃ prod. A → w, w ∈ (ANUL)∗

}HASTA:

No se anaden nuevas variables a ANUL

4.9.3 Teorema. Dada una GIC G, se puede construir una GIC G′ equi-valente a G sin producciones λ, excepto (posiblemente) S → λ.

Demostracion. Una vez que haya sido determinado el conjunto ANUL devariables anulables, por medio del algoritmo 4.9.2, las producciones de λse pueden eliminar (excepto S → λ) anadiendo nuevas producciones quesimulen el efecto de las producciones λ eliminadas. Mas concretamente, porcada produccion A → u de G se anaden las producciones de la forma A → vobtenidas suprimiendo de la cadena u una, dos o mas variables anulablespresentes, de todas las formas posibles. La gramatica G′ ası obtenida esequivalente a la gramatica original G.�

�Ejemplo Eliminar las producciones λ de la siguiente gramatica G.

G :

⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

S → AB | ACA | ab

A → aAa | B | CD

B → bB | bA

C → cC | λ

D → aDc | CC | ABb

Page 115: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.9. ELIMINACION DE LAS PRODUCCIONES λ 109

Solucion. Primero encontramos las variables anulables de G por medio delalgoritmo 4.9.2:

ANUL1 = {C}.ANUL2 = {C} ∪ {D} = {C, D}.ANUL3 = {C, D} ∪ {A} = {C, D, A}.ANUL4 = {C, D, A} ∪ {S} = {C, D, A, S}.ANUL5 = {C, D, A, S} ∪ { } = {C, D, A, S}.

Al eliminar de G la producciones λ (la unica es C → λ) se obtiene lasiguiente gramatica equivalente a G:

G′ :

⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

S → AB | ACA | ab | B | CA | AA | AC | A | C | λ

A → aAa | B | CD | aa | C | D

B → bB | bA | b

C → cC | c

D → aDc | CC | ABb | ac | C | Bb

�Ejercicios de la seccion 4.9

➀ Eliminar las producciones λ de la siguiente gramatica:

G :

⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

S −→ BCB

A −→ aA | ab

B −→ bBa | A | DC

C −→ aCb | D | b

D −→ aB | λ

➁ Eliminar las producciones λ de la siguiente gramatica:

G :

⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

S → EA | SaBb | aEb

A → DaD | bD | BEB

B → bB | Ab | λ

D → aEb | ab

E → aA | bB | λ

Page 116: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

110 LENGUAJES LIC Y GRAMATICAS GIC

4.10. Eliminacion de las producciones unitarias

4.10.1. Definiciones.

(i) Una produccion de la forma A → B donde A y B son variables, sellama produccion unitaria.

(ii) El conjunto unitario de una variable A (tambien llamado conjuntocadena de A) se define de la siguiente manera:

UNIT(A) := {X ∈ V : ∃ una derivacion A∗=⇒ X

que usa unicamente producciones unitarias}.

Por definicion, A ∈ UNIT(A).

4.10.2. Algoritmo para encontrar las producciones unitarias.

El siguiente algoritmo sirve para encontrar el conjunto unitario UNIT(A)de una variable A.

UNIT1(A) := {A}.UNITi+1(A) := UNITi(A) ∪ {X ∈ V : ∃ produccion Y → X, Y ∈ UNITi(A)}.Para el conjunto de producciones unitarias se tiene que:

UNIT1(A) ⊆ UNIT2(A) ⊆ UNIT3(A) ⊆ · · ·

Puesto que el conjunto de variables es finito, la anterior es una sucesionfinita y se tiene

UNIT(A) =⋃i≥1

UNITi(A)

El anterior algoritmo se puede representar de la siguiente forma:

INICIALIZAR:

UNIT(A):={A}REPETIR:

UNIT(A):= UNIT(A) ∪ {X ∈ V : ∃ una produccion Y → X

con Y ∈ UNIT(A)}

HASTA:

No se anaden nuevas variables UNIT(A)

Page 117: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.10. ELIMINACION DE LAS PRODUCCIONES UNITARIAS 111

4.10.3 Teorema. Dada una GIC G, se puede construir una GIC G′ equi-valente a G sin producciones unitarias.

Demostracion. Las producciones unitarias de G se pueden eliminar anadien-do para cada variable A de G las producciones (no unitarias) de las variablescontenidas en el conjunto unitario UNIT(A). La gramatica G′ ası obtenidaes equivalente a la gramatica original G.�

�Ejemplo Eliminar las producciones unitarias de la siguiente gramatica.

G :

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → AS | AA | BA | λ

A → aA | a

B → bB | bC | C

C → aA | bA | B | ab

Solucion. Aplicando el algoritmo para cada una de las variables de G, setiene que:

UNIT1(S) = {S}.UNIT2(S) = {S} ∪ { } = {S}.UNIT1(A) = {A}.UNIT2(A) = {A} ∪ { } = {A}.UNIT1(B) = {B}.UNIT2(B) = {B} ∪ {C} = {B, C}.UNIT3(B) = {B, C} ∪ {B} = {B, C}.UNIT1(C) = {C}.UNIT2(C) = {C} ∪ {B} = {C, B}.UNIT3(C) = {C, B} ∪ {C} = {C, B}.

Eliminando las producciones unitarias se obtiene una gramatica G′ equiva-lente:

G′ :

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → AS | AA | BA | λ

A → aA | a

B → bB | bC | aA | bA | ab

C → aA | bA | ab | bB | bC�

�Ejemplo Eliminar las producciones unitarias de la siguiente gramatica.

G :

⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

S → ACA | CA | AA | A | C | λ

A → aAa | aa | B | C

B → cC | D | C

C → bC

D → aA | λ

Page 118: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

112 LENGUAJES LIC Y GRAMATICAS GIC

Solucion. Realizando el algoritmo para cada una de las variables de G seobtiene:

UNIT(S) = {S, A, C, B, D}.UNIT(A) = {A, B, C, D}.UNIT(B) = {B, C, D}.UNIT(C) = {C}.UNIT(D) = {D}.

Eliminando las producciones unitarias se obtiene una gramatica G′ equiva-lente:

G′

⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

S → ACA | CA | AA | λ | aAa | aa | bC | cC | aA

A → aAa | aa | cC | bC | aA | λ

B → cC | bC | aA | λ

C → bC

D → aA | λ

�Ejercicios de la seccion 4.10

➀ Eliminar las producciones unitarias de la siguiente gramatica:

G :

⎧⎪⎨⎪⎩S → Ba | A | λ

A → Aa | a

B → bB | S

➁ Eliminar las producciones unitarias de la siguiente gramatica:

G :

⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

S → BBa | A | B | ab | λ

A → Aa | B | D | aC

B → bB | aA | b

C → ABb | A | aB

D → cC | c

➂ Eliminar las producciones unitarias de la siguiente gramatica:

G :

⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

S → ACA | ab | B | CA | A | C | λ

A → aAa | B | CD | aa | D

B → bB | bA | b

C → cC | c

D → ABb | ac | C | Bb

Page 119: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.11. FORMA NORMAL DE CHOMSKY (FNC) 113

4.11. Forma Normal de Chomsky (FNC)

Una GIC G esta en Forma Normal de Chomsky (FNC) si satisface:

1. G no tiene variables inutiles.

2. G no tiene producciones λ (excepto posiblemente S → λ).

3. Todas las producciones son de la forma: A → a (producciones simples)o A → BC (producciones binarias).

En particular, una gramatica en FNC no tiene producciones unitarias.

4.11.1 Teorema (Procedimiento de conversion a FNC). Toda GICG es equivalente a una gramatica en Forma Normal de Chomsky.

Demostracion. Podemos transformar G en una gramatica en FNC, equi-valente a G, ejecutando los algoritmos de las secciones anteriores en elsiguiente orden:

1. Eliminar las variables no terminales.

2. Eliminar las variables no alcanzables.

3. Eliminar las producciones λ (excepto, posiblemente, S → λ).

4. Eliminar las producciones unitarias.

5. Las producciones resultantes (diferentes de S → λ) son de la forma:A → a o A → w, donde |w| ≥ 2. Estas ultimas se pueden simu-lar con producciones de la forma A → BC o A → a. Se introduceprimero, para cada a ∈ Σ, una variable nueva Ta cuya unica produc-cion es Ta → a. A continuacion, se introducen nuevas variables, conproducciones binarias, para simular las producciones deseadas.

La parte 5 del procedimiento anterior se ilustra en los dos siguientes ejem-plos.�

�Ejemplo Simular la produccion A → abBaC con producciones simples

y binarias.Solucion. Introducimos las variables Ta y Tb, y las producciones Ta → a yTb → b. Entonces A → abBaC se simula con:⎧⎪⎨⎪⎩

A → TaTbBTaC

Ta → a

Tb → b

Page 120: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

114 LENGUAJES LIC Y GRAMATICAS GIC

Ahora introducimos nuevas variables T1, T2, T3 y las producciones bina-rias necesarias. Las unicas producciones de estas nuevas variables son lasmostradas: ⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

A → TaT1

T1 → TbT2

T2 → BT3

T3 → TaC

Ta → a

Tb → b

�Ejemplo Simular la produccion A → BAaCbb con producciones simples

y binarias.Solucion. Introducimos las variables Ta y Tb, y las producciones Ta → a yTa → b. Entonces A → BAaCbb se simula con:⎧⎪⎨⎪⎩

A → BATaCTbTb

Ta → a

Tb → b

Ahora introducimos nuevas variables T1, T2, T3, T4 y las producciones bi-narias necesarias. Las unicas producciones de estas nuevas variables son lasmostradas: ⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

A → BT1

T1 → AT2

T2 → TaT3

T3 → CT4

T4 → TbTb

Ta → a

Tb → b

En los siguientes ejemplos se ilustra el procedimiento completo para con-vertir una gramatica dada a la Forma Normal de Chomsky (FNC).�

�Ejemplo Encontrar una GIC en FNC equivalente a la siguiente a la

gramatica:

G :

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → AB | aBC | SBS

A → aA | C

B → bbB | b

C → cC | λ

Page 121: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.11. FORMA NORMAL DE CHOMSKY (FNC) 115

Solucion. El conjunto de variables terminables es

TERM = {B, C, S, A},y el conjunto de variables alcanzables es

ALC = {S, A, B, C}.Es decir, la gramatica no tiene variables inutiles. El conjunto de variablesanulables es

ANUL = {C, A}.Al eliminar las producciones λ de G (la unica es C → λ) se obtiene lagramatica equivalente G1:

G1 :

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → AB | aBC | SBS | B | aB

A → aA | C | a

B → bbB | b

C → cC | c

A continuacion encontramos los conjuntos unitarios de todas las variables:

UNIT(S) = {S, B}.UNIT(A) = {A, C}.UNIT(B) = {B}.UNIT(C) = {C}.

Al eliminar las producciones unitarias obtenemos la gramatica equivalenteG2:

G2 :

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → AB | aBC | SBS | aB | bbB | b

A → aA | a | cC | c

B → bbB | b

C → cC | c

Luego introducimos las variables nuevas Ta, Tb y Tc, y las produccionesTa → a, Tb → b y Tc → c con el proposito de que todas las produccionessean unitarias o de la forma A → w, donde |w| ≥ 2.

G3 :

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

S → AB | TaBC | SBS | TaB | TbTbB | b

A → TaA | a | TcC | c

B → TbTbB | b

C → TcC | c

Ta → a

Tb → b

Tc → c

Page 122: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

116 LENGUAJES LIC Y GRAMATICAS GIC

Finalmente, se introducen nuevas variables, con producciones binarias,para simular las producciones de la forma A → w, donde |w| ≥ 2:

G4 :

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

S → AB | TaT1 | ST2 | TaB | TbT3 | b

A → TaA | TCC | a | c

B → TbT3 | b

C → TcC | c

T1 → BC

T2 → BS

T3 → TbB

Ta → a

Tb → b

Tc → c

�Ejemplo Encontrar una GIC en FNC equivalente a la siguiente a la

gramatica:

G :

⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

S → aS | aA | D

A → aAa | aAD | λ

B → aB | BC

C → aBb | CC | λ

D → aB | bA | aa | A

Solucion. TERM = {A, C, D, S}. Eliminando la variable no-terminable Bobtenemos:

G1 :

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → aS | aA | D

A → aAa | aAD | λ

C → CC | λ

D → bA | aa | A

El conjunto de las variables alcanzables de G1 es ALC = {S, A, D}. Elimi-nando la variable no-alcanzable C obtenemos:

G2 :

⎧⎪⎨⎪⎩S → aS | aA | D

A → aAa | aAD | λ

D → bA | aa | A

Page 123: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.11. FORMA NORMAL DE CHOMSKY (FNC) 117

El conjunto de variables anulables de G2 es ANUL = {A, D, S}. Elimi-nando las producciones λ obtenemos:

G3 :

⎧⎪⎨⎪⎩S → aS | aA | D | a | λ

A → aAa | aAD | aa | aA | aD | a

D → bA | aa | A | b

A continuacion encontramos los conjuntos unitarios de todas las variables:

UNIT(S) = {S, D, A}.UNIT(A) = {A}.UNIT(D) = {D, A}.

Al eliminar las producciones unitarias obtenemos la gramatica equivalenteG4:

G4 :

⎧⎪⎨⎪⎩S → aS | aA | a | λ | aAa | aAD | aa | aD | bA | b

A → aAa | aAD | aa | aA | aD | a

D → bA | aa | b | aAa | aAD | aa | aA | aD | a

Finalmente, simulamos las producciones de G4 con producciones unitariasy binarias:

G5 :

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

S → TaS | TaA | TaT1 | TaT2 | TaTa | TaD | TbA | a | b | λ

A → TaT1 | TaT2 | TaTa | TaA | TaD | a

D → TbA | TaTa | b | TaT1 | TaT2 | TaTa | TaA | TaD | a

T1 → ATa

T2 → AD

Ta → a

Tb → b

En algunas aplicaciones de la FNC es necesario exigir que la variable inicialS no aparezca en el cuerpo de ninguna produccion. Si S aparece en ellado derecho de alguna produccion se dice que S es recursiva ya que estoda lugar a derivaciones de la forma S

+=⇒ uSv, con u, v ∈ (V ∪ Σ)∗. Elsiguiente teorema es un resultado muy sencillo; establece que cualquierGIC se puede transformar en una GIC equivalente en la cual la variableinicial no es recursiva.

4.11.2 Teorema. Dada una GIC G = (V, Σ, S, P ) se puede construir unaGIC G′ = (V ′, Σ, S′, P ′) equivalente a G de tal manera que el sımbolo inicialS′ de G′ no aparezca en lado derecho de las producciones de G′.

Page 124: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

118 LENGUAJES LIC Y GRAMATICAS GIC

Demostracion. La nueva gramatica G′ tiene una variable mas que G, lavariable S′, que actua como la nueva variable inicial. Es decir, V ′ = V ∪{S′}.El conjunto de producciones P ′ esta dado por P ′ = P ∪{S′ → S}. Es claroque L(G) = L(G′) y el sımbolo inicial S′ no aparece en el cuerpo de lasproducciones.

Segun este resultado, el papel de la variable inicial de la nueva gramaticaG′ es unicamente iniciar las derivaciones.�

�Ejemplo Encontrar una GIC G′ equivalente a la siguiente gramatica G

de tal manera que la variable inicial de G′ no sea recursiva.

G :

⎧⎪⎨⎪⎩S → ASB | BB

A → aA | a

B → bBS | λ

Solucion. Segun se indico en la demostracion del Teorema 4.11.2, la gramati-ca pedida G′ es

G′ :

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S′ → S

S → ASB | BB

A → aA | a

B → bBS | λ

Notese que S sigue siendo recursiva pero ya no es la variable inicial de lagramatica.�

�Ejemplo Encontrar una GIC en FNC equivalente a la gramatica G del

ejemplo anterior, de tal manera que su variable inicial no searecursiva.Solucion. Comenzamos transformando G en G′, como se hizo en el ejem-plo anterior. En G′ todas las variable son utiles y ANUL = {B, S, S′}.Eliminando las producciones λ obtenemos:

G1 :

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S′ → S | λ

S → ASB | BB | AB | AS | A

A → aA | a

B → bBS | bS | bB | b

Los conjuntos unitarios son: UNIT(S′) = {S′, S}, UNIT(S) = {S, A},UNIT(A) = {A}, UNIT(B) = {B}. Eliminando las producciones unita-

Page 125: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.11. FORMA NORMAL DE CHOMSKY (FNC) 119

rias se obtiene la gramatica:

G2 :

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S′ → ASB | BB | AB | AS | aA | a | λ

S → ASB | BB | AB | AS | aA | a

A → aA | a

B → bBS | bS | bB | b

Simulando las producciones de G2 con producciones unitarias y binarias seobtiene:

G3 :

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

S′ → AT1 | BB | AB | AS | TaA | a | λ

S → AT1 | BB | AB | AS | TaA | a

A → TaA | a

B → TbT2 | TbS | TbB | b

Ta → a

Tb → b

T1 → SB

T2 → BS

�Ejercicios de la seccion 4.11

➀ Encontrar una gramatica en FNC equivalente a la siguiente GIC:

G :

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → ABC | BaC | aB

A → Aa | a

B → BAB | bab

C → cC | c

➁ Encontrar una gramatica en FNC equivalente a la siguiente GIC:

G :

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → aASb | BAb

A → Aa | a | λ

B → BAB | bAb

C → cCS | λ

➂ Para la gramatica del ejercicio ➁ encontrar una GIC equivalente enFNC, de tal manera que su variable inicial no sea recursiva.

Page 126: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

120 LENGUAJES LIC Y GRAMATICAS GIC

4.12. Forma Normal de Greibach (FNG) �Una GIC esta en Forma Normal de Greibach (FNG) si

1. La variable inicial no es recursiva.

2. G no tiene variables inutiles.

3. G no tiene producciones λ (excepto posiblemente S → λ).

4. Todas las producciones son de la forma: A → a (producciones simples)o A → aB1B2 . . . Bk, donde las Bi son variables.

Las derivaciones en una gramatica que este en FNG tienen dos caracterısti-cas notables: en cada paso aparece un unico terminal y, en segundo lugar,la derivacion de una cadena de longitud n (n ≥ 1) tiene exactamente npasos.

Existe un procedimiento algorıtmico para transformar una GIC dadaen una gramatica equivalente en FNG. Para presentar el procedimientonecesitamos algunos resultados preliminares.

4.12.1 Definicion. Una variable se llama recursiva a la izquierda sitiene una produccion de la forma:

A → Aw, w ∈ (V ∪ Σ)∗.

La recursividad a izquierda se puede eliminar, como se muestra en el si-guiente teorema.

4.12.2 Teorema (Eliminacion de la recursividad a la izquierda).Las producciones de una variable A cualquiera se pueden dividir en dosclases: {

A → Aα1 | Aα2 | · · · | Aαn

A → β1 | β2 | · · · | βm

donde αi, βi ∈ (V ∪ Σ)∗ y el primer sımbolo de βi es diferente de A. Sinalterar el lenguaje generado, las anteriores producciones se pueden simular,reemplazandolas por las siguientes:{

A → β1 | β2 | · · · | βm | β1Z | β2Z | · · · | βmZ

Z → α1 | α2 | · · · | αn | α1Z | α2Z | · · · | αnZ

donde Z es una variable completamente nueva.

Page 127: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.12. FORMA NORMAL DE GREIBACH (FNG) � 121

Demostracion. Se puede observar que, tanto con las producciones origi-nales como las nuevas, A genera el lenguaje

{β1, β2, . . . , βm} · {α1, α2, . . . , αn}∗ �

4.12.3 Lema. En una GIC cualquiera, una produccion A → uBv se puedereemplazar (simular) por

A → uw1v | uw2v | · · · | uwnv

siendo B → w1 | w2 | · · · | wn todas las producciones de B.

Demostracion. Inmediato.

4.12.4 Teorema (Procedimiento de conversion a FNG). Toda GICG es equivalente a una gramatica en Forma Normal de Greibach.

Demostracion. Suponemos que la gramatica dada esta en FNC. Esto sim-plifica el procedimiento, aunque este es valido (con modificaciones menores)para una gramatica arbitraria si se eliminan primero las variables inutiles,las producciones λ y las producciones unitarias. La conversion a FNG serealiza ejecutando los siguientes pasos:

1. Enumerar las variables en un orden arbitrario pero fijo durante elprocedimiento. S debe ser la variable con orden 1.

2. Para cada variable A de la gramatica original, siguiendo el orden ele-gido, modificar sus producciones de tal manera que el primer sımbolodel cuerpo de cada produccion (primer sımbolo a la derecha de laflecha) sea un terminal o una variable con orden mayor que el de A.Para lograrlo se usa el teorema de eliminacion de la recursividad a laizquierda, Teorema 4.12.2, y el Lema 4.12.3, todas las veces que seanecesario.

3. Utilizar el Lema 4.12.3 para modificar las producciones de las varia-bles originales de tal manera que el primer sımbolo del cuerpo de cadaproduccion sea un terminal. Esto se hace siguiendo el orden inversode enumeracion de las variables: ultima, penultima, etc.

4. Utilizar de nuevo el Lema 4.12.3, para modificar las producciones delas variables nuevas de tal manera que el primer sımbolo del cuerpode cada produccion sea un terminal.

Page 128: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

122 LENGUAJES LIC Y GRAMATICAS GIC

�Ejemplo Encontrar una gramatica en FNG equivalente a la siguiente

gramatica (que esta en FNC):

G :

{S → AA | a

A → AA | b

Paso 1: Aquı solamente hay un orden posible para variables: S, A.

Paso 2: En este paso solo hay que eliminar la recursividad a izquierda dela variable A. Al hacerlo se obtiene la gramatica:⎧⎪⎨⎪⎩

S → AA | a

A → b | bZ

Z → A | AZ

Paso 3: ⎧⎪⎨⎪⎩S → bA | bZA | a

A → b | bZ

Z → A | AZ

Paso 4: ⎧⎪⎨⎪⎩S → bA | bZA | a

A → b | bZ

Z → b | bZ | BZZ

�Ejemplo Encontrar una gramatica en FNG equivalente a la siguiente

gramatica (que esta en FNC):⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → AB | BC

A → AB | a

B → AA | CB | a

C → a | b

Paso 1: Orden de las variables: S, B, A, C. Este orden es muy adecuadoporque el cuerpo de las producciones de B comienza con A o C, queson variables de orden mayor.⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩

S → AB | BC

B → AA | CB | a

A → AB | a

C → a | b

Page 129: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.12. FORMA NORMAL DE GREIBACH (FNG) � 123

Paso 2: ⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

S → AB | BC

B → AA | CB | a

A → a | aZ

C → a | b

Z → B | BZ

Paso 3: ⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

S → aB | aZB | aAC | aZAC | aBC | bBC | aC

B → aA | aZA | aB | bB | a

A → a | aZ

C → a | b

Z → B | BZ

Paso 4:⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

S → aB | aZB | aAC | aZAC | aBC | bBC | aC

B → aA | aZA | aB | bB | a

A → a | aZ

C → a | b

Z → aA | aZA | aB | bB | a | aAZ | aZAZ | aBZ | bBZ | aZ

El siguiente ejemplo ilustra que el procedimiento de conversion a la formaFNG puede dar lugar a docenas de producciones, incluso a partir de unagramatica relativamente sencilla.

�Ejemplo Encontrar una gramatica en FNG equivalente a la siguiente

gramatica: ⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → AB

A → AB | CB | a

B → AB | b

C → AC | c

Paso 1: Orden de las variables: S, A, B, C.

Page 130: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

124 LENGUAJES LIC Y GRAMATICAS GIC

Paso 2: ⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

S → AB

A → CB | a | CBZ1 | aZ1

B → CBB | aB | CBZ1B | aZ1B | b

C → CBC | aC | CBZ1C | aZ1C | c

Z1 → B | BZ1

Prosiguiendo con el paso 2, se elimina la recursividad a izquierda dela variable C:⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

S → AB

A → CB | a | CBZ1 | aZ1

B → CBB | aB | CBZ1B | aZ1B | b

C → aC | aZ1C | c | aCZ2 | aZ1CZ2 | cZ2

Z1 → B | BZ1

Z2 → BC | BZ1C | BCZ2 | BZ1CZ2

Paso 3: ⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

S → 14 produccionesA → a | aZ1 | 6 producciones | 6 produccionesB → aB | aZ1B | b | 6 producciones | 6 produccionesC → aC | aZ1C | c | aCZ2 | aZ1CZ2 | cZ2

Z1 → B | BZ1

Z2 → BC | BZ1C | BCZ2 | BZ1CZ2

Paso 4: El numero de producciones de la nueva gramatica se incrementadrasticamente:⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

S → 14 produccionesA → a | aZ1 | 6 producciones | 6 produccionesB → aB | aZ1B | b | 6 producciones | 6 produccionesC → aC | aZ1C | c | aCZ2 | aZ1CZ2 | cZ2

Z1 → 15 producciones | 15 produccionesZ2 → 15 producciones | 15 producciones | 15 producciones |

15 producciones

La gramatica original tenıa 8 producciones; la nueva gramatica enFNG tiene un total de 139 producciones.

Page 131: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.13. LEMA DE BOMBEO PARA LIC 125

�Ejercicios de la seccion 4.12

➀ Encontrar una gramatica en FNG equivalente a la siguiente GIC:⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → CA | AC | a

A → BA | AB | b

B → AA | a | b

C → AC | CC | a

➁ Encontrar una gramatica en FNG equivalente a la siguiente GIC:⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → BB | BC | b

A → AC | CA | a

B → BB | a

C → BC | CA | a

➂ Encontrar una gramatica en FNG equivalente a la siguiente GIC:⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → SC | AA | a

A → CA | AB | a

B → AC | b

C → CA | AS | b

Nota: hay que eliminar primero la recursividad de la variable S.

4.13. Lema de bombeo para LIC

Una de las consecuencias mas importantes de la Forma Normal de Chomskyes el lema de bombeo para lenguajes independientes del contexto, el cuales util, entre muchas aplicaciones, para demostrar que ciertos lenguajes noson LIC.

Nos referiremos a gramaticas en FNC con variable inicial no recursiva.Puesto que las producciones son unitarias (A → a) o binarias (A → BC),en cada nodo el arbol de una derivacion se ramifica en dos nodos, a lo sumo.Tales arboles se denominan binarios. Si la produccion S → λ esta presente,su unico proposito es generar la cadena λ.

4.13.1 Teorema. Sea G = (V, Σ, S, P ) una gramatica en FNC y w ∈ Σ∗.Si la longitud de la trayectoria mas larga en un arbol de derivacion deS

∗=⇒ w tiene k (o menos) nodos, entonces |w| ≤ 2k−2. Aquı k ≥ 2.

Page 132: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

126 LENGUAJES LIC Y GRAMATICAS GIC

Demostracion. La siguiente tabla muestra las relaciones obtenidas entrek = numero de nodos de la trayectoria mas larga de S

∗=⇒ w y la longitudde w, en los casos k = 2, k = 3, k = 4 y k = 5. En la tabla se muestran loscasos extremos, es decir, los arboles con el mayor numero posible de nodos.Se observa que |w| ≤ 2k−2. Una demostracion rigurosa del caso general sehace por induccion sobre k.

k = numero de nodos de Arbol de derivacion Longitud de w

la trayectoria mas larga

k = 2�

S

|w| = 1 = 20 = 2k−2

k = 3

S

|w| ≤ 2 = 21 = 2k−2

k = 4

S

|w| ≤ 4 = 22 = 2k−2

k = 5

S

|w| ≤ 8 = 23 = 2k−2

4.13.2 Corolario. Sea G = (V, Σ, S, P ) una gramatica en FNC y w ∈ Σ∗.

(1) Si la longitud de la trayectoria mas larga en un arbol de derivacion deS

∗=⇒ w tiene k + 2 (o menos) nodos, entonces |w| ≤ 2k. Aquı k ≥ 0.

Page 133: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.13. LEMA DE BOMBEO PARA LIC 127

(2) Si |w| > 2k (con k ≥ 0) entonces la longitud de la trayectoria mas largaen un arbol de derivacion de S

∗=⇒ w tiene mas de k + 2 nodos.

Demostracion.

(1) Se sigue inmediatamente del Teorema 4.13.1.

(2) Es la afirmacion contra-recıproca de la parte (1).

4.13.3. Lema de bombeo para LIC. Dado un LIC L, existe una cons-tante n (llamada constante de bombeo de L) tal que toda z ∈ L con |z| > nse puede descomponer en la forma z = uvwxy donde:

(1) |vwx| ≤ n.

(2) uviwxiy ∈ L para todo i ≥ 0.

(3) v �= λ o x �= λ.

Demostracion. Sea G = (V, Σ, S, P ) una gramatica en FNC, con variableinicial no recursiva, tal que L(G) = L. Tal gramatica existe por los Teore-mas 4.11.1 y 4.11.2. Sea k = |V | = numero de variables de G y n = 2k. Seaz ∈ L con |z| > n = 2k. Por la parte (2) del Corolario 4.13.2, la trayectoriamas larga en el arbol de una derivacion S

∗=⇒ z tiene mas de k + 2 nodos.Consideremos los ultimos k +2 nodos de tal trayectoria (siguiendo el ordenque va desde la raız S hasta las hojas del arbol). El ultimo nodo de esatrayectoria es un terminal a ∈ Σ y los restantes k + 1 nodos son variables.Como hay solo k variables en la gramatica, entonces hay por lo menos unavariable A �= S repetida en la trayectoria. Por lo tanto, existen cadenasu, v, w, x, y ∈ Σ∗ tales que

S∗=⇒ uAy, A

∗=⇒ vAx, A∗=⇒ w.

Ası que

S∗=⇒ uAy

∗=⇒ uvAxy∗=⇒ uvwxy = z.

La siguiente grafica ilustra la situacion:

Page 134: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

128 LENGUAJES LIC Y GRAMATICAS GIC

A

A

S

︸ ︷︷ ︸ ︸ ︷︷ ︸ ︸ ︷︷ ︸ ︸ ︷︷ ︸ ︸ ︷︷ ︸u v w x y

Puesto que la trayectoria mas larga en el arbol de derivacion de A∗=⇒

vAx∗=⇒ vwx tiene k+2 nodos o menos, por la parte (1) del Corolario 4.13.2,

podemos concluir que |vwx| ≤ 2k = n. Ademas:

S∗=⇒ uAy

∗=⇒ uvAxy∗=⇒ uviAxiy

∗=⇒ uviwxiy, para todo i ≥ 0.

Observese que el caso i = 0 corresponde a la derivacion S∗=⇒ uAy

∗=⇒uwy.

Finalmente, la derivacion A∗=⇒ vAx se puede escribir como

A =⇒ BC∗=⇒ vAx

utilizando una produccion de la forma A → BC como primer paso. Sededuce que u y x no pueden ser ambas λ porque se tendrıa BC

∗=⇒ A,lo cual es imposible en una gramatica en FNC (recuerdese que la unicaproduccion λ en la gramatica es, posiblemente, S → λ; pero S no apareceen el cuerpo de ninguna produccion de G ya que S no es recursiva). Sededuce entonces que v �= λ o x �= λ. Esto demuestra las propiedades (1),(2) y (3) del lema de bombeo.

Page 135: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.13. LEMA DE BOMBEO PARA LIC 129

�Ejemplo Demostrar que el lenguaje L = {aibici : i ≥ 0} sobre Σ =

{a, b, c} no es un LIC.Solucion. Argumento por contradiccion. Si L fuera LIC, por el lema debombeo, existirıa una constante de bombeo n. Sea z = anbncn; se tiene quez ∈ L y |z| > n. Por lo tanto, z se puede descomponer como z = anbncn =uvwxy con las propiedades (1), (2) y (3) del lema de bombeo. Puesto que|vwx| ≤ n, en la cadena vwx no pueden aparecer los tres terminales a, b y csimultaneamente (para que aparezcan los tres terminales simultaneamente,una subcadena de anbncn debe tener longitud ≥ n+2). Como v �= λ o x �= λ,se distinguen dos casos:

Caso 1. Alguna de las cadenas v o x contiene dos tipos de terminales.Entonces en uv2wx2y aparecen algunas bes seguidas de aes o algunasces seguidas de bes. En cualquier caso, uv2wx2y /∈ L.

Caso 2. Las cadenas v y x contienen un solo tipo de terminal cada una(o solo aes o solo bes o solo ces). Como en vwx no aparecen los tresterminales a, b y c simultaneamente, en la cadena bombeada uv2wx2yse altera el numero de dos de los terminales a, b, c, a lo sumo, pero node los tres. Por lo tanto, uv2wx2y /∈ L.

Pero el lema de bombeo afirma que uv2wx2y ∈ L. Esta contradiccion mues-tra que L no es un LIC.�

�Ejemplo Demostrar que el lenguaje L = {ai : i es primo} sobre Σ = {a}

no es un LIC.Solucion. Argumento por contradiccion. Si L fuera LIC, por el lema debombeo, existirıa una constante de bombeo n. Sea z = am con m primom > n y m > 2 (m existe porque el conjunto de los numeros primos esinfinito). Entonces z ∈ L y |z| > n. Por lo tanto, z se puede descomponercomo z = am = uvwxy con las propiedades (1), (2) y (3) del lema debombeo.

Sea |u| + |w| + |y| = k; entonces |v| + |x| = m − k ≥ 1. Por el lema debombeo, uviwxiy ∈ L para todo i ≥ 0; es decir, |uviwxiy| es primo paratodo i ≥ 0. Pero

|uviwxiy| = k + |vi|+ |xi| = k + i|v|+ i|x| = k + i(|v|+ |x|) = k + i(m− k).

(i) Si k = 0, tomando i = m se obtiene que k+ i(m−k) = 0+ i(m−0) =im = mm que no es primo, pues m > 2.

(ii) Si k = 1, tomando i = 0 se obtiene que k + i(m−k) = 1+ i(m− 1) =1 + 0(m − 1) = 1 que no es un numero primo.

Page 136: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

130 LENGUAJES LIC Y GRAMATICAS GIC

(iii) Si k > 1, tomando i = k se obtiene que

|uvkwxky| = k + k(m − k) = k(1 + m − k),

el cual no es un numero primo pues k > 1 y como m−k ≥ 1, entonces1 + m − k ≥ 2.

Por (i), (ii) y (iii) se puede escoger i de tal manera que |uviwxiy| no sea unnumero primo, lo cual contradice que uviwxiy ∈ L para todo i ≥ 0. Estacontradiccion muestra que L no es un LIC.�

�Ejercicios de la seccion 4.13

Utilizar el lema de bombeo para demostrar que los siguientes lenguajes noson LIC:

➀ L = {aibicj : j ≥ i}, sobre Σ = {a, b, c}.➁ L = {aibjck : 1 ≤ i ≤ j ≤ k}, sobre Σ = {a, b, c}.➂ L = {0i12i0i : i ≥ 1}, sobre Σ = {0, 1}.➃ L = {aibicidi : i ≥ 0}, sobre Σ = {a, b, c, d}.➄ L = {aibjcidj : i, j ≥ 0}, sobre Σ = {a, b, c, d}.➅ L =

{ww : w ∈ {0, 1}∗}.

!➆ L = {ai : i es un cuadrado perfecto}.

4.14. Propiedades de clausura de los LIC

En la seccion 3.2 se vio que los lenguajes regulares son cerrados bajo launion, la concatenacion, la estrella de Kleene y todas las operaciones boo-leanas. Los LIC poseen propiedades de clausura mucho mas restringidas:son cerrados para las operaciones regulares (Teorema 4.14.1) pero, en ge-neral, no son cerrados para interseccion, complementos ni diferencias (Teo-rema 4.14.2).

4.14.1 Teorema. La coleccion de los lenguajes independientes del contextoes cerrada para las operaciones regulares (union, concatenacion y estrellade Kleene). Es decir, dadas GIC G1 = (V1, Σ, S1, P1) y G2 = (V2, Σ, S2, P2)tales que L(G1) = L1 y L(G2) = L2, se pueden construir GIC que generenlos lenguajes L1 ∪ L2, L1L2 y L∗

1, respectivamente.

Page 137: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.14. PROPIEDADES DE CLAUSURA DE LOS LIC 131

Demostracion. Si perdida de generalidad, podemos suponer que G1 y G2

no tienen variables en comun (en caso contrario, simplemente cambiamoslos nombres de las variables). Para construir una GIC G que genere L1∪L2

introducimos una variable nueva S, la variable inicial de G, junto con lasproducciones S → S1 y S → S2. Las producciones de G1 y G2 se mantienen.Concretamente,

G =(V1 ∪ V2 ∪ {S}, Σ, S, P1 ∪ P2 ∪ {S → S1, S → S2}

).

Esquematicamente, G tiene el siguiente aspecto:

S → S1 | S2

S1 → · · ·...

...

}producciones de G1

S2 → · · ·...

...

}producciones de G2

Claramente, L(G) = L1 ∪ L2.Una GIC G que genere L1L2 se construye similarmente, anadiendo la

produccion S → S1S2. Es decir,

G =(V1 ∪ V2 ∪ {S}, Σ, S, P1 ∪ P2 ∪ {S → S1S2}

).

Esquematicamente, G es la gramatica:

S → S1S2

S1 → · · ·...

...

}producciones de G1

S2 → · · ·...

...

}producciones de G2

Claramente, L(G) = L1L2.Para generar L∗

1 se define G como

G =(V1 ∪ {S}, Σ, S, P1 ∪ {S → S1S, S → λ}).

Esquematicamente, G es la gramatica:

S → S1S | λ

S1 → · · ·...

...

}producciones de G1

Page 138: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

132 LENGUAJES LIC Y GRAMATICAS GIC

�Ejemplo Utilizar las construcciones del Teorema 4.14.1 para encontrar

una GIC que genere el lenguaje L1L∗2 donde L1 = ba+ y L2 =

{aibjai : i ≥ 0, j ≥ 1}.Solucion. El lenguaje L1 se puede generar con la gramatica{

S1 → bA

A → aA | a

y L2 con {S2 → aS2a | bB

B → bB | λ

La siguiente gramatica genera L∗2:⎧⎪⎨⎪⎩

S3 → S2S3 | λ

S2 → aS2a | bB

B → bB | λ

Finalmente, el lenguaje L1L∗2 se puede generar con⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

S → S1S3

S1 → bA

A → aA | a

S3 → S2S3 | λ

S2 → aS2a | bB

B → bB | λ.

4.14.2 Teorema. La coleccion de los lenguajes independientes del contextono es cerrada (en general) para las siguientes operaciones:

(1) Interseccion.

(2) Complemento.

(3) Diferencia.

Demostracion.

(1) La interseccion de dos LIC puede ser un lenguaje que no es LIC. Con-siderense, como ejemplo, los lenguajes

L1 = {aibicj : i, j ≥ 0},L2 = {aibjcj : i, j ≥ 0}.

Page 139: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.14. PROPIEDADES DE CLAUSURA DE LOS LIC 133

Tanto L1 como L2 son LIC porque son generados por las gramaticasG1 y G2, respectivamente:

G1 :

⎧⎪⎨⎪⎩S → AB

A → aAb | λ

B → cB | λ

G2 :

⎧⎪⎨⎪⎩S → AB

A → aA |B → bBc | λ

Pero L1 ∩ L2 = {aibici : i ≥ 0} no es un LIC, segun se mostro, usandoel lema de bombeo, en la seccion 4.13.

(2) Razonamos por contradiccion: si el complemento de todo LIC fuera unLIC se podrıa concluir que la interseccion de dos LIC L1 y L2 serıa unLIC ya que L1 ∩ L2 = L1 ∪ L2. Esto estarıa en contradiccion con laparte (1) del presente teorema.

(3) Razonamos por contradiccion: si la diferencia de dos LIC cualesquierafuera un LIC se podrıa concluir que el complemento de un LIC L serıatambien un LIC ya que L = Σ∗ − L. Esto estarıa en contradiccion conla parte (2) del presente teorema.

El siguiente teorema afirma que los LIC tambien son cerrados bajo homo-morfismos.

4.14.3 Teorema. Sea h : Σ∗ → Γ∗ un homomorfismo. Si L es un LICsobre Σ, entonces h(L) es un LIC sobre Γ.

Demostracion. La demostracion consiste en transformar una gramaticaG que genere el lenguaje L en una gramatica G′ que genere h(L). Para ellobasta mantener las mismas variables de G y definir las producciones de G′,a partir de las de G, cambiando cada terminal a por h(a). Es facil ver queuna derivacion S

+=⇒ w en G, con w ∈ Σ∗, se puede transformar en unaderivacion S

+=⇒ h(w) en G′; esto muestra h(L) ⊆ L(G′).

Para establecer la otra contenencia, es decir, L(G′) ⊆ h(L), hay quedemostrar que si S

+=⇒G′ z, con z ∈ Γ∗, entonces z es de la forma z =h(w) para algun w ∈ L. Esto puede hacerse considerando el arbol de laderivacion S

+=⇒G′ z. Dicho arbol se puede transformar en un arbol de unaderivacion en G, modificando adecuadamente las hojas: las hojas del nuevoarbol forman una cadena w ∈ Σ∗ y las hojas del arbol inicial forman lacadena h(w).�

�Ejemplo Utilizar homomorfismos para concluir que el lenguaje L =

{0i1i2i3i : i ≥ 0}, sobre el alfabeto {0, 1, 2, 3} no es LIC.

Page 140: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

134 LENGUAJES LIC Y GRAMATICAS GIC

Solucion. La idea es “convertir” L en el lenguaje {aibici : i ≥ 0}, que no esLIC, segun se mostro en la seccion 4.13. Razonamos de la siguiente manera:si L fuera un LIC, lo serıa tambien h(L), donde h es el homomorfismoh : {0, 1, 2, 3}∗ → {a, b, c}∗ definido por h(0) = a, h(1) = b, h(2) = c yh(3) = λ. Pero

h(L) = {h(0)ih(1)ih(2)ih(3)i : i ≥ 0} = {aibici : i ≥ 0}.

Por consiguiente, L no es un LIC.

�Ejercicios de la seccion 4.14

➀ Utilizar las construcciones del Teorema 4.14.1 para encontrar GICque generen los siguientes lenguajes:

(i) a+(a ∪ bab)∗(b∗ ∪ a∗b).

(ii) (L1∪L2)L∗3, donde L1 = ab∗a, L2 = a∪b+ y L3 = {aibai : i ≥ 0}.

(iii) L1 ∪ L∗2L3, donde L1 = ab∗a, L2 = {aibjcjdi : i, j ≥ 1} y

L3 = b+.

➁ Sea G = (V, Σ, S, P ) una gramatica que genera al lenguaje L. ¿Lagramatica G =

(V, Σ, S, P ∪ {S → SS, S → λ}) genera a L∗?

➂ (i) Mostrar que los dos lenguajes siguientes, sobre Σ = {a, b, c, d},son LIC:

L1 = {aibicjdj : i, j ≥ 1},L2 = {aibjcjdk : i, j, k ≥ 1}.

(ii) Demostrar que L1 ∩ L2 no es un LIC.

➃ Utilizar homomorfismos para concluir que los siguientes lenguajes so-bre el alfabeto {0, 1} no son LIC:

(i) L = {u : |u| es un numero primo}.(ii) L = {u : |u| es un cuadrado perfecto}.

➄ Demostrar que los LIC son cerrados para la operacion de reflexion.Concretamente, demostrar que si L es un LIC, tambien lo es el len-guaje LR = {wR : w ∈ L}.

Page 141: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.15. ALGORITMOS DE DECISION PARA GIC 135

4.15. Algoritmos de decision para GIC

En esta seccion consideraremos problemas de decision para GIC, similaresa los problemas para automatas presentados en la seccion 3.6. Dada unapropiedad P, referente a gramaticas independientes del contexto, un pro-blema de decision para P consiste en buscar un algoritmo, aplicable a unaGIC arbitraria G, que responda SI o NO a la pregunta: ¿satisface G lapropiedad P? Los algoritmos vistos en el presente capıtulo (para encontrarlas variables terminables, las alcanzables, las anulables, etc) son frecuente-mente utiles en el diseno de algoritmos de decision mas complejos.

Problema 1 (Problema de la vacuidad). Dada una gramatica G =(V, Σ, S, P ), ¿es L(G) �= ∅?

Algoritmo de decision: ejecutar el algoritmo para determinar el conjuntoTERM de variables terminables. L(G) �= ∅ si y solo si S ∈ TERM.

Problema 2 (Problema de la pertenencia). Dada una GIC G =(V, Σ, S, P ) y una cadena w ∈ Σ∗, ¿se tiene w ∈ L(G)?

Para resolver este problema primero convertimos G a la forma FNC, convariable inicial no recursiva, siguiendo el procedimiento de la seccion 4.11.

A partir de una GIC G en FNC podemos disenar un algoritmo bastanteineficiente para decidir si w ∈ L(G): se encuentran todas las posibles deri-vaciones a izquierda (o los arboles de derivacion) que generen cadenas delongitud n = |w|. Mas especıficamente, las cadenas de longitud 1 se puedenderivar unicamente con producciones de la forma S → a. Las cadenas delongitud 2 solo tienen arboles de derivacion de la forma:

S

A1�

a1

�A2

a2

en los que aparecen exactamente 3 variables. Para derivar cadenas de lon-gitud 3 solo se puede proceder de dos formas:

S =⇒ A1A2 =⇒ B1B1A23=⇒ a1a2a3,

oS =⇒ A1A2 =⇒ a1A2 =⇒ a1B1B2

2=⇒ a1a2a3.

Los arboles de estas derivaciones son:

Page 142: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

136 LENGUAJES LIC Y GRAMATICAS GIC

S

A1�

B1�

a1

�B2

a2

�A2

a3

S

A1�

a1

�A2

B1�

a2

�B2

a3

Cada uno de estos arboles tiene exactamente 5 nodos etiquetados con va-riables. La situacion general es la siguiente: un arbol de derivacion de unacadena de longitud n tiene exactamente 2n − 1 nodos etiquetados con va-riables. Puesto que la raız del arbol es S y S no es recursiva, en un arbolde derivacion de una cadena de longitud n hay exactamente 2n − 2 nodosinteriores etiquetados con variables. La demostracion general puede hacersepor induccion sobre n y la dejamos como ejercicio para el estudiante.

Por consiguiente, para determinar si una cadena dada de longitud n eso no generada por G, consideramos todos los posibles arboles de derivacioncon 2n − 2 variables interiores. Este algoritmo es ineficiente porque si Gtiene k variables, hay que chequear no menos de k2n−2 arboles (esto sincontar las posibilidades para las hojas). Por consiguiente, el procedimientotiene complejidad exponencial con respecto al tamano de la entrada.

Para resolver el problema de la pertenencia hay un algoritmo muy efi-ciente (su complejidad es polinomial) en el que se usa la llamada progra-macion dinamica o tabulacion dinamica, tecnica para llenar tablas progre-sivamente, re-utilizando informacion previamente obtenida. El algoritmoque presentaremos se denomina algoritmo CYK (nombre que correspondea las iniciales de los investigadores Cocke, Younger y Kasami). El algoritmo(exhibido en la pagina siguiente) tiene como entrada una GIC G en FNCy una cadena de n terminales w = a1a2 · · · an; se aplica llenando una tablade n filas (una por cada terminal de la entrada w) y n columnas. Xij es elconjunto de variables de las que se puede derivar la subcadena de w cuyoprimer sımbolo esta en la posicion i y cuya longitud es j. O sea,

Xij = conjunto de variables A tales que A+=⇒ aiai+1 · · · ai+j−1.

Al determinar los conjuntos Xij se obtienen las posibles maneras de derivarsubcadenas de w que permitan construir una derivacion de la cadena com-pleta w. La tabla se llena por columnas, de arriba hacia abajo; la primeracolumna (j = 1) corresponde a las subcadenas de longitud 1, la segundacolumna (j = 2) corresponde a las subcadenas de longitud 2, y ası sucesi-vamente. La ultima columna (j = n) corresponde a la unica subcadena de

Page 143: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.15. ALGORITMOS DE DECISION PARA GIC 137

longitud n que tiene w, que es la propia cadena w. Se tendra que w ∈ L(G)si y solo si S ∈ X1n.

Algoritmo CYKEntrada:

Gramatica G en FNC y cadena de n terminales w = a1a2 · · · an.

Inicializar:

j = 1. Para cada i, 1 ≤ i ≤ n,Xij = Xi1 := conjunto de variables A tales que A → ai

es una produccion de G.

Repetir:j := j + 1. Para cada i, 1 ≤ i ≤ n − j + 1,

Xij := conjunto de variables A tales que A → BC esuna produccion de G, con B ∈ Xik y C ∈ Xi+k,j−k,considerando todos los k tales que 1 ≤ k < j − 1.

Hasta: j = n.

Salida: w ∈ L(G) si y solo si S ∈ X1n.

�Ejemplo Vamos a aplicar el algoritmo CYK a la gramatica:

G :

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → BA | AC

A → CC | b

B → AB | a

C → BA | a

y a la cadena w = bbab. Se trata de determinar si w ∈ L(G) o no. La tablaobtenida al hallar los Xij , 1 ≤ i ≤ 4, es la siguiente:

j = 1 j = 2 j = 3 j = 4

b i = 1 {A} — {B} {S, C}b i = 2 {A} {B, S} {S, C}a i = 3 {B, C} {S, C}b i = 1 {A}

Page 144: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

138 LENGUAJES LIC Y GRAMATICAS GIC

A continuacion se indica de manera detallada como se obtuvo la tablaanterior, columna por columna:

j = 1. Se obtiene directamente de las producciones de G.j = 2. Para X12 se buscan cuerpos de producciones en X11X21 =

{A}{A} = {A}. Ası que X12 = { }.Para X22 se buscan cuerpos de producciones en X21X31 ={A}{B, C} = {AB, AC}. Ası que X22 = {B, S}.Para X23 se buscan cuerpos de producciones en X31X41 ={B, C}{A} = {BA, CA}. Ası que X23 = {S, C}.

j = 3. Para X13 se buscan cuerpos de producciones en X11X22 ∪X12X31 = {A}{B, S} ∪ { } = {AB, AS}. Ası que X13 = {B}.Para X23 se buscan cuerpos de producciones en X21X32 ∪X22X41 = {A}{S, C} ∪ {B, S}{A} = {AS, AC} ∪ {BA, SA}.Ası que X23 = {S, C}.

j = 4. Para X14 se buscan cuerpos de producciones en X11X23 ∪X12X32∪ X13X41 = {A}{S, C} ∪ { } ∪ {B}{A} = {AS, AC} ∪{BA}. Ası que X14 = {S, C}.

Puesto que la variable S pertenece al conjunto X14, se concluye que lacadena w = bbab es generada por G.

Consideremos ahora la entrada w = baaba, de longitud 5. Al hallar losXij , 1 ≤ i ≤ 5, se obtiene la tabla siguiente. Como S ∈ X15, se concluyeque w ∈ L(G).

j = 1 j = 2 j = 3 j = 4 j = 5

b i = 1 {A} {B, S} — — {S, B, C}a i = 2 {B, C} {A} {A} {S, B, C}a i = 3 {B, C} {S, C} {A}b i = 4 {A} {B, S}a i = 5 {B, C}

Al procesar la entrada w = aaba se obtiene la tabla siguiente. Como S nopertenece al conjunto X14, se deduce que w no es generada por G.

Page 145: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.15. ALGORITMOS DE DECISION PARA GIC 139

j = 1 j = 2 j = 3 j = 4

a i = 1 {B, C} {A} {B} —

a i = 2 {B, C} — —

b i = 3 {B} —

a i = 4 {B, C}

Problema 3 (Problema de la infinitud). Dada una gramatica G =(V, Σ, S, P ), ¿es L(G) infinito?

El lema de bombeo sirve para establecer un criterio que permite resolvereste problema (de manera analoga a lo que sucede en el caso de los lenguajesregulares). El criterio aparece en el siguiente teorema.

4.15.1 Teorema. Sea G = (V, Σ, S, P ) una gramatica en FNC, con va-riable inicial no recursiva, tal que L(G) = L, y sea k = |V | = numero devariables de G. El lenguaje L es infinito si y solo si contiene una cadena ztal que 2k < |z| ≤ 2k+1.

Demostracion. Si z ∈ L y 2k < |z| ≤ 2k+1, entonces por la demostraciondel lema de bombeo, z se puede descomponer como z = uvwxy, donde|vwx| ≤ 2k, v �= λ. L posee infinitas cadenas: uviwxiy para todo i ≥ 0.

Recıprocamente, si L es infinito, existe z ∈ L con |z| ≥ 2k. Por lademostracion del lema de bombeo, w = uvwxy donde |vwx| ≤ 2k; ademas,v �= λ o x �= λ. Si |z| ≤ 2k+1, la demostracion termina. Si |z| > 2k+1 =2k + 2k, puesto que |z| = |uy| + |vwx|, se tendra

|uwy| ≥ |uy| = |z| − |vwx| ≥ |z| − 2k > 2k.

De nuevo, si |uwy| < 2k+1, la demostracion termina; en caso contrario, seprosigue de esta forma hasta encontrar una cadena en L cuya longitud satisfaga 2k < ≤ 2k+1.

Utilizando el Teorema 4.15.1 podemos ahora presentar un algoritmo dedecision para el problema de la infinitud:

1. Convertir la gramatica G dada a una gramatica equivalente G′ enForma Normal de Chomsky.

2. Aplicar el algoritmo CYK a G′, con cada una de las cadenas |z| cuyalongitud satisfaga 2k < ≤ 2k+1, siendo k el numero de variables deG′. L es infinito si y solo si alguna de las cadenas examinadas esta enL(G′).

Page 146: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

140 LENGUAJES LIC Y GRAMATICAS GIC

Observese que este algoritmo tiene de complejidad exponencial ya queel numero de cadenas z tales que 2k < |z| ≤ 2k+1 es m2k

, donde m es elnumero de terminales en la gramatica dada.

✎ Hay muchos problemas referentes a gramaticas que son indecidi-bles, es decir, problemas para los cuales no existen algoritmos dedecision. Aunque no tenemos las herramientas para demostrarlo,los siguientes problemas son indecidibles:

1. Dada una gramatica G, ¿es G ambigua?

2. Dada una gramatica G, ¿genera G todas las cadenas de ter-minales?, es decir, ¿L(G) = Σ∗?

3. Dadas dos gramaticas G1 y G2, ¿generan G1 y G2 el mismolenguaje?, es decir, ¿L(G1) = L(G2)?

�Ejercicios de la seccion 4.15

➀ Sea G = (V, Σ, S, P ) una gramatica dada. Encontrar algoritmos paralos siguientes problemas de decision:

(i) ¿Genera G la cadena vacıa λ?

(ii) ¿Hay dos variables diferentes A y B tales que A∗=⇒ B?

(iii) ¿Hay en L(G) alguna cadena de longitud 1250? Ayuda: hay unnumero finito de cadenas con longitud 1250.

(iv) ¿Hay en L(G) alguna cadena de longitud mayor que 1250? Ayu-da: habrıa un numero infinito de cadenas por examinar; usar elTeorema 4.15.1.

(v) ¿Hay en L(G) por lo menos 1250 cadenas? Ayuda: usar la mismaidea del problema (iv).

➁ Encontrar un algoritmo para el siguiente problema de decision: dadauna gramatica G = (V, Σ, S, P ) y una variable A ∈ V , ¿es A recur-siva?, es decir, ¿existe una derivacion de la forma A

+=⇒ uAv, conu, v ∈ (V ∪ Σ)∗?

➂ Encontrar un algoritmo para el siguiente problema de decision: dadoun lenguaje finito L y una GIC G, ¿se tiene L ⊆ L(G)?

Page 147: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

4.15. ALGORITMOS DE DECISION PARA GIC 141

➃ Sea G la gramatica

G :

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → BA | AB

A → CA | a

B → BB | b

C → BA | c

Ejecutar el algoritmo CYK para determinar si las siguientes cadenasw son o no generadas por G:

(i) w = bca. (iii) w = cabb.(ii) w = acbc. (iv) w = bbbaa.

Page 148: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa
Page 149: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

Capıtulo 5Automatas con pila

En el presente capıtulo presentamos el modelo de automata requerido paraaceptar los lenguajes independientes del contexto: el automata con pila no-determinista. Existe tambien la version determinista pero, a diferencia delo que sucede con los modelos AFD y AFN, los automatas con pila determi-nistas y no-deterministas no resultan ser computacionalmente equivalentes.

5.1. Automatas con Pila Deterministas (AFPD)

Un Automata Finito con Pila Determinista (AFPD) es una 7-upla,M = (Q, q0, F, Σ, Γ, z0, Δ), con los siguientes componentes:

1. Q es el conjunto (finito) de estados internos de la unidad de control.

2. q0 ∈ Q es el estado inicial.

3. F es el conjunto de estados finales o de aceptacion, ∅ �= F ⊆ Q.

4. Σ es el alfabeto de entrada, tambien llamado alfabeto de cinta.

5. Γ es el alfabeto de pila.

6. z0 ∈ Γ es el marcador de fondo, tambien llamado sımbolo inicial depila (z0 no pertenece al alfabeto de entrada Σ).

7. Δ es la funcion de transicion del automata:

Δ : Q × (Σ ∪ λ) × Γ → (Q × Γ∗).

143

Page 150: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

144 CAPITULO 5. AUTOMATAS CON PILA

Como en los modelos ya considerados (AFD, AFN y AFN-λ), un AFPDprocesa cadenas sobre una cinta de entrada semi-infinita, pero hay unacinta adicional, llamada pila, que es utilizada por el automata como lugarde almacenamiento. En un momento determinado, la unidad de control delautomata escanea un sımbolo a sobre la cinta de entrada y el sımbolo s enel tope o cima de la pila, como lo muestra la siguiente grafica:

· · · · · ·

...

q

s

...

a

La transicionΔ(q, a, s) = (q′, γ)

representa un paso computacional: la unidad de control pasa al estado q′

y se mueve a la derecha; ademas, borra el sımbolo s que esta en el tope dela pila, escribe la cadena γ (cadena que pertenece a Γ∗) y pasa a escanearel nuevo tope de la pila. La grafica que aparece en la parte superior de lapagina siguiente ilustra un paso computacional. Recalcamos que en cadamomento, el automata solo tiene acceso al sımbolo que esta en el tope dela pila; ademas, el contenido de la pila siempre se lee desde arriba (el tope)hacia abajo. Por estas dos razones la pila se dibuja verticalmente.

Casos especiales de transiciones:

1. Δ(q, a, s) = (q′, s). En este caso, el contenido de la pila no se altera.

2. Δ(q, a, s) = (q′, λ). El sımbolo s en el tope de la pila se borra y launidad de control pasa a escanear el nuevo tope de la pila, que es elsımbolo colocado inmediatamente debajo de s.

Page 151: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

5.1. AUTOMATAS CON PILA DETERMINISTAS (AFPD) 145

q q′

computacionalUn paso

...

≡s

...

· · · a · · ·

...

...

...

· · · a · · ·

Δ(q, a, s) = (q′, γ)

︷ ︸︸ ︷ ︷ ︸︸ ︷︷

︸︸︷

︷︸︸

︷︸︸

γ

u uβ β

3. Δ(q, λ, s) = (q′, γ). Esta es una transicion λ o transicion espontanea:el sımbolo sobre la cinta de entrada no se procesa y la unidad decontrol no se mueve a la derecha, pero el tope s de la pila es reem-plazado por la cadena γ. Para garantizar el determinismo, Δ(q, a, s)y Δ(q, λ, s), con a ∈ Σ, no pueden estar simultaneamente definidos(de lo contrario el automata tendrıa una opcion no-determinista). Lastransiciones espontaneas en un AFPD permiten que el automata cam-bie el contenido de la pila sin procesar (o consumir) sımbolos sobrela cinta de entrada.

Configuracion o descripcion instantanea. Es una tripla (q, au, sβ) querepresenta lo siguiente: el automata esta en el estado q, au es la parte noprocesada de la cadena de entrada y la unidad de control esta escaneando elsımbolo a. La cadena sβ es el contenido total de la pila; siendo s el sımbolocolocado en el tope.

La notacion (q, au, sβ) para configuraciones instantaneas es muy como-da: para representar el paso computacional de la figura que aparece arribaescribimos simplemente

(q, au, sβ) � (q′, u, γβ).

Aquı el automata utilizo la transicion Δ(q, a, s) = (q′, γ).La notacion

(q, u, β)∗� (p, v, γ)

Page 152: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

146 CAPITULO 5. AUTOMATAS CON PILA

significa que el automata pasa de la configuracion instantanea (q, u, β) a laconfiguracion instantanea (p, v, γ) en cero, uno o mas pasos computaciona-les.

Configuracion inicial. Para una cadena de entrada w ∈ Σ∗, la configura-cion inicial es (q0, w, z0). Al comenzar el procesamiento de toda cadena deentrada, el contenido de la pila es z0, que sirve como marcador de fondo.

Configuracion de aceptacion. La configuracion (p, λ, β), siendo p unestado final o de aceptacion, se llama configuracion de aceptacion. Estosignifica que, para ser aceptada, una cadena de entrada debe ser procesa-da completamente y la unidad de control debe terminar en un estado deaceptacion. La cadena β que queda en la pila puede ser cualquier cadenaperteneciente a Γ∗.

Lenguaje aceptado por un AFPD. El lenguaje aceptado por un AFPDM se define como

L(M) := {w ∈ Σ∗ : (q0, w, z0)∗� (p, λ, β), p ∈ F}.

O sea, una cadena es aceptada si se puede ir desde la configuracion inicialhasta una configuracion de aceptacion, en cero, uno o mas pasos.

✎ En el modelo AFPD se permite que la transicion Δ(q, a, s) noeste definida, para algunos valores q ∈ Q, a ∈ Σ, s ∈ Γ. Es-to implica que el computo de algunas cadenas de entrada puedeabortarse sin que se procesen completamente.

✎ No se debe confundir la tripla que aparece en la funcion de tran-sicion Δ(q, a, s) con la tripla (q, u, β) que representa una configu-racion instantanea.

✎ La definicion de la funcion de transicion Δ requiere que haya porlo menos un sımbolo en la pila. No hay computos con pila vacıa.

✎ Para los automatas con pila se pueden hacer diagramas de transi-ciones, similares a los ya conocidos, pero resultan de poca utilidadpractica ya que el procesamiento completo de una cadena de en-trada depende del contenido de la pila, el cual puede cambiar encada paso computacional.

✎ Los analizadores sintacticos en compiladores se comportan gene-ralmente como automatas con pila deterministas.

Page 153: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

5.1. AUTOMATAS CON PILA DETERMINISTAS (AFPD) 147

Un AFPD puede simular un AFD simplemente ignorando la pila; de estose deduce que los lenguajes regulares son aceptados por automatas AFPD.El siguiente teorema establece formalmente este resultado.

5.1.1 Teorema. Todo lenguaje regular L es aceptado por algun AFPD.

Demostracion. Sea M = (Q, q0, F, Σ, δ) un AFD que acepta a L. El AFPDM ′ = (Q, q0, F, Σ, Γ, z0, Δ) definido haciendo Γ = {z0} y

Δ(q, a, z0) = (δ(q, a), z0), para todo a ∈ Σ, q ∈ Q,

satisface claramente L(M ′) = L(M) = L.

Sin usar la pila un AFPD no puede hacer nada mas que un AFD, peroutilizando la pila como lugar de almacenamiento, un AFPD puede aceptarlenguajes no regulares, como se muestra en el siguiente ejemplo.�

�Ejemplo Disenar un AFPD que acepte el lenguaje L = {aibi : i ≥ 1},

sobre el alfabeto Σ = {a, b}. Recordemos que L no es regulary no puede ser aceptado por ningun automata normal (sin pila).

Solucion. La idea es copiar las aes en la pila y borrar luego una a por cada bque sea leıda sobre la cinta. Una cadena sera aceptada si es procesada com-pletamente y en la pila solo queda el marcador de fondo z0. Concretamente,M = (Q, q0, F, Σ, Γ, z0, Δ), donde

Σ = {a, b},Γ = {z0, A, B},Q = {q0, q1, q2},F = {q2},

y la funcion de transicion esta dada por:

Δ(q0, a, z0) = (q0, Az0),Δ(q0, a, A) = (q0, AA),Δ(q0, b, A) = (q1, λ),Δ(q1, b, A) = (q1, λ),Δ(q1, λ, z0) = (q2, z0).

Podemos ilustrar el procesamiento de varias cadenas de entrada. Sea, ini-cialmente, u = aaabbb.

(q0, aaabbb, z0) � (q0, aabbb, Az0) � (q0, abbb, AAz0) � (q0, bbb, AAAz0)� (q1, bb, AAz0) � (q1, b, Az0) � (q1, λ, z0) � (q2, λ, z0).

Page 154: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

148 CAPITULO 5. AUTOMATAS CON PILA

La ultima es una configuracion de aceptacion; por lo tanto la cadenau = aaabbb es aceptada.

Para la cadena de entrada v = aabbb, se obtiene el siguiente procesa-miento:

(q0, aabbb, z0) � (q0, abbb, Az0) � (q0, bbb, AAz0) � (q1, bb, Az0)� (q1, b, z0) � (q2, b, z0). [computo abortado]

Observese que el automata ha ingresado al estado de aceptacion q2 perola cadena de entrada no es aceptada debido a que no se ha procesadocompletamente; (q2, b, z0) no es una configuracion de aceptacion.

Para la cadena de entrada w = aaabb, se tiene:

(q0, aaabb, z0) � (q0, aabb, Az0) � (q0, abb, AAz0) � (q0, bb, AAAz0)� (q1, b, AAz0) � (q1, λ, Az0).

A pesar de que se ha procesado completamente la cadena de entrada w, laconfiguracion (q0, λ, Az0) no es de aceptacion. Por lo tanto, w = aaabb noes aceptada.�

�Ejemplo Disenar un AFPD que acepte el lenguaje de todas las cadenas

sobre el alfabeto Σ = {a, b} (diferentes de λ) que tienen igualnumero de aes que de bes.

Solucion. La idea es acumular las aes o bes consecutivas en la pila. Si enel tope de la pila hay una A y el automata lee una b, se borra la A; simi-larmente, si en el tope de la pila hay una B y el automata lee una a, seborra la B. La cadena de entrada sera aceptada si es procesada comple-tamente y en la pila solo queda el marcador de fondo z0. Concretamente,M = (Q, q0, F, Σ, Γ, z0, Δ), donde

Σ = {a, b},Γ = {z0, A, B},Q = {q0, q1, q2},F = {q2},

y la funcion de transicion esta dada por:

Δ(q0, a, z0) = (q1, Az0),Δ(q0, b, z0) = (q1, Bz0),Δ(q1, a, A) = (q1, AA),

Page 155: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

5.1. AUTOMATAS CON PILA DETERMINISTAS (AFPD) 149

Δ(q1, b, B) = (q1, BB),Δ(q1, a, B) = (q1, λ),Δ(q1, b, A) = (q1, λ),Δ(q1, λ, z0) = (q2, z0).

A continuacion procesamos algunas cadenas de entrada.Cadena de entrada: aabababb (aceptada).

(q0, aabababb, z0) � (q1, abababb, Az0) � (q1, bababb, AAz0)� (q1, ababb, Az0) � (q1, babb, AAz0) � (q1, abb, Az0)� (q1, bb, AAz0) � (q1, b, Az0) � (q1, λ, z0) � (q2, λ, z0).

Cadena de entrada: bbbaba (rechazada).

(q0, bbbaba, z0) � (q1, bbaba, Bz0) � (q1, baba, BBz0) � (q1, aba, BBBz0)� (q1, ba, BBz0) � (q1, a, BBBz0) � (q1, λ, BBz0).

En este ultimo caso, la cadena de entrada bbbaba es procesada completa-mente pero la configuracion final no es de aceptacion.�

�Ejemplo Disenar un AFPD que acepte el lenguaje

L ={wcwR : w ∈ {a, b}∗}.

sobre Σ = {a, b, c}. Notese que las cadenas w y wR solo poseen aes y/o bes.

Solucion. La idea es acumular los sımbolos en la pila hasta que aparezcala c. Luego se comparan los sımbolos leıdos con los almacenados en la pila,borrando en cada paso el tope de la pila. La cadena de entrada sera aceptadasi es procesada completamente y en la pila solo queda el marcador de fondoz0. En detalle, M = (Q, q0, F, Σ, Γ, z0, Δ), donde

Σ = {a, b},Γ = {s0, A, B},Q = {q0, q1, q2},F = {q2},

y la funcion de transicion esta dada por:

Δ(q0, a, z0) = (q0, Az0),Δ(q0, b, z0) = (q0, Bz0),

Page 156: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

150 CAPITULO 5. AUTOMATAS CON PILA

Δ(q0, c, z0) = (q2, z0) (para aceptar la cadena c),Δ(q0, a, A) = (q0, AA),Δ(q0, a, B) = (q0, AB),Δ(q0, b, A) = (q0, BA),Δ(q0, b, B) = (q0, BB),Δ(q0, c, A) = (q1, A),Δ(q0, c, B) = (q1, B),Δ(q1, a, A) = (q1, λ),Δ(q1, b, B) = (q1, λ),Δ(q1, λ, z0) = (q2, z0).

�Ejercicios de la seccion 5.1

➀ Disenar AFPD que acepten los siguientes lenguajes sobre Σ = {a, b}:(i) L = {aib2i : i ≥ 1}.(ii) L = {a2ibi : i ≥ 1}.

➁ Disenar AFPD que acepten los siguientes lenguajes sobre Σ = {0, 1}:(i) L = {0i1j0i : i, j ≥ 1}.(ii) L = {1i0j1i+j : i, j ≥ 1}.

5.2. Automatas con pila no-deterministas (AFPN)

Un Automata Finito con Pila No-Determinista (AFPN) consta delos mismos siete parametros de un AFPD, M = (Q, q0, F, Σ, Γ, z0, Δ), perola funcion de transicion Δ esta definida como:

Δ : Q × (Σ ∪ λ) × Γ → ℘f (Q × Γ∗),

donde ℘f (Q × Γ∗) es el conjunto de subconjuntos finitos de Q × Γ∗. Paraq ∈ Q, a ∈ Σ ∪ {λ} y s ∈ Γ, Δ(q, a, s) es de la forma

Δ(q, a, s) = {(p1, γ1), (p2, γ2), . . . , (pk, γk)}.

El significado de esta transicion es: al leer el sımbolo a sobre la cinta deentrada, la unidad de control puede pasar (aleatoriamente) a uno de losestados pi (1 ≤ i ≤ k) y se mueve a la derecha. Sobre la pila hace lo

Page 157: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

5.2. AUTOMATAS CON PILA NO-DETERMINISTAS (AFPN) 151

siguiente: borra el sımbolo s que esta en el tope y escribe la cadena γi

(cadena que pertenece a Γ∗).A diferencia de lo que sucede con los AFPD, en el modelo AFPN las

transiciones λ, Δ(q, λ, s), no tienen restriccion alguna.El lenguaje aceptado por un AFPN M se define como:

L(M) := {w ∈ Σ∗ : existe un computo (q0, w, z0)∗� (p, λ, β), p ∈ F}.

O sea, una cadena w es aceptada si existe por lo menos un procesamientode w desde la configuracion inicial hasta una configuracion de aceptacion.�

�Ejemplo Disenar un AFPN que acepte el lenguaje {aibi : i ≥ 0}, sobre

el alfabeto Σ = {a, b}.Solucion. El no-determinismo permite simplificar el AFPD presentado enel primer ejemplo de la seccion 5.1; bastan dos estados. Concretamente, sedefine M = (Q, q0, F, Σ, Γ, z0, Δ) como

Σ = {a, b},Γ = {z0, A, B},Q = {q0, q1},F = {q1},

donde la funcion de transicion esta dada por:

Δ(q0, a, z0) = {(q0, Az0)},Δ(q0, a, A) = {(q0, AA)},Δ(q0, b, A) = {(q0, λ)},Δ(q0, λ, z0) = {(q1, z0)}.

En este automata el no-determinismo surge unicamente por la presenciasimultanea de Δ(q0, a, z0) y Δ(q0, λ, z0).�

�Ejemplo Disenar un AFPN que acepte el lenguaje de todas las cadenas

sobre el alfabeto Σ = {a, b} que tienen igual numero de aesque de bes.Solucion. Simplificamos el automata del segundo ejemplo de la seccion 5.1;solo se requieren dos estados. Especıficamente, M = (Q, q0, F, Σ, Γ, z0, Δ),donde

Σ = {a, b},Γ = {z0, A, B},

Page 158: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

152 CAPITULO 5. AUTOMATAS CON PILA

Q = {q0, q1},F = {q1},

y la funcion de transicion esta dada por:

Δ(q0, a, z0) = {(q0, Az0)},Δ(q0, b, z0) = {(q0, Bz0)},Δ(q0, a, A) = {(q0, AA)},Δ(q0, b, B) = {(q0, BB)},Δ(q0, a, B) = {(q0, λ)},Δ(q0, b, A) = {(q0, λ)},Δ(q0, λ, z0) = {(q1, z0)}.

El no-determinismo se presenta unicamente por la presencia simultanea deΔ(q0, a, z0) y Δ(q0, λ, z0).

En contraste con lo que sucede con los modelos AFD y AFN, los modelosde automata con pila determinista (AFPD) y no-determinista (AFPN) noresultan ser computacionalmente equivalentes: existen lenguajes aceptadospor automatas AFPN que no pueden ser aceptados por ningun AFPD. Unejemplo concreto es el lenguaje L = {wwR : w ∈ Σ∗}. Como se mostrara acontinuacion, se puede construir un automata con pila no-determinista paraaceptar a L, pero no es posible disenar ningun AFPD que lo haga. Lademostracion de esta imposibilidad es bastante complicada y no la podemospresentar en el presente curso.�

�Ejemplo Disenar un AFPN que acepte el lenguaje L = {wwR : w ∈ Σ∗},

donde Σ = {a, b}. No es difıcil ver que L es el lenguaje de lospalındromos de longitud par.

Solucion. En el ultimo ejemplo de la seccion 5.1 se construyo un AFPDque acepta el lenguaje {wcwR : w ∈ {a, b}∗}. El lenguaje L del presenteejemplo es similar, excepto que ya no aparece el separador c entre w y wR.El no-determinismo se puede usar para permitirle al automata la opcion de“adivinar” cual es la mitad de la cadena de entrada. Si acierta, procedera acomparar el resto de la cadena de entrada con los sımbolos acumulados enla pila. Si no acierta, el automata continuara acumulando sımbolos en lapila y no llegara a un estado de aceptacion. Si la cadena de entrada tiene laforma deseada, entre todos los computos posibles estara aquel en el que elautomata adivina correctamente cuando ha llegado a la mitad de la cadena.

M se define como M = (Q, q0, F, Σ, Γ, z0, Δ) donde

Page 159: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

5.2. AUTOMATAS CON PILA NO-DETERMINISTAS (AFPN) 153

Σ = {a, b},Γ = {z0, A, B},Q = {q0, q1, q2},F = {q2},

y la funcion de transicion esta dada por:

Δ(q0, a, z0) = {(q0, Az0)},Δ(q0, b, z0) = {(q0, Bz0)},Δ(q0, λ, z0) = {(q2, z0)} (para aceptar λ),Δ(q0, a, A) = {(q0, AA), (q1, λ)},Δ(q0, a, B) = {(q0, AB)},Δ(q0, b, A) = {(q0, BA)},Δ(q0, b, B) = {(q0, BB), (q1, λ)},Δ(q1, a, A) = {(q1, λ)},Δ(q1, b, B) = {(q1, λ)},Δ(q1, λ, z0) = {(q2, z0)}.

Entre estas transiciones se destacan

Δ(q0, a, A) = {(q0, AA), (q1, λ)},Δ(q0, b, B) = {(q0, BB), (q1, λ)}

las cuales le permiten al automata una opcion no-determinista: o seguiracumulando sımbolos en la pila, en el estado q0, o suponer que se ha llegadoa la mitad de la cadena de entrada. En este ultimo caso, la unidad de controlpasa al estado q1 y comienza a borrar los sımbolos ya almacenados en lapila.�

�Ejercicios de la seccion 5.2

Disenar APFN que acepten los siguientes lenguajes:

➀ L = {0i1j : i, j ≥ 0, i �= j}, sobre Σ = {0, 1}.➁ L = {aibj : i ≥ j ≥ 0}.!➂ L = {a2ib3i : i ≥ 0}, sobre Σ = {a, b}.!➃ L = {0i1j : 0 ≤ i ≤ j ≤ 2i}, sobre Σ = {0, 1}.

Page 160: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

154 CAPITULO 5. AUTOMATAS CON PILA

5.3. Aceptacion por pila vacıa

En todos los modelos de automatas que hemos considerado en este cur-so, la aceptacion de cadenas esta determinada por los estados finales o deaceptacion. Para los automatas con pila existe otra nocion de aceptacion:la aceptacion por pila vacıa, definida a continuacion. Cuando se usa es-ta nocion, los automatas no requieren un conjunto F de estados finales,solamente los seis restantes componentes: Q, q0, Σ, Γ, z0 y Δ.

5.3.1 Definicion. Dado un automata con pila M = (Q, q0, Σ, Γ, z0, Δ), yasea AFPD o AFPN, el lenguaje aceptado por M por pila vacıa sedefine como

N(M) := {w ∈ Σ∗ : (q0, w, z0)∗� (p, λ, λ)}.

O sea, una cadena es aceptada por pila vacıa si se puede ir, en cero, uno omas pasos, desde la configuracion inicial hasta una configuracion en la quela pila este completamente desocupada1. Notese que, para ser aceptada, lacadena de entrada w debe ser procesada completamente.

Para automatas AFPN las nociones de aceptacion por pila vacıa y porestados finales resultan ser equivalentes, como se establece en los dos si-guientes teoremas. Es importante anotar que para automatas deterministasAFPD los dos tipos de aceptacion no resultan ser equivalentes.

5.3.2 Teorema. Si L = L(M) para algun automata con pila AFPN M ,entonces L = N(M ′) para algun AFPN M ′. Es decir, M ′ acepta por pilavacıa lo que M acepta por estado final.

Demostracion. Sea M = (Q, q0, F, Σ, Γ, z0, Δ). M ′ se disena modificandoM de tal manera que vacıe su pila cuando M haya aceptado una cadenade entrada. Concretamente, se define M ′ como

M ′ = (Q ∪ {p0, p}, p0, Σ, Γ ∪ {r0}, r0, Δ′)

donde p0 (estado inicial) y p son estados nuevos, y r0 es el nuevo marcadorde fondo. La funcion de transicion Δ′ se define ası:

1. Δ′(p0, λ, r0) = {(q0, z0r0)}. Transicion λ mediante la cual el nuevosımbolo inicial de pila se coloca en el fondo. Esto impedira que unacadena sea accidentalmente aceptada si el automata original M vacıala pila.

1La N en la notacion N(M) proviene de la expresion ‘pila nula’, sinonimo de ‘pilavacıa’.

Page 161: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

5.3. ACEPTACION POR PILA VACIA 155

2. Δ(q, a, s) ⊆ Δ′(q, a, s) para todo q ∈ Q, a ∈ Σ o a = λ y s ∈ Γ. Estoquiere decir que M ′ simula a M : todas las transiciones del automataoriginal tambien se pueden realizar en el nuevo automata.

3. (p, s) ∈ Δ′(q, λ, s) para todo q ∈ F , s ∈ Γ ∪ {r0}. Mediante estatransicion λ, M ′ pasa al nuevo estado p siempre que q sea un estadode aceptacion de M .

4. Δ′(p, λ, s) = {(p, λ)}. Mediante esta transicion λ, M ′ borra todo elcontenido de la pila.

Observese que las transiciones λ de los numerales 3 y 4 no consumen ningunsımbolo en la cadena de entrada. Ademas, la unica manera de que M ′

vacıe completamente la pila es ingresando al estado p, lo cual puede hacerunicamente desde un estado de aceptacion de M .

Si w es aceptada por M , o sea si w ∈ L(M), M realiza un computo dela forma

(q0, w, z0)∗� (q, λ, β)

donde q ∈ F y β ∈ Γ∗. Entonces en M ′ se puede efectuar el siguientecomputo:

(p0, w, r0) � (q0, w, z0r0)∗� (q, λ, βr0) � (p, λ, βr0)

∗� (p, λ, λ).

Por lo tanto, w ∈ N(M ′).Un razonamiento similar muestra que w ∈ N(M ′) implica w ∈ L(M)

(ejercicio para el estudiante). En conclusion, L(M) = N(M ′).

5.3.3 Teorema. Si L = N(M) para algun automata con pila AFPN M ,entonces L = L(M ′) para algun AFPN M ′. Es decir, M ′ acepta por estadofinal lo que M acepta por pila vacıa.

Demostracion. Sea M = (Q, q0, Σ, Γ, z0, Δ) un AFPN que acepta por pilavacıa. M ′ se disena anadiendo un nuevo estado q

fa M de tal manera que M ′

ingrese a tal estado (sera el unico estado de aceptacion) solamente cuandoM haya vaciado su pila. Concretamente, se define M ′ como

M ′ = (Q ∪ {p0, pf}, p0, {pf

}, Σ, Γ ∪ {r0}, r0, Δ′)

donde p0 (estado inicial) y pf

(unico estado de aceptacion) son estadosnuevos, y r0 es el nuevo sımbolo inicial de pila. La funcion de transicion Δ′

se define ası:

Page 162: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

156 CAPITULO 5. AUTOMATAS CON PILA

1. Δ′(p0, λ, r0) = {(q0, z0r0)}. Transicion λ mediante la cual el nuevosımbolo inicial de pila se coloca en el fondo. Cuando M ′ encuentre elmarcador de fondo r0, sabra que M ha vaciado su pila.

2. Δ(q, a, s) ⊆ Δ′(q, a, s) para todo q ∈ Q, a ∈ Σ o a = λ y s ∈ Γ. Estoquiere decir que M ′ simula a M : todas las transiciones del automataoriginal tambien se pueden realizar en el nuevo automata.

3. (pf, s) ∈ Δ′(q, λ, r0) para todo q ∈ Q. Mediante esta transicion λ, M ′

pasa al estado de aceptacion pf

cuando detecte el marcador de fondor0. O sea, M ′ acepta cuando M vacıe su pila.

Si w es aceptada por M , o sea si w ∈ N(M), M realiza un computo de laforma

(q0, w, z0)∗� (q, λ, λ)

donde q ∈ Q. Entonces en M ′ se puede efectuar el siguiente computo:

(p0, w, r0) � (q0, w, z0r0)∗� (q, λ, r0) � (p

f, λ, r0).

Por lo tanto, w ∈ L(M ′).

Un razonamiento similar muestra que w ∈ L(M ′) implica w ∈ N(M)(ejercicio para el estudiante). En conclusion, N(M) = L(M ′).

�Ejercicios de la seccion 5.3

➀ Modificar los automatas de los tres ejemplos de la seccion 5.2 paraque acepten por pila vacıa y no por estado final.

➁ Disenar AFPN que acepten por pila vacıa los siguientes lenguajes:

(i) L = {aib2i : i ≥ 1}, sobre Σ = {a, b}.(ii) L = {a2ibi : i ≥ 1}, sobre Σ = {a, b}.(iii) L = {0i1j : i, j ≥ 0, i �= j}, sobre Σ = {0, 1}.!(iv) L = {0i1j : 0 ≤ i ≤ j ≤ 2i}, sobre Σ = {0, 1}.

!➂ Completar los detalles faltantes en las demostraciones de los Teore-mas 5.3.2 y 5.3.3. ¿Por que estas demostraciones no son validas paraautomatas deterministas?

Page 163: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

5.4. AUTOMATAS CON PILA Y LIC. PARTE I. 157

5.4. Automatas con pila y LIC. Parte I.

Los lenguajes aceptados por los AFPN son exactamente los lenguajes inde-pendientes del contexto. Este es un resultado analogo al Teorema de Kleenepara lenguajes regulares, aunque en el caso de los automatas con pila, losmodelos deterministas no son computacionalmente equivalentes a los no-deterministas. En la presente seccion consideraremos la primera parte dela correspondencia entre AFPN y LIC.

5.4.1 Teorema. Dada una GIC G, existe un AFPN M tal que L(G) =L(M).

Bosquejo de la demostracion. Para una gramatica G = (Σ, V, S, P ) dada, seconstruye un AFPN que utiliza la pila para simular la derivacion de cadenasrealizada por G. M requiere solamente tres estados, independientemente delnumero de variables y producciones de G. Especıficamente, el automata Mse define como M = (Q, q0, F, Σ, Γ, z0, Δ), donde Q = {q0, q1, q2}, F = {q2}y Γ = Σ ∪ V ∪ {z0}. La funcion de transicion Δ se define de la siguientemanera:

1. Δ(q0, λ, z0) = {(q1, Sz0)}. Transicion λ mediante la cual M coloca elsımbolo inicial de la gramatica, S, en el tope de la pila al iniciar elprocesamiento de una cadena de entrada.

2. Para cada variable A ∈ V ,

Δ(q1, λ, A) = {(q1, u) : A → u es una produccion de la gramatica G}.

Mediante estas transiciones, M utiliza la pila para simular las deriva-ciones: si el tope de la pila es A y en la derivacion se usa la produccionA → u, el tope de la pila A es substituido por u.

3. Para cada sımbolo terminal a ∈ Σ, Δ(q1, a, a) = {(q1, λ)}. Median-te estas transiciones, M borra los terminales del tope de la pila alconsumirlos sobre la cinta de entrada.

4. Δ(q1, λ, z0) = {(q2, z0)}. M ingresa al estado de aceptacion q2 cuandodetecta el marcador de fondo z0.

El automata M esta disenado de tal forma que si S∗=⇒ w es una derivacion

a izquierda en la gramatica G, entonces existe un procesamiento

(q0, w, s0) � (q0, w, Ss0)∗� (q2, λ, z0)

Page 164: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

158 CAPITULO 5. AUTOMATAS CON PILA

que simula la derivacion.

Recıprocamente, puede demostrarse que si (q0, w, z0)∗� (q2, λ, z0) enton-

ces S∗=⇒ w en la gramatica G.

�Ejemplo Sea G la gramatica:

G :

⎧⎪⎨⎪⎩S → aAbS | bBa | λ

A → aA | a

B → bB | b

Segun la construccion del Teorema 5.4.1, el automata M esta dado porM = (Q, q0, F, Σ, Γ, z0, Δ) donde

Q = {q0, q1, q2},F = {q2},Γ = {a, b, S, A, B, z0},

y la funcion de transicion Δ es:

Δ(q0, λ, z0) = {(q1, Sz0)},Δ(q1, λ, S) = {(q1, aAbS), (q1, bBa), (q1, λ)},Δ(q1, λ, A) = {(q1, aA), (q1, a)},Δ(q1, λ, B) = {(q1, bB), (q1, b)},Δ(q1, a, a) = {(q1, λ)},Δ(q1, b, b) = {(q1, λ)},

Δ(q1, λ, z0) = {(q2, z0)}.Podemos ilustrar la correspondencia entre derivaciones en G y procesa-mientos en M con la cadena aabbba, la cual tiene la siguiente derivacion aizquierda:

S =⇒ aAbS =⇒ aabS =⇒ aabbBa =⇒ aabbba.

El automata M simula esta derivacion de la cadena aabbba ası:

(q0, aabbba, z0) � (q1, aabbba, Sz0) � (q1, aabbba, aAbSz0)� (q1, abbba, AbSz0) � (q1, abbba, abSz0)� (q1, bbba, bSz0) � (q1, bba, Sz0) � (q1, bba, bBaz0)� (q1, ba, Baz0) � (q1, ba, baz0) � (q1, a, az0)� (q1, λ, z0) � (q2, λ, z0).

Page 165: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

5.4. AUTOMATAS CON PILA Y LIC. PARTE I. 159

�Ejemplo La siguiente gramatica genera los palındromos de longitud par,

sobre Σ = {a, b}, es decir, el lenguaje L = {wwR : w ∈ Σ∗}:S → aSa | bSb | λ.

Siguiendo el procedimiento del Teorema 5.4.1 podemos construir un AFPNque acepta a L. M = (Q, q0, F, Σ, Γ, z0, Δ) donde

Q = {q0, q1, q2},F = {q2},Γ = {a, b, S, z0}.

La funcion de transicion Δ esta dada por:

Δ(q0, λ, z0) = {(q1, Sz0)},Δ(q1, λ, S) = {(q1, aSa), (q1, bSb), (q1, λ)},Δ(q1, a, a) = {(q1, λ)},Δ(q1, b, b) = {(q1, λ)},

Δ(q1, λ, z0) = {(q2, z0)}.

Puede observarse que este automata es diferente del exhibido en el tercerejemplo de la seccion 5.2.

�Ejercicios de la seccion 5.4

➀ Construir un AFPN M que acepte el lenguaje generado por la si-guiente gramatica:

G :

⎧⎪⎨⎪⎩S → Aba | AB | λ

A → aAS | a

B → bBA | λ.

Encontrar una derivacion a izquierda en G de la cadena w = aaababay procesar luego la cadena w con el automata M , simulando la deri-vacion.

➁ Disenar una gramatica, con una sola variable, que genere el lenguajeL = {a2ib3i : i ≥ 0} y utilizar luego el procedimiento del Teore-ma 5.4.1 para construir un AFPN que acepte a L. Comparar esteautomata con el construido en el ejercicio ➂ de la seccion 5.2.

Page 166: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

160 CAPITULO 5. AUTOMATAS CON PILA

5.5. Automatas con pila y LIC. Parte II. �En la presente seccion consideraremos la segunda parte de la corresponden-cia entre AFPN y LIC. Demostraremos que para todo AFPN que acepta porpila vacıa existe una GIC que genera el lenguaje aceptado por el automata.Las gramaticas obtenidas son, en general, bastante complejas, con un grannumero de variables y de producciones. Hay que advertir tambien que elprocedimiento puede dar lugar a muchas variables inutiles (no-terminableso no alcanzables).

5.5.1 Teorema. Dado un AFPN M = (Q, q0, Σ, Γ, z0, Δ) que acepta porpila vacıa, existe una GIC G = (Σ, V, S, P ) tal que L(G) = N(M).

Demostracion. En la gramatica G las variables (aparte de la variable ini-cial S) seran tripletas de la forma [qXp] donde q, p ∈ Q y X ∈ Γ. Lasproducciones de G se definen de la siguiente manera:

1. Si (p, λ) ∈ Δ(q, a, X), se anade la produccion [qXp] → a.

2. Si (p, λ) ∈ Δ(q, λ, X), se anade la produccion [qXp] → λ.

3. Si (r, Y1Y2 · · ·Yk) ∈ Δ(q, a, X), donde a puede ser un sımbolo delalfabeto Σ o a = λ y k ≥ 1, se anaden todas las producciones de laforma

[qXrk] → a[rY1r1][r1Y2r2] · · · [rk−1Ykrk]

para todas las secuencias posibles r1, r2, . . . , rk−1 de estados de Q.

4. Para todo p ∈ Q se anade la produccion S → [q0z0p].

La gramatica G ası definida pretende simular con derivaciones a izquierdalos computos de M ; el significado intuitivo de la variable [qXp] es: “al ex-traer X del tope de la pila, se pasa del estado q al estado p”. La produccion

[qXrk] → a[rY1r1][r1Y2r2] · · · [rk−1Ykrk]

del numeral 3 indica las posibles maneras en las que M puede extraer lacadena Y1Y2 · · ·Yk de la pila, una vez se haya sustituido el tope de la pilaX por dicha cadena, pasando del estado q al estado r y consumiendo elsımbolo a.

Demostraremos primero la inclusion N(M) ⊆ L(G). Para todo q, p ∈ Q,X ∈ Γ y w ∈ Σ∗, se demostrara la implicacion

(5.1) si (q, w, X)+� (p, λ, λ) entonces [qXp] +=⇒ w,

Page 167: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

5.5. AUTOMATAS CON PILA Y LIC. PARTE II. � 161

por induccion sobre el numero de pasos del computo (q, w, X)+� (p, λ, λ).

Cuando hay un solo paso, el computo es de la forma (q, a, X) � (p, λ, λ)o de la forma (q, λ, X) � (p, λ, λ). Si (q, a, X) � (p, λ, λ), entonces (p, λ) ∈Δ(q, a, X); ası que [qXp] → a es una produccion de G, y se obtendra laderivacion [qXp] =⇒ a. Si (q, λ, X) � (p, λ, λ), entonces (p, λ) ∈ Δ(q, λ, X);ası que [qXp] → λ es una produccion de G y se obtendra [qXp] =⇒ λ.

Para el razonamiento inductivo, supongase que (q, w, X)n� (p, λ, λ) don-

de n > 1. Considerando el primer paso de este computo de n pasos, podemosescribir:

(5.2) (q, ax, X) � (r0, x, Y1Y2 · · ·Yk)∗� (p, λ, λ),

donde a ∈ Σ o a = λ. Cuando a ∈ Σ, w = ax para alguna cadena x ∈ Σ∗;cuando a = λ, x = w. En el primer paso de 5.2 se ha aplicado la transicion(r0, Y1Y2 · · ·Yk) ∈ Δ(q, a, X) de M . Por la definicion de la gramatica G,

[qXrk] → a[r0Y1r1][r1Y2r2] · · · [rk−1Ykrk]

es una produccion, para todas las secuencias posibles r1, r2, . . . , rk−1 deestados de Q.

Segun 5.2, desde la configuracion instantanea (r0, x, Y1Y2 · · ·Yk) el au-tomata llega hasta la configuracion (p, λ, λ), consumiendo completamentela cadena x y vaciando la pila. La cadena x se puede escribir entoncescomo x = w1w2 · · ·wk, siendo wi la cadena consumida por el automatapara extraer el sımbolo Yi del tope de la pila. En consecuencia, existe unasecuencia de estados r1, r2,. . . , rk−1, rk = p tales que

(r0, x, Y1Y2 · · ·Yk) = (r0, w1w2 · · ·wk, Y1Y2 · · ·Yk)+� (r1, w2 · · ·wk, Y2 · · ·Yk)

+� (r2, w3 · · ·wk, Y3 · · ·Yk)

+� (rk−1, wk, Yk)

+� (rk, λ, λ).

Para i = 1, 2, . . . , k se tiene ası una secuencia de computos parciales

(ri−1, wi, Yi)+� (ri, λ, λ),

donde rk = p. Por la hipotesis de induccion, [ri−1Yiri]+=⇒ wi para i =

1, 2, . . . , k. Por consiguiente,

[qXp] = [qXrk] =⇒ a[r0Y1r1][r1Y2r2] · · · [rk−1Ykrk]+=⇒ aw1w2 · · ·wk = w.

Page 168: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

162 CAPITULO 5. AUTOMATAS CON PILA

Esto demuestra la implicacion 5.1. Por lo tanto, si w es aceptada por

M , siendo w �= λ, se tendra (q0, w, z0)+� (p, λ, λ), y usando 5.1 se con-

cluira que S =⇒ [q0z0p] +=⇒ w. Si w = λ es aceptada por M , nece-sariamente (q0, λ, z0) � (p, λ, λ) para algun estado p. Esto significa que(q0, λ, z0) � (p, λ, λ), y se tendra S =⇒ [q0z0p] =⇒ λ. Esto demuestra queN(M) ⊆ L(G).

Para establecer L(G) ⊆ N(M) se demuestra la implicacion

(5.3) si [qXp] +=⇒ w, entonces (q, w, X)+� (p, λ, λ),

por induccion sobre el numero de pasos en la derivacion [qXp] +=⇒ w.Este razonamiento inductivo es similar al usado para probar la implicacionrecıproca 5.1, y se deja como ejercicio para el estudiante interesado. Si enG se puede derivar la cadena w, es decir, si S

∗=⇒ w, la primera produccionaplicada sera de la forma S → [q0z0p]. De donde, S =⇒ [q0z0p] +=⇒ w.

Usando 5.3 se concluye (q0, w, z0)+� (p, λ, λ), o sea w ∈ N(M).

�Ejemplo Vamos a aplicar la construccion del Teorema 5.5.1 para encon-

trar una gramatica G que genere el lenguaje de las cadenassobre el alfabeto Σ = {a, b} que tienen igual numero de aes que de bes, apartir del AFPN M = (Q, q0, F, Σ, Γ, z0, Δ) con los siguientes componentes.Σ = {a, b}, Γ = {z0, A, B}, Q = {q0, q1}, F = {q1} y la funcion de transicionΔ esta dada por:

Δ(q0, a, z0) = {(q0, Az0)},Δ(q0, b, z0) = {(q0, Bz0)},Δ(q0, a, A) = {(q0, AA)},Δ(q0, b, B) = {(q0, BB)},Δ(q0, a, B) = {(q0, λ)},Δ(q0, b, A) = {(q0, λ)},Δ(q0, λ, z0) = {(q1, λ)}.

M es una modificacion del automata presentado en el segundo ejemplo dela seccion 5.2 (en ese ejemplo M aceptaba por estado final; aquı M aceptapor pila vacıa).

Las variables de G son S y todas las tripletas de la forma [qXp] dondeq, p ∈ Q y X ∈ Γ. Hay, por lo tanto, 13 variables, a saber:

S, [q0z0q0], [q0Aq0], [q0Bq0], [q0z0q1], [q0Aq1], [q0Bq1],[q1z0q0], [q1Aq0], [q1Bq0], [q1z0q1], [q1Aq1], [q1Bq1].

Page 169: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

5.5. AUTOMATAS CON PILA Y LIC. PARTE II. � 163

A continuacion se presentan las producciones de G.Produccion obtenida de Δ(q0, λ, z0) = {(q1, λ)}:

[q0z0q1] → λ.

Produccion obtenida de Δ(q0, a, B) = {(q0, λ)}:[q0Bq0] → a.

Produccion obtenida de Δ(q0, b, A) = {(q0, λ)}:[q0Aq0] → b.

Producciones obtenidas de Δ(q0, a, z0) = {(q0, Az0)}:[q0z0q0] → a[q0Aq0][q0z0q0] | a[q0Aq1][q1z0q0]

[q0z0q1] → a[q0Aq0][q0z0q1] | a[q0Aq1][q1z0q1].

Producciones obtenidas de Δ(q0, b, z0) = {(q0, Bz0)}:[q0z0q0] → b[q0Bq0][q0z0q0] | b[q0Bq1][q1z0q0]

[q0z0q1] → b[q0Bq0][q0z0q1] | b[q0Bq1][q1z0q1].

Producciones obtenidas de Δ(q0, a, A) = {(q0, AA)}:[q0Aq0] → a[q0Aq0][q0Aq0] | a[q0Aq1][q1Aq0]

[q0Aq1] → a[q0Aq0][q0Aq1] | a[q0Aq1][q1Aq1].

Producciones obtenidas de Δ(q0, b, B) = {(q0, BB)}:[q0Bq0] → b[q0Bq0][q0Bq0] | b[q0Bq1][q1Bq0]

[q0Bq1] → b[q0Bq0][q0Bq1] | b[q0Bq1][q1Bq1].

Finalmente, las producciones de la variable inicial S son:

S → [q0z0q0] | [q0z0q1].

Al examinar las producciones se puede observar que todas las variables de laforma [q1Xq], con X ∈ Γ y q ∈ Q, son inutiles ya que no tienen produccio-nes. Con la terminologıa ya conocida, dichas variables son no-terminablesy, por consiguiente, las producciones en las que aparecen se pueden elimi-nar. Otra variable no terminable es [q0z0q0]. Ademas, las variables [q0Aq1]y [q0Bq1] son inalcanzables, ası que se pueden eliminar, junto con todas

Page 170: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

164 CAPITULO 5. AUTOMATAS CON PILA

sus producciones. Realizando estas simplificaciones se obtiene la siguientegramatica:

S → [q0z0q1]

[q0z0q1] → a[q0Aq0][q0z0q1] | b[q0Bq0][q0z0q1] | λ

[q0Aq0] → a[q0Aq0][q0Aq0] | b

[q0Bq0] → b[q0Bq0][q0Bq0] | a.

Como se indico en la demostracion, en las gramaticas construidas segun elmetodo del Teorema 5.5.1, las derivaciones a izquierda corresponden a loscomputos en el automata dado. Podemos ilustrar este punto, en el presenteejemplo, con la cadena de entrada w = bbabaa. El siguiente es un computode aceptacion de w en M :

(q0, bbabaa, z0) � (q0, babaa, Bz0) � (q0, abaa, BBz0) � (q0, baa, Bz0)� (q0, aa, BBz0) � (q0, a, Bz0) � (q0, λ, z0) � (q1, λ, λ).

La derivacion a izquierda en G que corresponde a este computo es:

S =⇒ [q0z0q1] =⇒ b[q0Bq0][q0z0q1] =⇒ bb[q0Bq0][q0Bq0][q0z0q1]=⇒ bba[q0Bq0][q0z0q1] =⇒ bbab[q0Bq0][q0Bq0][q0z0q1]=⇒ bbaba[q0Bq0][q0z0q1] =⇒ bbabaa[q0z0q1] =⇒ bbabaa.

Observese que, en cada paso de la derivacion, el contenido actual de la pilase puede leer examinando las segundas componentes de las tripletas.

Para hacer mas legibles las producciones de la gramatica G obtenidaen este ejemplo, cambiamos los nombres de las variables ası: C = [q0z0q1],D = [q0Aq0] y E = [q0Bq0]. Con esta nomenclatura, la gramatica se puedeescribir como:

G :

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩S → C

C → aDC | bEC | λ

D → aDD | b

E → bEE | a

Puesto que la unica produccion de S es S → C, las variables S y C se puedenidentificar, dando lugar a la siguiente gramatica simplificada equivalente:⎧⎪⎨⎪⎩

S → aDS | bES | λ

D → aDD | b

E → bEE | a

Page 171: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

5.5. AUTOMATAS CON PILA Y LIC. PARTE II. � 165

�Ejercicios de la seccion 5.5

➀ Con respecto al ejemplo de esta seccion, procesar con M la cadena deentrada w = baabbbaa y luego derivar w en la gramatica G, simulandodicho procesamiento.

!➁ Disenar un AFPN que acepte el lenguaje L de las cadenas sobre elalfabeto Σ = {a, b} que tienen el doble numero de aes que de bes.Aplicar luego la construccion del Teorema 5.5.1 para encontrar unagramatica que genere a L.

Page 172: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa
Page 173: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

Capıtulo 6Maquinas de Turing

En este capıtulo se presenta la Maquina de Turing (MT) que es el modelode automata con maxima capacidad computacional: la unidad de controlpuede desplazarse a izquierda o a derecha y sobre-escribir sımbolos en lacinta de entrada. Argumentaremos que la maquina de Turing tiene la mismapotencia o capacidad de los computadores reales.

6.1. Maquinas de Turing como aceptadoras delenguajes

Una maquina de Turing (MT), M = (Q, q0, F, Σ, Γ, b, δ), consta de sietecomponentes:

1. Q es el conjunto (finito) de estados internos de la unidad de control.

2. q0 ∈ Q es el estado inicial.

3. F es el conjunto de estados finales o de aceptacion, ∅ �= F ⊆ Q.

4. Σ es el alfabeto de entrada.

5. Γ es el alfabeto de cinta, que incluye a Σ, es decir, Σ ⊆ Γ.

6. b ∈ Γ es el sımbolo “blanco” (el sımbolo b no puede hacer parte delalfabeto de entrada Σ).

7. δ es la funcion de transicion de la maquina:

δ : Q × Γ −→ Q × Γ × {←,→}

167

Page 174: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

168 CAPITULO 6. MAQUINAS DE TURING

δ es una funcion parcial, es decir, puede no estar definida en algunoselementos del dominio. La flecha ← denota desplazamiento a izquierdamientras que → denota desplazamiento a la derecha. La transicion

δ(q, a) = (p, b, D)

significa: estando en el estado q, escaneando el sımbolo a, la unidadde control borra a, escribe b y se mueve en el estado p, ya sea a laizquierda (si el desplazamiento D es ←) o a la derecha (si D es →).

Una maquina de Turing M procesa cadenas de entrada w ∈ Σ∗ colocadassobre una cinta infinita en ambas direcciones. Para procesar una cadena deentrada w, la unidad de control de M esta en el estado inicial q0 escaneandoel primer sımbolo de w. Las demas celdas o casillas de la cinta contienen elsımbolo blanco b.

Descripcion o configuracion instantanea. Es una expresion de la forma

a1a2 · · · ai−1qai · · · an

donde los sımbolos a1, . . . , an pertenecen al alfabeto de cinta Γ y q ∈ Q.Esta expresion representa el estatus actual del computo:

· · · · · · · · · · · ·a1 a2 ai−1 ai an

q

Es decir, la descripcion instantanea a1a2 · · · ai−1qai · · · an indica que la uni-dad de control de M esta en el estado q escaneando el sımbolo ai. Se suponeque todas las casillas, a la izquierda a1 y a la derecha de an, contienen elsımbolo blanco, b.

Ejemplos concretos de descripciones instantaneas son:

aabq2baaaq5ababba

ab b baabq0bba

Page 175: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.1. MAQUINAS DE TURING COMO ACEPTADORAS DE LENGUAJES 169

La configuracion o descripcion instantanea inicial, o simplemente confi-guracion inicial, es q0w, donde w es la cadena de entrada. Esta se colocaen cualquier parte de la cinta de entrada.

Paso computacional. El paso de una descripcion instantanea a otra, pormedio de una transicion definida por δ, se denomina un paso computacionaly se denota por

u1qu2 � v1pv2.

Aquı u1, u2, v1, v2 ∈ Γ∗ y p, q ∈ Q. Un ejemplo concreto es

abbaq2ba � abbq1aca

en la cual la maquina utilizo la transicion δ(q2, b) = (q1, c,←).La notacion

u1qu2

∗� v1pv2

significa que M puede pasar de la descripcion instantanea u1qu2 a la des-cripcion instantanea v1pv2 en cero, uno o mas pasos computacionales.

Computos especiales. Durante el computo o procesamiento de una ca-dena de entrada hay dos situaciones especiales que se pueden presentar:

1. El computo termina porque en determinado momento no hay transi-cion definida.

2. El computo no termina; esto es lo que se denomina un “bucle infinito”o un “ciclo infinito”. Esta situacion se representa con la notacion

u1qu2

∗� ∞

la cual indica que el computo que se inicia en la descripcion ins-tantanea u1qu2 no se detiene nunca.

Un detalle para tener en cuenta es que las transiciones con sımbolo b,δ(q, b) = (p, s, D), no son las mismas transiciones λ usadas para automa-tas en capıtulos anteriores. Una transicion λ en un automata tiene lugarindependientemente del sımbolo leıdo y la unidad de control permaneceestacionaria, mientras que una transicion δ(q, b) = (p, s, D) en una MT re-quiere que el sımbolo blanco b este escrito en la casilla escaneada; ademas,la unidad de control sobre-escribe el blanco y realiza un desplazamiento D.

Lenguaje aceptado por una MT. Una cadena de entrada w es aceptadapor una MT M si el computo que se inicia en la configuracion inicial q0w

Page 176: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

170 CAPITULO 6. MAQUINAS DE TURING

termina en una configuracion instantanea w1pw2, p estado de aceptacion,en la cual M se detiene completamente. El lenguaje L(M) aceptado poruna MT M se define entonces como

L(M) := {w ∈ Σ∗ : q0w∗� w1pw2, p ∈ F, w1, w2 ∈ Γ∗, M se detiene

en la configiguracion w1pw2}.La nocion de aceptacion para maquinas de Turing es mas flexible que paraautomatas: una cadena de entrada no tiene que ser leıda en su totalidadpara que sea aceptada; solo se requiere que la maquina se detenga comple-tamente, en un momento determinado, en un estado de aceptacion.

Para simplificar los argumentos sobre maquinas de Turing, en el modeloestandar se supone que la unidad de control siempre se detiene al ingresara en un estado de aceptacion. Es decir, no se permiten transiciones δ(q, a)cuando q ∈ F .

Las maquinas de Turing originan las siguientes clases de lenguajes:

1. L es un lenguaje recursivamente enumerable (RE) si existe una MTM tal que L(M) = L.

2. L es un lenguaje recursivo si existe una MT M tal que L(M) = L yM se detiene con todas las cadenas de entrada.

Las denominaciones “lenguaje recursivamente enumerable” y “lenguaje re-cursivo” pueden parecer un tanto extranas; esta terminologıa es anterior ala aparicion del modelo de maquina de Turing y se ha mantenido vigentehasta el presente. En el Teorema 6.8.3 se justificara la denominacion “re-cursivamente enumerable” (RE) al establecerse que para todo lenguaje REse puede construir una MT que enumere secuencialmente sus cadenas.

Obviamente, todo lenguaje recursivo es recursivamente enumerable, perola afirmacion recıproca no es (en general) valida, como se demostrara enla seccion 7.5. Esto permitira concluir que el fenomeno de maquinas quenunca se detienen no se puede eliminar de la teorıa de la computacion.

Diagrama de transiciones o diagrama de flujo de una MT. Lafuncion de transicion δ de una MT se puede presentar como un digrafoetiquetado. Ası, la transicion δ(q, a) = (p, b,→) se representa por

q p

a|b→

Page 177: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.1. MAQUINAS DE TURING COMO ACEPTADORAS DE LENGUAJES 171

Unidad de control estacionaria. Para simplificar la descripcion del mo-delo estandar, se ha exigido que la unidad de control se desplace haciala izquierda o hacia la derecha en cada transicion. No obstante, se puedepermitir que la unidad de control no se mueva en un determinado pasocomputacional, es decir, que no realice ningun desplazamiento. Este tipode transicion lo escribimos en la forma:

δ(q, a) = (p, b,−)

donde a, b ∈ Γ; p, q ∈ Q y − significa que la unidad de control no semueve. Tal transicion se puede simular por medio de un movimiento a laderecha seguido de un retorno a la izquierda. Ası, para simular la transicionδ(q, a) = (p, b,−) utilizamos un estado auxiliar nuevo q′ y las transiciones:

δ(q, a) = (q′, b,→),δ(q′, s) = (p, s,←), para todo sımbolo s ∈ Γ.

La directriz de no-desplazamiento tambien se puede simular con un movi-miento a la izquierda seguido de un retorno a la derecha. En cualquiercaso, concluimos que las MT en las que hay transiciones estacionarias,δ(q, a) = (p, b,−), aparte de las transiciones normales, aceptan los mismoslenguajes que las MT estandares. Notese que las transiciones estacionariasse asemejan a las transiciones λ en automatas, excepto por el hecho de quelas maquinas de Turing tienen la capacidad de sobre-escribir los sımbolosescaneados.�

�Ejemplo La siguiente MT acepta el lenguaje de las cadenas con un

numero par de ceros, sobre el alfabeto {0, 1}.

> q0 q1

q2

0|0→

0|0→b| b−

1|1→ 1|1→

�Ejemplo En este ejemplo se construye una MT M que acepta el lenguaje

L = {aibici : i ≥ 0} y que se detiene al procesar todas lasentradas. Por consiguiente, L es un lenguaje recursivo aunque no es LIC,

Page 178: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

172 CAPITULO 6. MAQUINAS DE TURING

como se demostro en la seccion 4.13; es decir, L no puede ser aceptado porningun automata con pila.

Sea M la MT con parametros

Σ = {a, b, c},Γ = {a, b, c, X, Y, Z, b},Q = {q0, q1, q2, q3, q4, q5},F = {q5},

y cuya funcion de transicion esta representada por el siguiente diagrama:

> q0 q1 q2 q3

q5q4

a|X→b|Y → c|Z←

X|X→

b| b→

b| b→

Y |Y →

Y |Y →Z|Z→

b|b→Z|Z→

a|a→Y |Y →

a|a←b|b←Y |Y ←Z|Z←

La idea utilizada para el diseno de esta MT se puede describir ası: la uni-dad de control cambia la primera a por X y se mueve a la derecha hastaencontrar la primera b, la cual se sobre-escribe por una Y . Luego se muevehacia la derecha hasta encontrar la primera c, la cual se cambia por Z. Elcontrol retrocede entonces hacia la izquierda en busca de la primera X queencuentre en su camino; este retorno se hace en el estado q3. La maquinaavanza luego hacia la derecha, hasta la primera a que quede en la cinta, ytodo el proceso anterior se repite. Si la cadena de entrada tiene la formarequerida, todas las aes seran reemplazadas por Xs, las bes por Y s y lasces por Zs. Una vez terminada la transformacion, el control se mueve haciala derecha, en el estado q4, hasta encontrar la primera celda marcada conel sımbolo blanco b. La MT esta disenada de tal forma que si la cadena

Page 179: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.1. MAQUINAS DE TURING COMO ACEPTADORAS DE LENGUAJES 173

de entrada no tiene la forma requerida, el procesamiento terminara en unestado diferente del estado de aceptacion q5.

A continuacion procesamos la cadena de entrada w = aabbcc ∈ L.

q0aabbcc � Xq1abbcc � Xaq1bbcc � XaY q2bcc � XaY bq2cc � XaY bq3bZc∗� q3XaY bZc � Xq0aY bZc � XXq1Y bZc � XXY q1bZc

� XXY Y q2Zc � XXY Zq2c � XXY q3ZZ∗� Xq3XY ZZ

� XXq0Y Y ZZ � XXY q4Y ZZ∗� XXY Y ZZq4 b

� XXY Y ZZ bq5 b.

La cadena de entrada w = aaabbcc, que no esta en L, se procesa ası:

q0aaabbcc � Xq1aabbcc � Xaaq1bbcc � XaaY q2bcc � XaaY bq2cc

� XaaY bq3bZc∗� q3XaaY bZc � Xq0aaY bZc � XXaq1Y bZc

� XXaY q1bZc � XXaY Y q2Zc � XXaY Zq2c � XXaY q3ZZ∗� Xq3XaY ZZ � XXq0aY Y ZZ � XXXq1Y Y ZZ∗� XXXY Y q1ZZ (computo abortado).

Por otro lado, la cadena abbbcc, que tampoco esta en L, se procesarıa ası:

q0abbcc � Xq1bbcc � XY q2bcc � XY bq2cc � XY q3bZc∗� q3XY bZc

� Xq0Y bZc � XY q4bZc (computo abortado).

�Ejercicios de la seccion 6.1

Segun los ejercicios de la seccion 4.13, los siguientes lenguajes no son LIC.Disenar MT que los acepten, escribiendo explıcitamente la idea utilizada enel diseno. Presentar cada MT por medio de un diagrama de transiciones.

➀ L = {aibicj : j ≥ i}.➁ L = {0i12i0i : i ≥ 0}.➂ L = {aibjck : 1 ≤ i ≤ j ≤ k}.➃ L = {aibjcidj : i, j ≥ 0}.➄ L = {aibicidi : i ≥ 0}.

Page 180: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

174 CAPITULO 6. MAQUINAS DE TURING

6.2. Subrutinas o macros

Hay procedimientos intermedios, como copiar o trasladar cadenas, que serepiten frecuentemente en el diseno de maquinas de Turing. Es util identifi-car algunos de estos procedimientos, similares a las subrutinas o macros delos programas computacionales, para simplificar el diseno de maquinas mascomplejas. Las subrutinas se pueden considerar como maquinas de Turingcon estado inicial pero sin estados de aceptacion.�

�Ejemplo Subrutina TI, traslacion a la izquierda. Esta subrutina toma una

cadena de entrada y la traslada una casilla hacia la izquierda.Si la entrada es la cadena a1a2 · · · ak, la accion de TI se puede representaren la forma

Entrada: ba1· · ·ak−1ak b� � � � �

Salida: a1a2· · · ak b b

La flecha � indica que las casillas senaladas sobre la cinta coinciden. Lossımbolos subrayados en las dos cintas representan los sımbolos leıdos porla unidad de control al iniciar y al terminar la subrutina, respectivamente.

La MT que aparece a continuacion sirve para implementar la subrutinaTI cuando el alfabeto de entrada es {a, b, c}:

> q0 q1

qa

qb

qc

b| b ← b|b →

a| b ← b|a →

c| b ← b|c →

b| b →

A continuacion definimos algunos otras subrutinas utiles; se solicita al es-tudiante disenar MT que los implementen.

Page 181: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.2. SUBRUTINAS O MACROS 175

Subrutina TD, traslacion a la derecha. Traslada la cadena de entrada unacasilla a la derecha:

Entrada: ba1a2· · · ak b� � � � �

Salida: b ba1· · ·ak−1ak

Subrutina BI, primer blanco a la izquierda. Busca el primer sımbolo b a laizquierda de una cadena w que no posee blancos:

Entrada: bw b� �

Salida: bw b

Subrutina BD, primer blanco a la derecha. Busca el primer sımbolo b a laderecha de una cadena w que no posee blancos:

Entrada: bw b� �

Salida: bw b

Subrutina NBI, primer sımbolo no-blanco a la izquierda. Busca el primersımbolo diferente de b a la izquierda de una cadena de blancos:

Entrada: a b b· · · b b��� ��

Salida: a b b· · · b b

Subrutina NBD, primer sımbolo no-blanco a la derecha. Busca el primersımbolo diferente de b a la derecha de una cadena de blancos:

Entrada: b b· · · b ba�� � ��

Salida: b b· · · b ba

Subrutina COPD, copia a la derecha. Copia la cadena w a la derecha de simisma, separando las dos w por un blanco b. La cadena w no posee blancos:

Entrada: bw b· · · b� � �

Salida: bw b w b

Subrutina COPI, copia a la izquierda. Copia la cadena w a la izquierda de simisma, separando las dos w por un blanco b. La cadena w que no posee

Page 182: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

176 CAPITULO 6. MAQUINAS DE TURING

blancos:Entrada: b· · · bw b

� � �Salida: b w bw b

Subrutina INT, intercambio. Intercambia las cadenas u y v (estas cadenasno poseen blancos y no necesariamente son de la misma longitud):

Entrada: bu bv b� �

Salida: bv bu b�

�Ejercicios de la seccion 6.2

➀ Disenar MT que implementen las subrutinas TD, BI, BD, NBI, NBD,COPD, COPI e INT cuando el alfabeto de entrada es {a, b}.

➁ Disenar MT que implementen las subrutinas TD, BI, BD, NBI, NBD,COPD, COPI e INT cuando el alfabeto de entrada es {0, 1, 2}.

➂ Sea Σ = {a, b}. Disenar MT para las siguientes subrutinas:

(i) TI2. Traslada la cadena de entrada 2 casillas a la izquierda.(ii) TD2. Traslada la cadena de entrada 2 casillas a la derecha.(iii) TIk. Traslada la cadena de entrada k casillas a la izquierda (k

es un entero fijo ≥ 1).(iv) TDk. Traslada la cadena de entrada k casillas a la derecha (k es

un entero fijo ≥ 1).

6.3. Maquinas de Turing como calculadoras defunciones

Como las maquinas de Turing tienen la capacidad de transformar las ca-denas de entrada, borrando o sobre-escribiendo sımbolos, se pueden uti-lizar como mecanismos para calcular funciones. Formalmente, una MTM = (Q, q0, qf

, Σ, Γ, b, δ) calcula o computa una funcion h : Σ∗ → Γ∗

si para toda entrada w ∈ Σ∗ se tiene

q0w∗� q

fv, siempre que v = h(w).

Si existe una MT que calcule la funcion h, se dice que h es Turing-calculable o Turing-computable. El modelo de MT aquı utilizado coinci-de con el estandar, pero no hay estados de aceptacion. El estado q

f, llamado

Page 183: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.3. MAQUINAS DE TURING COMO CALCULADORAS DE FUNCIONES 177

estado final, se usa para terminar el procesamiento de la entrada y producirla salida. No se permiten transiciones desde el estado final q

f. Notese que

M debe terminar el procesamiento en la configuracion qfv, o sea, la unidad

de control debe estar escaneando el primer sımbolo de la salida v.

Si M no se detiene con una entrada particular w, la funcion h no esta de-finida en w. Es decir, el dominio de h esta formado unicamente por aquellascadenas para las cuales M se detiene. Es corriente escribir h(w)↓ para in-dicar que h esta definida en w (h converge en w) y h(w)↑ para indicar queh no esta definida en w (h diverge en w). Si la funcion h esta definida paratoda entrada w (es decir, si M se detiene para toda w) se dice que h es unafuncion total. Una funcion indefinida para algunas entradas se dice quees una funcion parcial.�

�Ejemplo Disenar una MT M que calcule el residuo de division de n por

3, para cualquier numero natural n ≥ 1 escrito en el sistemade numeracion unitario (n se escribe como una secuencia de n unos).

Solucion. Los posibles residuos de division por 3 son 0, 1 y 2, por lo cualbastan 3 estados, aparte de q

f, para calcular esta funcion. M recorre de

izquierda a derecha la secuencia de entrada borrando los unos y pasandoalternadamente por los estados q0 (que representa el residuo 0), q1 (residuo1) y q2 (residuo 2). El siguiente es el diagrama de transiciones de M :

> q0 q1 q2

qf

1 | b→ 1 | b→

b | 0− b | 2−

b | 1−

1 | b→

La nocion de funcion Turing-computable se puede extender facilmente afunciones de varios argumentos. Concretamente, una funcion h de k argu-mentos es Turing-computable si para toda k-upla (w1, w2, . . . , wk) se tiene

q0w1 bw2 b · · · bwk b∗� q

fv, siempre que v = h(w1, w2, . . . , wk).

Page 184: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

178 CAPITULO 6. MAQUINAS DE TURING

Notese que para escribir la entrada en la cinta, los k argumentos w1,w2,. . . , wk se separan entre sı con el sımbolo blanco b. Igual que antes,no se permiten transiciones desde el estado final q

f. Esta definicion abarca

tanto los casos de las funciones totales (definidas para toda entrada) comolos de las funciones parciales (indefinidas para algunas entradas).�

�Ejemplo Disenar una MT M que calcule la funcion suma, en el sistema

de numeracion unitario. Esta es una funcion de dos argumen-tos, h(n, m) = n + m, donde n, m ≥ 1. Con entrada 1n b1m, M debe pro-ducir como salida 1n+m. Las secuencias de unos, 1n y 1m, representan losnumeros naturales n y m, respectivamente.Solucion. M va a transformar 1n b1m en 1n+m trasladando la cadena 1m unacasilla hacia la izquierda. El separador b se sobre-escribe por 1 y el ultimo1 de 1m se sobre-escribe por el sımbolo b. El diagrama de transiciones dela MT que implementa esta idea es:

> q0 q1 q2 q3 qf

b | 1→ b | b← 1 | b← b | b→

1 | 1→ 1 | 1→ 1 | 1←�

�Ejercicios de la seccion 6.3

Disenar MT que calculen las siguientes funciones; hacer diagramas de tran-siciones para las maquinas obtenidas. Las entradas numericas se dan en elsistema de numeracion unitario, como en los ejemplos de esta seccion.

➀ La funcion de paridad de los numeros naturales (n ≥ 1):

h(n) =

{1, si n es par,0, si n es impar.

➁ h(n) = 2n, para todo numero natural n ≥ 1.

➂ Para n, m ≥ 1,

f(n, m) =

{1, si n ≥ m,

0, si n < m.

➃ Para n, m ≥ 1, h(n, m) = max(n, m).

➄ Para i, j, k ≥ 1, h(i, j, k) = j. Esta funcion se llama “segunda proyec-cion”. Observacion: en general, la i-esima proyeccion sobre k variables,h(n1, . . . , ni, . . . , nk) = ni, es Turing-computable.

Page 185: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.4. MAQUINAS DE TURING COMO GENERADORAS DE LENGUAJES 179

6.4. Maquinas de Turing como generadoras delenguajes

Otra faceta importante de las MT es su capacidad para generar lenguajes,tarea para la cual no son necesarios los estados de aceptacion. Concreta-mente, una MT M = (Q, q0, Σ, Γ, b, δ) genera el lenguaje L ⊆ Σ∗ si

1. M comienza a operar con la cinta en blanco en el estado inicial q0.

2. Cada vez que M retorna al estado inicial q0, hay una cadena u per-teneciente al lenguaje L escrita sobre la cinta.

3. Todas las cadenas de L son, eventualmente, generadas por M .�

�Ejemplo La siguiente MT genera cadenas con un numero par de aes

sobre el alfabeto Σ = {a}, o sea, el lenguaje L = {a2i : i ≥ 1}.

> q0 q1

b|a→

b|a→�

�Ejemplo La siguiente MT genera todas cadenas de ceros y unos en el

orden lexicografico (las cadenas se ordenan por longitud y lascadenas de la misma longitud se ordenan ortograficamente de izquierda aderecha, considerando 0 < 1): 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100,101, 110, 111, 0000, 0001, . . . .

> q0

q1

q2

q3

0|1←

b| b →

b|0←b| b →

b| b ←0|0→1|1→

0|0←

1|1←

0|0→

1|0←

Page 186: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

180 CAPITULO 6. MAQUINAS DE TURING

�Ejercicios de la seccion 6.4

➀ Disenar MT que generen los siguientes lenguajes:

(i) L = {aibi : i ≥ 1}.(ii) L = {aicbi : i ≥ 1}.(iii) L = {ai : i es divisible por 3, i ≥ 1}.

➁ Modificar la MT del ultimo ejemplo de esta seccion para disenar unaMT que genere todas las cadenas de {a, b, c}∗ en orden lexicografico.Ayuda: no se necesitan mas estados.

➂ Sea Σ un alfabeto de n sımbolos, Σ = {a1, a2, . . . , an}. Modificarla MT del ultimo ejemplo de esta seccion para disenar una MT quegenere Σ∗ en orden lexicografico. Ayuda: no se necesitan mas estados.

6.5. Variaciones del modelo estandar de MT

Hemos visto como las maquinas de Turing se pueden utilizar para aceptarlenguajes (en lo cual se asemejan a los automatas de capıtulos anteriores),para generar lenguajes y para calcular funciones de uno o de varios argu-mentos. En esta seccion veremos que, a pesar de su simplicidad, el modeloestandar de maquina de Turing es suficientemente flexible como para simu-lar acciones computacionales mas complejas, entre las que se encuentran eluso de multiples cintas y el no-determinismo.

6.5.1. Estado de aceptacion unico

Las maquinas de Turing disenadas como aceptadoras de lenguajes se pue-den convertir, sin alterar el lenguaje aceptado, en maquinas con un unicoestado de aceptacion. Esto se puede hacer porque en la definicion del mode-lo estandar se ha exigido que una MT siempre se detenga cuando la unidadde control ingresa en un estado de aceptacion. Por consiguiente, al disenaruna MT solo es necesario un estado de aceptacion. De manera concreta, siuna MT tiene varios estados de aceptacion, podemos modificarla cambian-do cada transicion de la forma δ(q, a) = (p, b, D), donde a, b ∈ Γ y p es unestado de aceptacion original, por la transicion δ(q, a) = (q

f, b, D), en la

que qf

es el unico estado de aceptacion de la nueva maquina.De esta manera, se puede considerar que toda MT tiene un unico estado

inicial y un unico estado de aceptacion. Este es un hecho importante parala codificacion binaria de maquinas de Turing (seccion 7.1).

Page 187: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.5. VARIACIONES DEL MODELO ESTANDAR DE MT 181

6.5.2. Maquina de Turing con cinta dividida en pistas

En el modelo multi-pista, la cinta esta dividida en un numero finito k depistas, como se muestra en la siguiente figura:

q↑

←Pista 1←Pista 2

←Pista k

a1

a2

ak

· · · · · ·......

......

La funcion de transicion adquiere la siguiente forma:

δ(q, (a1, a2, a3, . . . , ak)) = (p, (b1, b2, b3, . . . , bk), D)

donde los ai y los bi son sımbolos del alfabeto de cinta Γ y D es ←, → o −.En un paso computacional, la unidad de control cambia simultaneamenteel contenido de las k pistas de la celda escaneada y realiza luego uno de losdesplazamientos →, ← o −.

Simulacion. Las maquinas de Turing que actuan sobre una cinta divididaen k pistas aceptan los mismos lenguajes que las MT estandares. Paraconcluir tal afirmacion, basta considerar el modelo multi-pistas como unaMT normal en la que el alfabeto de cinta esta formado por el conjunto dek-uplas (s1, s2, . . . , sk), donde los si ∈ Γ. Es decir, el nuevo alfabeto de cintaes el producto cartesiano Γk = Γ × Γ × · · · × Γ (k veces).�

�Ejemplo Las pistas se usan por lo general para senalar con “marcas” o

“marcadores” ciertas posiciones en la cinta. La MT disenadaen el ejemplo de la seccion 6.1 para aceptar el lenguaje L = {aibici : i ≥ 1}utiliza implıcitamente la idea de marcadores: reemplazar las as por Xs,las bes por Y s y las ces por Zs no es otra cosa que colocar las marcas X,Y y Z en las posiciones deseadas. Estas marcas se pueden colocar en unapista diferente, sin necesidad de sobre-escribir los sımbolos de la cadena deentrada.

6.5.3. Maquina de Turing con multiples cintas

En el modelo multi-cintas hay k cintas diferentes, cada una dividida enceldas o casillas, como se muestra en la figura que aparece en la partesuperior de la pagina siguiente.

Page 188: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

182 CAPITULO 6. MAQUINAS DE TURING

· · · a1 · · · · · ·

· · · a2· · · · · ·

· · · ak· · · · · ·

q

...

← Cinta 1

Cinta 2

Cinta k

...

Inicialmente, la cadena de entrada se coloca en la primera cinta y las demascintas estan llenas de blancos. En un paso computacional, la unidad de con-trol cambia el contenido de la casilla escaneada en cada cinta y realiza luegouno de los desplazamientos →, ← o −. Esto se hace de manera indepen-diente en cada cinta; la unidad de control tiene entonces k “visores” queactuan independientemente en cada cinta. La funcion de transicion tiene lasiguiente forma:

δ(q, (a1, a2, a3, . . . , ak)) =(p, (b1, D1), (b2, D2), (b3, D3), . . . , (bk, Dk)

),

donde los ai y los bi son sımbolos del alfabeto de cinta Γ, y cada Di es undesplazamiento →, ← o −.

Simulacion. A pesar de que el modelo multi-cinta parece, a primera vista,mas poderoso que el modelo estandar, resulta que una MT con multiplescintas se puede simular con una MT multi-pista. A continuacion bosqueja-remos el procedimiento de simulacion.

Una MT con k cintas se simula con una MT que actua sobre una unicacinta dividida en 2k + 1 pistas. Cada cinta de la maquina multi-cinta dalugar a dos pistas en la maquina simuladora: la primera simula la cintapropiamente dicha y la segunda tiene todas sus celdas en blanco, exceptouna, marcada con un sımbolo especial X, que indica la posicion actual delvisor de la maquina original en dicha cinta. La pista adicional de la maquina

Page 189: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.5. VARIACIONES DEL MODELO ESTANDAR DE MT 183

simuladora se utiliza para marcar, con un sımbolo especial Y , las posicionesmas a la izquierda y mas a la derecha de la unidad de control en la maqui-na original. Para simular un solo paso computacional, la nueva maquinarequiere hacer multiples recorridos a izquierda y a derecha, actualizando elcontenido de las pistas y la posicion de los marcadores X y Y .�

�Ejemplo Disenar una MT con dos cintas que acepte el lenguaje L =

{aibici : i ≥ 0}.Solucion. Una MT con dos cintas es mas facil de disenar que la MT estandarpresentada en el segundo ejemplo de la seccion 6.1. La idea es copiar en lasegunda cinta una X por cada a leıda y, al aparecer las bes, avanzar hacia laderecha en la primera cinta y hacia la izquierda en la segunda. Al aparecerlas ces se avanza hacia la derecha en ambas cintas. Si la cadena de entradatiene la forma aibici, se detectara simultaneamente el sımbolo en blanco ben ambas cintas.

La funcion de transicion requerida para implementar esta idea es:

δ(q0, (a, b)) = (q1, (a,→), (X,→)),δ(q1, (a, b)) = (q1, (a,→), (X,→)),δ(q1, (b, b)) = (q2, (b,−), ( b,←)),δ(q2, (b, X)) = (q2, (b,→), (X,←)),δ(q2, (c, b)) = (q3, (c,−), ( b,→)),δ(q3, (c, X)) = (q3, (c,→), (X,→)),δ(q3, ( b, b)) = (q4, ( b,−), ( b,−)),δ(q0, ( b, b)) = (q4, ( b,−), ( b,−)).

Se han utilizado cuatro estados; q4 es el unico estado de aceptacion.

6.5.4. Maquinas de Turing no-deterministas (MTN)

En el modelo no-determinista se permite que, en un paso computacional, launidad de control escoja aleatoriamente entre varias transiciones posibles.La funcion δ tiene la siguiente forma:

δ(q, a) = {(p1, b1, D1), (p2, b2, D2), . . . , (pk, bk, Dk)}

donde los ai y los bi son sımbolos del alfabeto de cinta Γ, los pi son estadosy cada Di es un desplazamiento →, ← o −.

La nocion de aceptacion en una MTN es similar a la de los modelosno-deterministas de automatas considerados antes: una cadena de entrada

Page 190: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

184 CAPITULO 6. MAQUINAS DE TURING

w es aceptada si existe por lo menos un computo, a partir de la configura-cion inicial q0w, que termine en la configuracion u1pu2, con p ∈ F . Comoantes, los computos en los cuales la maquina se detiene en un estado de noaceptacion, o en los cuales no se detiene, son irrelevantes para la aceptacion.

Simulacion. Una MTN no tiene mayor poder computacional que una MTestandar, es decir, una MTN se puede simular con una MT, como lo expli-caremos a continuacion.

Sea M una MTN; se bosquejara la construccion de una MT M ′ tal queL(M) = L(M ′). Sea n el numero maximo de transiciones en los conjuntosδ(q, a), considerando todo sımbolo a ∈ Γ y todo estado q ∈ Q. Para cadaa ∈ Γ y q ∈ Q, las transiciones contenidas en δ(q, a) se pueden enumerarentre 1 y n. Si hay menos de n transiciones en un δ(q, a) particular, serepite arbitrariamente una de ellas hasta completar n. De esta manera,cada una de las transiciones δ(q, a) se puede considerar como un conjuntode n opciones indexadas:

δ(q, a) ={(p1, b1, D1)︸ ︷︷ ︸

1

, (p2, b2, D2)︸ ︷︷ ︸2

, . . . , (pk, bk, Dk)︸ ︷︷ ︸n

}← ındice

En algunos δ(q, a) habra opciones repetidas, pero esta repeticion no alterael lenguaje aceptado.

La MT M ′ que simulara a M tendra tres cintas. La primera cinta alma-cena la entrada, la segunda genera de forma sistematica todas las secuenciasfinitas de numeros entre 1 y n: primero las secuencias de longitud 1, luegolas secuencias de longitud 2, luego las de longitud 3 y ası sucesivamente(para esto se puede usar una subrutina como la construida en el ejercicio ➂

de la seccion 6.4).

Para cada secuencia i1i2 · · · ik generada en la cinta 2, M ′ copia la cadenade entrada sobre la cinta 3 y simula la computacion de k pasos que hacesobre ella la maquina original M , utilizando en el paso j la opcion conındice j en el δ(q, a) correspondiente. Si M ′ se detiene en un estado deaceptacion, entonces tanto M como M ′ aceptan la entrada. Si el computosimulado no termina en la aceptacion, M ′ borra el contenido de las cintas2 y 3, genera otra secuencia en la cinta 2, copia de nuevo la entrada en lacinta 3 e inicia una nueva simulacion.

Si la entrada es aceptada por la maquina original M , existira un computoque se detiene en un estado de aceptacion y, eventualmente, M ′ encontrara ysimulara tal computo.

Page 191: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.5. VARIACIONES DEL MODELO ESTANDAR DE MT 185

�Ejemplo La siguiente MT M no-determinista genera todas las cadenas

binarias (cadenas de ceros y unos). M “escoge” primero unacadena binaria w por medio de las opciones no-deterministas b | 0→ yb | 1→ y retrocede hacia el primer sımbolo de w, retornando al estadoq0. Luego borra todos los sımbolos de la cadena generada w y procede agenerar una nueva.

> q0 q1

b| b−

b| b→0| b→1| b→

b|0→b|1→

0|0←1|1←

Siempre que M retorna al estado q0 hay una cadena binaria escrita enla cinta. Todas las cadenas binarias seran eventualmente generadas, alea-toriamente. En contraste, la MT determinista del segundo ejemplo de laseccion 6.4 genera estas cadenas sistematicamente (en orden lexicografico).

Para generar de manera no-determinista todas las cadenas de Σ∗, dondeΣ es un alfabeto cualquiera, bastan tambien dos estados (ejercicio ➂).�

�Ejercicios de la seccion 6.5

➀ Disenar maquinas de Turing multi-pistas que acepten los siguienteslenguajes. Escribir explıcitamente la idea utilizada en el diseno.

(i) L = {aibici : i ≥ 0}.(ii) L = {aib2iai : i ≥ 0}.

➁ Disenar maquinas de Turing multi-cintas que acepten los siguienteslenguajes (que no son LIC, segun los ejercicios ➅ y ➆ de la sec-cion 4.13). Escribir explıcitamente la idea utilizada en el diseno.

!(i) L ={ww : w ∈ {0, 1}∗}.

!(ii) L = {ai : i es un cuadrado perfecto}.

➂ Sea Σ = {s1, . . . , sm} un alfabeto cualquiera. Disenar una maquinade Turing no-determinista que genere todas las cadenas de Σ∗.

Page 192: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

186 CAPITULO 6. MAQUINAS DE TURING

6.6. Simulacion de automatas por medio demaquinas de Turing

Intuitivamente, parece claro que un automata determinista AFD se puedesimular con una MT estandar y una automata con pila se puede simularcon una MT que actua sobre dos cintas. En esta seccion presentaremoslos detalles concretos de estas simulaciones. Concluiremos que tanto loslenguajes regulares como los independientes del contexto son recursivos.

6.6.1. Simulacion de automatas

Un automata (modelo AFD, AFN o AFN-λ) se puede simular con unamaquina de Turing: primero se convierte en un AFD M = (Q, q0, F, Σ, δ)equivalente, usando las tecnicas del Capıtulo 2. Luego se construye una MTM ′ tal que L(M) = L(M ′) anadiendo un nuevo estado q

f, que sera el unico

estado de aceptacion de M ′, y transiciones desde los estados de F hastaq

f, en presencia del sımbolo blanco b. Es decir, M ′ = (Q′, q0, F

′, Σ, Γ, b, δ′)donde

Q′ = Q ∪ {qf}, q

fes un estado nuevo,

Γ = Σ ∪ { b},F ′ = {q

f},

δ′(q, s) = (δ(q, s), s,→), para q ∈ Q, s ∈ Σ,

δ′(q, b) = (qf, b,−), para todo q ∈ F.

Notese que la MT M ′ ası construida se detiene con cualquier entrada w.Puesto que los lenguajes regulares son precisamente los aceptados por losAFD, hemos establecido el siguiente teorema.

6.6.1 Teorema. Todo lenguaje regular es recursivo.

6.6.2. Simulacion de automatas con pila

Sea M = (Q, q0, F, Σ, Γ, z0, Δ) un automata con pila (modelo AFPD oAFPN). Para simular a M se puede construir una MT M ′ que actue sobredos cintas: la primera cinta simula la cinta de entrada y la segunda simu-la la pila del automata. M ′ sera una MT determinista o no-deterministadependiendo de si el automata dado es un AFPD o un AFPN. Se defineM ′ = (Q′, q0, F

′, Σ, Γ′, b, δ) por medio de

Q′ = Q ∪ {qf}, donde q

fes un estado nuevo,

Page 193: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.6. SIMULACION DE AUTOMATAS POR MEDIO DE MAQUINAS DE TURING 187

Γ′ = Σ ∪ Γ ∪ { b},F ′ = {q

f}.

La MT M ′ coloca inicialmente el sımbolo inicial de pila sobre la cinta 2:

δ(q0, (s, b)) = (q0, (s, z0), (−,−)), para cualquier s ∈ Σ.

Una transicion de la forma Δ(q, a, s) = (p, γ) se simula con varias transi-ciones: se trata de lograr que M sobre-escriba el sımbolo s en la cinta 2,que representa el tope de la pila, por la cadena γ. Por ejemplo, la transicionΔ(q, a, s) = (p, a1a2a3) se simula anadiendo un estado auxiliar qe junto conlas transiciones

δ(q, (a, s)) = (qe, (a,−), (a3,→)),δ(qe, (a, b)) = (qe, (a,−), (a2,→)),δ(qe, (a, b)) = (p, (a,→), (a1,−)).

Para no alterar el lenguaje aceptado, cada transicion de este tipo requierela adicion de un estado especial qe diferente. Una transicion λ del automataM , Δ(q, λ, s) = (p, γ), se simula de manera similar: la posicion de la uni-dad de control y el contenido de la primera cinta no cambian durante elprocedimiento.

Finalmente, se debe anadir la transicion

δ(q, ( b, s)) = (qf, ( b, s), (−,−)), para todo s ∈ Γ y todo q ∈ F .

Lo anterior muestra que el comportamiento del automata M se simulacompletamente con la MT M ′ y se tiene que L(M) = L(M ′).

Notese que la MT ası construida no necesariamente se detiene con todaslas cadenas de entrada ya que el automata original M puede ingresar a unbucle infinito con transiciones λ que inserten y extraigan indefinidamentesımbolos en la pila. Por consiguiente, para concluir que todo LIC es re-cursivo es necesario restringir primero las transiciones del automata. En lademostracion del siguiente teorema se indica como hacerlo.

6.6.2 Teorema. Todo LIC es un lenguaje recursivo.

Demostracion. Sabemos que un LIC L dado se puede generar con unaGIC G en FNC en la que la variable inicial no sea recursiva. En G nohay transiciones λ, excepto posiblemente S → λ. A partir de G podemosconstruir un AFPN M tal que L(G) = L(M) = L usando el procedimiento

Page 194: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

188 CAPITULO 6. MAQUINAS DE TURING

del Teorema 5.4.1, y luego una MT M ′ que simule a M , en la forma indicadaen la presente seccion. Se puede observar que M y M ′ siempre se detienenal procesar una cadena de entrada cualquiera: no ingresan nunca en buclesinfinitos debido al tipo restringido de las transiciones que surgen de lagramatica G.

�Ejercicios de la seccion 6.6

➀ Simular el siguiente AFD por medio de una MT M y hacer el diagra-ma de transiciones de la maquina M .

> q0 q1 q2

b b ba a

➁ Simular por medio de una MT M el automata con pila del primerejemplo de la seccion 5.1, el cual acepta el lenguaje {aibi : i ≥ 1}sobre el alfabeto Σ = {a, b}, y cuya funcion de transicion es:

Δ(q0, a, z0) = (q0, Az0),Δ(q0, a, A) = (q0, AA),Δ(q0, b, A) = (q1, λ),Δ(q1, b, A) = (q1, λ),Δ(q1, λ, z0) = (q2, z0).

6.7. Automatas con dos pilas (AF2P) �

En esta seccion mostraremos que el modelo de automata con dos pilas(AF2P) es tambien equivalente a la maquina de Turing. Un automata condos pilas es esencialmente un AFPD, tal como se definio en el capıtulo 5,con la adicion de una pila mas. Las pilas tienen la misma restriccion queantes: el automata solo tiene acceso al sımbolo que esta en el tope de cadapila. Un paso computacional depende del estado actual de la unidad decontrol, del sımbolo escaneado en la cinta y de los dos topes de pila, comose muestra en la siguiente grafica:

Page 195: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.7. AUTOMATAS CON DOS PILAS (AF2P) � 189

· · · · · ·

...

...

q

s1

s2

...

...

a

Podrıamos tambien definir automatas con k pilas, k ≥ 1, pero tal modelono aumenta la capacidad computacional que se consigue con dos pilas. Paralimitarnos al modelo determinista debemos dotar al automata de una facetamas: un sımbolo auxiliar, $, llamado marcador final de entrada, que seescribe al final de cada entrada y le sirve al automata para saber cuandoha consumido completamente la cadena de entrada. El sımbolo $ no formaparte del alfabeto de entrada Σ.

Una transicion en un AF2P tiene la forma

Δ(q, a, s1, s2) = (q′, γ1, γ2),

la cual tiene el siguiente significado: en presencia del sımbolo a en la cintade entrada, la unidad de control pasa del estado q al estado q′ y se muevea la derecha. Ademas, borra el sımbolo s1 que esta en el tope de la primerapila y lo sobre-escribe por la cadena γ1, y borra el sımbolo s2 que esta en eltope de la segunda pila y lo sobre-escribe por γ2. La unidad de control pasaa escanear los nuevos topes de cada pila. Las cadenas γ1 y γ2 pertenecen aΓ∗, siendo Γ el alfabeto de pila.

Tambien se permiten transiciones λ o transiciones espontaneas,

Δ(q, λ, s1, s2) = (q′, γ1, γ2).

Page 196: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

190 CAPITULO 6. MAQUINAS DE TURING

Con esta transicion, el sımbolo sobre la cinta de entrada no se procesay la unidad de control no se mueve a la derecha, pero los topes de pilas1 y s2 son reemplazados por las cadenas γ1 y γ2, respectivamente. Paragarantizar el determinismo, Δ(q, a, s1, s2) y Δ(q, λ, s1, s2), con a ∈ Σ, nopueden estar simultaneamente definidos. Las transiciones λ en un AF2Ppermiten que el automata cambie el contenido de las pilas sin procesar (oconsumir) sımbolos sobre la cinta de entrada.

Inicialmente cada pila contiene unicamente el marcador z0 en el fondo,y la cadena de entrada se coloca en la cinta de entrada, en la forma usual.Notese que solo es necesario exigir que la cinta de entrada sea infinita enuna direccion ya que la unidad de control no puede nunca retornar a laizquierda.�

�Ejemplo Disenar un AF2P que acepte el lenguaje L = {0i12i0i : i ≥ 0}.

Segun el ejercicio ➂ de la seccion 4.13, este lenguaje no es LICy, por lo tanto, no puede ser aceptado por un automata con una sola pila.

Solucion. La idea es copiar los ceros iniciales de la cadena de entrada enla primera pila y el doble de ellos en la segunda. Al aparecer los unos enla cadena de entrada, se van borrando los ceros de la segunda pila, sinalterar el contenido de la primera pila. Al aparecer la ultima cadena deceros en la entrada, se borran los ceros acumulados en la primera pila. Si laentrada tiene la forma 0i12i0i, se detectara el marcador inicial de entrada$ simultaneamente con los marcadores de fondo z0 en ambas pilas. Paraimplementar esta idea utilizamos cuatro estados; q0 es el estado inicial y q3

el unico estado de aceptacion.En detalle, si la entrada tiene i ceros iniciales, se acumulan i ceros en la

primera pila y 2i ceros en la segunda, por medio de las dos instrucciones

Δ(q0, 0, z0, z0) = (q0, 0z0, 00z0),Δ(q0, 0, 0, 0) = (q0, 00, 000).

Se borra luego un 0 en la segunda pila por cada 1 leıdo en la cinta, pormedio de las transiciones

Δ(q0, 1, 0, 0) = (q1, 0, λ),Δ(q1, 1, 0, 0) = (q1, 0, λ).

Al vaciar ası la segunda pila, el contenido de la primera no se altera. Fi-nalmente, se borra un 0 en la primera pila por cada 0 leıdo en la cinta, conlas transiciones

Δ(q1, 0, 0, z0) = (q2, λ, z0),

Page 197: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.7. AUTOMATAS CON DOS PILAS (AF2P) � 191

Δ(q2, 0, 0, z0) = (q2, λ, z0).

Al encontrar $ en la cinta de entrada y z0 en el fondo de cada pila, se ingresaal estado de aceptacion q3:

Δ(q2, $, z0, z0) = (q3, z0, z0).

Hay que anadir tambien la transicion Δ(q0, $, z0, z0) = (q3, z0, z0) para acep-tar la cadena vacıa.

El siguiente teorema establece que una MT estandar se puede simularcon un AF2P.

6.7.1 Teorema. Dada una maquina de Turing M , se puede construir unautomata con dos pilas M ′ que acepte el mismo lenguaje que M .

Demostracion. Sea M una MT estandar dada, con funcion de transicion δ.La idea basica de la simulacion es hacer que, en cada momento, la primerapila de M ′ contenga la parte ubicada a la izquierda de la unidad de controlde M , y la segunda pila contenga la parte ubicada encima y a la derecha.La siguiente grafica muestra la cinta de M y las dos pilas de la simulacion.En cada momento las pilas contienen solo un numero finito de casillas novacıas.

︷ ︸︸ ︷︷ ︸︸ ︷· · ·· · ·

q↑

↓↓ 2da. pila1ra. pilatopetope

Inicialmente, M ′ copia la cadena de entrada w en la primera pila y luegola traslada de esta a la segunda pila (el marcador final de entrada $ lepermite al automata saber cuando ha terminado de copiar toda la entradaen la primera pila). Al terminar esta operacion, la primera pila queda vacıa,excepto por el marcador de fondo z0, y la segunda pila contiene toda lacadena de entrada. La unidad de control de M ′ esta escaneando el topede la segunda pila que es exactamente el primer sımbolo de w. Notese quepara hacer este doble traslado se necesita solamente un numero finito deestados, numero que depende del alfabeto de entrada pero no de la longitudde w.

Page 198: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

192 CAPITULO 6. MAQUINAS DE TURING

El resto de la simulacion lo realiza M ′ por medio de transiciones λ mien-tras escanea el marcador final de entrada $ sobre la cinta. A continuacionindicamos como simula M ′ las transiciones de M .

Desplazamiento a la derecha: la transicion δ(q, a) = (p, b,→) de M essimulada por M ′ con transiciones de la forma Δ(q, λ, s, a) = (p, sb, λ), porcada sımbolo s (s es el sımbolo ubicado a la izquierda de a). La siguientegrafica ilustra la situacion:

s a s b

q↑

p↑

δ(q, a) = (p, b,→)

Hay dos excepciones por considerar:

1. Si M realiza la transicion δ(q, a) = (p, b,→) y la primera pila solocontiene el marcador de fondo z0, M ′ ejecuta la accion Δ(q, λ, z0, a) =(p, z0, λ).

2. Si M ′ esta escaneando el marcador de fondo z0 en la segunda pila, loque significa que M esta leyendo una casilla en blanco y usando latransicion δ(q, b) = (p, b,→), M ′ debe ejecutar la accion Δ(q, λ, s, z0) =(p, sb, z0).

Desplazamiento a la izquierda: la transicion δ(q, a) = (p, b,←) de M essimulada por M ′ con transiciones de la forma Δ(q, λ, s, a) = (p, λ, sb), porcada sımbolo s (s es el sımbolo ubicado a la izquierda de a). La siguientegrafica ilustra la situacion:

s a s b

q↑

p↑

δ(q, a) = (p, b,←)

Page 199: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.8. PROPIEDADES DE CLAUSURA 193

Aquı hay que tener en cuenta una excepcion: si s es el marcador de fondoz0, M ′ debe ejecutar la accion Δ(q, λ, z0, a) = (p, z0, bb). Esto significa quela primera pila sigue vacıa y M ′ queda escaneando el sımbolo blanco b enel tope de la segunda pila.�

�Ejercicios de la seccion 6.7

➀ Mostrar como se puede simular un AF2P con una MT multi-cintas.

➁ Disenar automatas con dos pilas que acepten los siguientes lenguajes:

(i) L = {aibjcidj : i, j ≥ 1}.(ii) L = {a2ib3i : i ≥ 1}.(iii) El lenguaje de las cadenas sobre el alfabeto {0, 1} que tienen el

doble numero de ceros que de unos.

6.8. Propiedades de clausura de los lenguajes REy de los lenguaje recursivos

En esta seccion presentaremos algunas propiedades de clausura de los len-guajes recursivos y de los RE; en los ejercicios del final de la seccion apa-recen otras propiedades similares.

6.8.1 Teorema. 1. El complemento de un lenguaje recursivo tambienes recursivo.

2. La union de dos lenguajes recursivos es recursivo.

3. La union de dos lenguajes RE es RE.

Demostracion.

1. Sea L un lenguaje recursivo aceptado por la MT M . La maquina Mse detiene con cualquier entrada, ya sea en un estado de aceptaciono en uno de rechazo. Se puede construir una MT M ′ que acepte aL, haciendo que los estados de aceptacion de M dejen de serlo enM ′. De esta forma, las cadenas aceptadas por M seran rechazadaspor M ′. Adicionalmente, desde los estados de no-aceptacion en loscuales M se detiene, definimos transiciones a un estado (nuevo) deaceptacion de M ′. De esta forma, las cadenas no aceptadas por Msı seran aceptadas por M ′. Por consiguiente, L(M ′) = L.

Page 200: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

194 CAPITULO 6. MAQUINAS DE TURING

2. Sean L1 y L2 dos lenguajes aceptados por las MT M1 y M2, res-pectivamente. Para demostrar las partes 2 y 3 del presente teoremapodrıamos proceder como se hizo en el Teorema de Kleene al demos-trar que la union de dos lenguajes regulares es regular; esto es, bastaunir las maquinas M1 y M2 en paralelo por medio de transiciones es-pontaneas (transiciones λ) desde un nuevo estado inicial. Recuerdeseque las transiciones espontaneas en una maquina de Turing adquie-ren la forma δ(q, s) = (q′, s,−). No obstante, las maquinas ası cons-truidas son no-deterministas. Resulta mas conveniente, pensando enaplicaciones posteriores, disenar MT multi-cintas deterministas paraaceptar la union de dos lenguajes.

Supongase entonces que L1 y L2 son recursivos, es decir, M1 y M2 sedetienen con toda entrada. Construimos una MT M con dos cintasque simule a M1 en la primera cinta y a M2 en la segunda. M procesainicialmente la entrada en la primera cinta; si M1 acepta, M tambienaceptara. Si M1 se detiene en un estado de no-aceptacion, M proce-dera a procesar la entrada en la segunda cinta, simulando a M2. SiM2 acepta, M tambien aceptara pero si M2 se detiene en un estadode rechazo, M tambien se detendra y no aceptara. Puesto que tantoM1 como M2 siempre se detienen, L(M) = L1 ∪ L2.

3. El procedimiento del numeral anterior ya no sirve en este caso porquees posible que M1 o M2 nunca se detengan al procesar una entradaparticular. En lugar de una simulacion consecutiva de las maquinasdadas, se necesita que M simule simultaneamente a M1 y a M2. Paralograrlo utilizamos tambien dos cintas, la primera para simular a M1

y la segunda para simular a M2. En cada paso computacional, Msimula un paso de M1 y uno de M2.

Resulta muy instructivo presentar explıcitamente una maquina M queimplemente la anterior idea intuitiva. Aparte de los estados especialesqe y q

f, definidos mas adelante, los estados de M son parejas de la

forma (p, q), donde p es un estado de M1 y q un estado de M2. Cadapar de transiciones

δ1(q1, s1) = (p1, r1, D1) (transicion de M1),δ2(q2, s2) = (p2, r2, D2) (transicion de M2),

da lugar a la siguiente transicion en la maquina M :

δ((q1, q2), (s1, s2)

)=

((p1, p2), (r1, D1), (r2, D2)

).

Page 201: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.8. PROPIEDADES DE CLAUSURA 195

Si alguno de los estados q1 o q2 es un estado de aceptacion de M1

o M2, respectivamente, hacemos que M ingrese y se detenga en unestado q

f(estado nuevo), que sera el unico estado de aceptacion de

M . Esto se consigue con la transicion

δ((q1, q2), (s1, s2)

)=

(q

f, (s1,−), (s2,−)

).

Tambien hay que permitir que M siga operando en una de las cintasincluso si se ha detenido en la otra en un estado de no aceptacion.Por ejemplo, si δ1(q1, s1) no esta definida en M1, pero δ2(q2, s2) =(p2, r2, D2) es una transicion de M2, definimos

δ((q1, q2), (s1, s2)

)=

((qe , p2), (s1,−), (s2, D2)

),

donde qe es un estado especial (nuevo). Por medio de esta transicion,cuando M ingrese en el estado qe en alguna de las cintas, se deten-dra en dicha cinta pero continua la simulacion en la otra. Si M ingresaal estado (qe , qe), se detendra sin aceptar.

El siguiente teorema establece una importante conexion entre las nocionesde lenguaje recursivo y lenguaje RE, la cual se puede demostrar con latecnica de simulacion simultanea de dos MT usada en el Teorema 6.8.1.Encontraremos aplicaciones utiles de este resultado en el Capıtulo 7.

6.8.2 Teorema. Un lenguaje L es recursivo si y solo si L y su complementoL son RE.

Demostracion. En la direccion izquierda a derecha, la conclusion es directa:si L es recursivo, obviamente es RE. L es tambien recursivo (parte 1 delTeorema 6.8.1) y por lo tanto RE.

La parte esencial de este teorema es la otra direccion: si L y L son RE,entonces L debe ser recursivo. Para verlo, partimos de dos maquinas M1 yM2 que acepten a L y L, respectivamente. Construimos luego una MT Mque simule simultaneamente a M1 y M2, tal como se hizo en la parte 3 delTeorema 6.8.1. Puesto que para una entrada w solo hay dos posibilidades,w ∈ L o w ∈ L, entonces la maquina M eventualmente se detendra enla cinta 1 o en la cinta 2. En el primer caso, M acepta la entrada y enel segundo caso la rechaza. Como M se detiene con toda entrada, L esrecursivo.

El siguiente teorema justifica la denominacion ‘recursivamente enume-rable’ para los lenguajes aceptados por maquinas de Turing.

Page 202: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

196 CAPITULO 6. MAQUINAS DE TURING

6.8.3 Teorema. Para todo lenguaje L aceptado por una MT M , se puedeconstruir una MT M ′ que enumere secuencialmente las cadenas de L.

Bosquejo de la demostracion. La MT M ′ tendra tres cintas. Las cadenasde L seran enumeradas secuencialmente en la cinta 1 usando el sımbolo& como separador: w1&w2&w3& · · · . La cinta 2 se usa para generar todaslas cadenas de Σ∗ en el orden lexicografico, utilizando la subrutina cons-truida en el ejercicio ➂ de la seccion 6.4, modificada de tal manera quelas cadenas queden separadas entre sı por el separador &. En la cinta 2tambien se escribe, a la izquierda de la lista de cadenas, un contador queregistra el numero de cadenas generadas. La cinta 3 se usa para simular elprocesamiento de M sobre las cadenas que se generan en la cinta 2.

Para precisar, M ′ procede segun las siguientes acciones:

Accion 1. M ′ genera sobre la cinta 2 la primera cadena de Σ∗ (o sea, λ) ysimula en la cinta 3 un movimiento de la accion de M sobre λ.

Accion 2. M ′ genera sobre la cinta 2 la segunda cadena de Σ∗ y simula, enla cinta 3, dos movimientos de la accion de M sobre dicha cadena,ası como un movimiento mas del procesamiento de la cadena λ.

Accion i, (i ≥ 1). M ′ genera sobre la cinta 2 la i-esima cadena de Σ∗ ysimula, en la cinta 3, i movimientos de la accion de M sobre dichacadena, ası como un movimiento mas del procesamiento de las i − 1cadenas previamente generadas en la cinta 2. Se incrementa luego,en la cinta 2, el contador i de cadenas generadas (este es tambienel contador del numero de movimientos simulados para cada cadenagenerada).

Al concluir la accion i se han generado en la segunda cinta las i primerascadenas de Σ∗ y se han simulado, en la cinta 3, los i primeros movimientosque M realiza sobre esas cadenas. Si durante la simulacion, alguna cadenaes aceptada por M , M ′ la copia en la cinta 1. Las casillas ocupadas en lacinta 3 por las simulaciones de cadenas ya aceptadas se “tachan” (es decir,se marcan con un sımbolo especial), de tal manera que M ′ no tenga queprocesarlas en los pasos subsiguientes.

Para acomodar las simulaciones, cada vez mas extensas, puede ser nece-sario usar en la cinta 3 subrutinas de desplazamiento de cadenas, a izquier-da o a derecha. En todo caso, al terminar la accion i, M ha utilizado unaporcion finita en cada una de las tres cintas.

Page 203: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.9. MT, COMPUTADORES, ALGORITMOS Y LA TESIS DE CHURCH-TURING 197

�Ejercicios de la seccion 6.8

➀ Utilizando razonamientos similares a los del Teorema 6.8.1 demostrarlo siguiente:

(i) Si L1 y L2 son recursivos, L1 ∩ L2 es recursivo.

(ii) Si L1 y L2 son RE, L1 ∩ L2 es RE.

(iii) Si L1 y L2 son recursivos, L1 − L2 es recursivo.

➁ Sabiendo que existen lenguajes RE no recursivos (lo cual sera demos-trado en la seccion 7.5), demostrar que el complemento de un lenguajeRE no necesariamente es RE.

!➂ Demostrar que tanto los lenguajes recursivos como los lenguajes REson cerrados para la concatenacion. Es decir, si L1 y L2 son recursivos,L1L2 tambien es recursivo, y si L1 y L2 son RE, L1L2 es RE.

Advertencia: no basta unir las maquinas de Turing en serie por mediode transiciones espontaneas, como se hizo en la demostracion del Teo-rema de Kleene; hay que tener en cuenta que una MT puede aceptarcadenas de entrada sin leerlas (consumirlas) completamente.

!➃ Demostrar que tanto los lenguajes recursivos como los lenguajes REson cerrados para la estrella de Kleene. Es decir, si L es recursivo, L∗

tambien es recursivo, y si L RE, L∗ es RE. Ayuda: tener en cuentala misma advertencia del ejercicio ➂.

!➄ Sea L un lenguaje recursivo pero no RE, demostrar que para todaMT M que acepte a L hay infinitas cadenas de entrada con las cualesM no se detiene nunca. Ayuda: razonar por contradiccion.

6.9. Maquinas de Turing, computadores,algoritmos y la tesis de Church-Turing

Si bien la maquina de Turing antecedio en varias decadas a la implementa-cion fısica de los computadores actuales, ha resultado ser un modelo muyconveniente para representar “lo computable” (lo que es capaz de hacercualquier dispositivo fısico de computacion secuencial).

Page 204: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

198 CAPITULO 6. MAQUINAS DE TURING

6.9.1. Maquinas de Turing y algoritmos

Segun nuestra experiencia en las secciones anteriores, disenar una MT esmuy similar a escribir un programa computacional ya que la funcion detransicion de una MT no es otra cosa que un conjunto de instrucciones.Se establece ası una conexion intuitiva directa entre maquinas de Turing yalgoritmos. La declaracion conocida como “tesis de Church-Turing” afirmaque dicha conexion es en realidad una equivalencia.

6.9.1. Tesis de Church-Turing. Todo algoritmo puede ser descrito pormedio de una maquina de Turing.

En su formulacion mas amplia, la tesis de Church-Turing abarca tantolos algoritmos que producen una salida para cada entrada como aquellosque no terminan (ingresan en bucles infinitos) para algunas entradas.

Para apreciar su significado y su alcance, hay que enfatizar que la Tesisde Church-Turing no es un enunciado matematico susceptible de demostra-cion, ya que involucra la nocion intuitiva de algoritmo. En otras palabras,la tesis no se puede demostrar. Se podrıa refutar, no obstante, exhibiendoun procedimiento efectivo, que todo el mundo acepte que es un verdaderoalgoritmo y que no pueda ser descrito por una maquina de Turing. Perotal refutacion no se ha producido hasta la fecha; de hecho, la experienciaacumulada durante decadas de investigacion ha corroborado una y otra vezla tesis de Church-Turing.

Hay dos hechos mas que contribuyen a apoyar la tesis:

1. La adicion de recursos computacionales a las maquinas de Turing(multiples pistas o cintas, no determinismo, etc) no incrementa elpoder computacional del modelo basico. Esto es un indicativo de quela maquina de Turing, no solo es extremadamente flexible, sino querepresenta el lımite de lo que un dispositivo de computacion secuencialpuede hacer.

2. Todos los modelos o mecanismos computacionales propuestos paradescribir formalmente la nocion de algoritmo han resultado ser equi-valentes a la maquina de Turing, en el sentido de que lo que se puedehacer con ellos tambien se puede hacer con una MT adecuada, y vi-ceversa. Entre los modelos de computacion secuencial equivalentes ala maquina de Turing podemos citar:

Las funciones parciales recursivas (modelo de Godel y Kleene,1936).

Page 205: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

6.9. MT, COMPUTADORES, ALGORITMOS Y LA TESIS DE CHURCH-TURING 199

El calculo-λ (modelo de Church, 1936).

Sistemas de deduccion canonica (modelo de Post, 1943).

Algoritmos de Markov (modelo de Markov, 1951).

Las gramaticas no-restringidas1 (modelo de Chomsky, 1956).

Las maquinas de registro (modelo de Shepherdson-Sturgis, 1963).

En el proximo capıtulo tendremos la oportunidad de usar la tesis de Church-Turing en situaciones concretas.

6.9.2. Maquinas de Turing y computadores

Hagamos un bosquejo —bastante superficial e incompleto— de como loscomputadores comunes y las maquinas de Turing se pueden simular entresı.

En primer lugar, una MT esta determinada por un conjunto finito deinstrucciones (su funcion de transicion) y esta definida con referencia a al-fabetos finitos. Por lo tanto, se puede programar un computador para quesimule una MT dada, siempre y cuando se disponga de una capacidad dealmacenamiento (memoria, discos, etc) potencialmente infinita, que corres-ponda a la cinta infinita de una MT. Teoricamente, por lo menos, estasimulacion es concebible y plausible.

Recıprocamente, el modelo multi-cintas de maquina de Turing se puedeusar para simular el funcionamiento de un computador tıpico. Se utilizarıauna cinta para simular la memoria principal del computador, otra para lasdirecciones de memoria y un numero adicional (pero finito) de cintas parasimular los discos de almacenamiento presentes en un computador real. Lamaquina de Turing ası construida es basicamente la llamada Maquina deTuring universal que se presentara detalladamente en la seccion 7.2.

1Se puede demostrar que los lenguajes RE son exactamente los lenguajes generadospor las gramaticas de tipo 0, o no-restringidas, mencionadas en la seccion 4.1.

Page 206: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa
Page 207: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

Capıtulo 7Problemas indecidibles

La importancia de un modelo simple pero capaz de emular cualquier dispo-sitivo de computacion —como lo es la maquina de Turing— radica no soloen que permite estudiar lo que puede hacer sino tambien lo que no puedehacer una maquina de computo, aun si dispone de recursos inagotables, co-mo tiempo y espacio de almacenamiento ilimitados (es decir, cinta infinitay tiempo de ejecucion indefinido). En este capıtulo estudiaremos problemasque ninguna maquina de Turing puede resolver.

7.1. Codificacion y enumeracion de maquinasde Turing

Toda MT se puede codificar como una secuencia binaria finita, es deciruna secuencia finita de ceros y unos. En esta seccion presentaremos unacodificacion valida para todas las MT que actuen sobre un alfabeto deentrada Σ pre-establecido. Para simplificar la codificacion, suponemos quetoda MT tiene un unico estado inicial, denotado q1, y un unico estado final,denotado q2 (en la seccion 6.5.1 se mostro que esta modificacion siempre sepuede hacer, sin alterar los lenguajes aceptados).

El alfabeto de cinta de una MT M es de la forma

Γ = {s1, s2, . . . , sm, . . . , sp}donde s1 representa el sımbolo blanco b, Σ = {s2, . . . , sm} es el alfabeto deentrada y sm+1, . . . , sp son los sımbolos auxiliares utilizados por M (cadaMT utiliza su propia coleccion finita de sımbolos auxiliares). Todos estossımbolos se codifican como secuencias de unos:

201

Page 208: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

202 CAPITULO 7. PROBLEMAS INDECIDIBLES

Sımbolo Codificacions1 (sımbolo b) 1s2 11s3 111...

...sm 11 · · · 1︸ ︷︷ ︸

m veces...

...sp 11 · · · 1︸ ︷︷ ︸

p veces

Los estados de una MT, q1, q2, q3, . . . , qn, se codifican tambien con secuen-cias de unos:

Estado Codificacionq1 (inicial) 1q2 (final) 11...

...qn 11 · · · 1︸ ︷︷ ︸

n veces

Las directrices de desplazamiento →, ← y − se codifican con 1, 11 y 111,respectivamente. Una transicion δ(q, a) = (p, b, D) se codifica usando ceroscomo separadores entre los estados, los sımbolos del alfabeto de cinta y ladirectriz de desplazamiento D. Ası, la transicion δ(q3, s2) = (q5, s3,→) secodifica como

01110110111110111010

En general, la codificacion de una transicion cualquiera δ(qi, sk) = (qj , s�, D)es

01i01k01j01�01t0

donde t = 1 o 2 o 3, segun D sea →, ← o −. Observese que aparecenexactamente seis ceros separados por secuencias de unos.

Una MT se codifica escribiendo consecutivamente las secuencias de lascodificaciones de todas sus transiciones. Mas precisamente, la codificacionde una MT M es de la forma

C1C2 · · ·Cr

donde las Ci son las codificaciones de las transiciones de M . Puesto queel orden en que se presentan las transiciones de una MT no es relevante,

Page 209: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

7.1. CODIFICACION Y ENUMERACION DE MAQUINAS DE TURING 203

una misma MT tiene varias codificaciones diferentes. Esto no representaninguna desventaja practica o conceptual ya que no se pretende que lascodificaciones sean unicas.�

�Ejemplo Considerese la siguiente MT M que acepta el lenguaje a+b:

δ(q1, a) = (q3, a,→)δ(q3, a) = (q3, a,→)δ(q3, b) = (q4, b,→)δ(q4, b) = (q2, b,−)

Si los sımbolos del alfabeto de cinta b, a y b se codifican con 1, 11 y 111,respectivamente, la MT M se puede codificar con la siguiente secuenciabinaria:

010110111011010011101101110110100111011101111011101001111010110101110

la cual se puede escribir tambien como

0101201301201001301201301201001301301401301001401012010130.

Cambiando el orden de las cuatro transiciones de M obtendrıamos en total4! = 24 codificaciones diferentes para M .

Es claro que no todas las secuencias binarias representan una MT:la codificacion de una MT no puede comenzar con 1 ni pueden apare-cer tres ceros consecutivos. Ası, las secuencias 0101000110, 010001110 y1011010110111010 no codifican ninguna MT. No es difıcil concebir un algo-ritmo que determine si una secuencia binaria finita dada es o no una MT yque la decodifique en caso afirmativo. Una cadena binaria que codifique unaMT se denomina un codigo valido de una MT. Si una cadena binariano es un codigo valido de una MT, supondremos que codifica la MT con unsolo estado y sin transiciones; tal MT no acepta ninguna cadena, es decir,acepta el lenguaje ∅. De esta forma, todas las cadenas binarias representanmaquinas de Turing.

Por otro lado, las cadenas de ceros y unos se pueden ordenar lexico-graficamente; el orden se establece por longitud y las cadenas de la mismalongitud se ordenan ortograficamente de izquierda a derecha (considerando0 < 1). Este orden comienza ası:

0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101, 110, 111, 0000, 0001, 0010, . . .

Page 210: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

204 CAPITULO 7. PROBLEMAS INDECIDIBLES

Tenemos entonces una enumeracion de todas las cadenas binarias. Dadoun alfabeto Σ, cada cadena binaria en la anterior lista representa, segunla codificacion definida arriba, una maquina de Turing que actua sobre Σ.Podemos entonces hablar de la i-esima maquina de Turing, la cual deno-taremos por Mi. Notese que en la enumeracion M1, M2, M3, . . ., cada MTaparece varias veces (porque al cambiar el orden de las transiciones se obtie-ne una codificacion diferente). Las MT que aceptan el lenguaje ∅ apareceninfinitas veces en la enumeracion.

Tambien sera necesario codificar el conjunto de todas las cadenas sobre elalfabeto de entrada Σ = {s2, . . . , sm}, de tal manera que toda cadena tengaun codigo binario y toda secuencia binaria represente una cadena de Σ∗.Una vez codificados los sımbolos de Σ, las cadenas de Σ∗ se pueden codificarusando 0 como separador. Por ejemplo, la cadena aab bab se codifica como

01101101110101101110

si los sımbolos a y b hacen parte de Σ y se han codificado como 11 y111. Notese que en la codificacion de una cadena w ∈ Σ∗ no aparecennunca dos ceros consecutivos. En general, la codificacion de una cadenasi1si2 · · · sik ∈ Σ∗ es

01i101i20 · · · 01ik0.

Las cadenas de Σ∗ se pueden ordenar lexicograficamente estableciendo pri-mero un orden arbitrario (pero fijo) para los sımbolos de Σ, por ejemplo,s2 < s3 < · · · < sm. El orden lexicografico de las cadenas de Σ∗ induce unorden en el conjunto de las codificaciones; obtenemos ası una enumeracionw1, w2, w3, . . . de los codigos de cadenas de Σ∗. Esto nos permite hablarde la i-esima cadena de entrada, wi.

Aunque tenemos dos enumeraciones diferentes, w1, w2, w3, . . . (codigosde cadenas sobre Σ), y M1, M2, M3, . . . (codigos de maquinas de Turingsobre Σ), no habra peligro de confusion pues el contexto permitira saber acual de las dos enumeraciones nos estamos refiriendo.

✎ Es corriente identificar las cadenas de entrada w y las MT Mcon sus respectivas codificaciones binarias, y haremos eso en losucesivo.

✎ El mecanismo de enumeracion presentado en esta seccion permitetambien concluir que el conjunto de todas las maquinas de Turing(sobre un alfabeto dado Σ) es infinito enumerable.

Page 211: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

7.1. CODIFICACION Y ENUMERACION DE MAQUINAS DE TURING 205

�Ejercicios de la seccion 7.1

➀ Sea M la MT definida por el siguiente diagrama de estados:

> q1 q3 q4

q2

b|b →a|a → b|b →

a|a →b| b−

Determinar el lenguaje aceptado por M y codificar la maquina Msiguiendo el esquema presentado en esta seccion (codificar los sımbolosdel alfabeto de cinta b, a y b con 1, 11 y 111, respectivamente).

➁ Las siguientes secuencias binarias codifican MT que actuan sobre elalfabeto de entrada Σ = {a, b}, siguiendo el esquema de codificacionpresentado en esta seccion. Decodificar las maquinas y determinar encada caso el lenguaje aceptado (los sımbolos b, a y b estan codificadoscomo 1, 11 y 111, respectivamente).

(i) 010110111011010011101110111101110100111101110sigue−−−→

111101110100111101101111101101001111010110101110

(ii) 010130101301001012013012010010120150120100sigue−−−→

1301201401201001401301013010015013010130100sigue−−−→

1501012010130010101201013

➂ Supongase que el alfabeto de entrada es Σ = {a, b, c, d} y que lossımbolos a, b, c y d se codifican como 11, 111, 1111 y 11111, respecti-vamente. Supongase tambien que se establece el orden a < b < c < dpara los sımbolos de Σ.

(i) Codificar las cadenas dacb, cddab y badbcc.

(ii) Escribir explıcitamente las cadenas binarias w6, w15, w22 y w25.

(iii) ¿Que puesto ocupa el codigo de la cadena cbd en el orden w1,w2, w3, . . .? En otros terminos, encontrar el ındice i tal que wi

es el codigo de cbd.

➃ Escribir las codificaciones de las siguientes MT: M7, M14, M65, M150

y M255. ¿Cual es el lenguaje aceptado por tales maquinas?

Page 212: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

206 CAPITULO 7. PROBLEMAS INDECIDIBLES

7.2. Maquina de Turing universal

La maquina de Turing universal Mu simula el comportamiento de todaslas MT (sobre un alfabeto de entrada Σ dado). Mu procesa pares (M, w),siendo M la codificacion de una MT determinada y w la codificacion deuna cadena de entrada perteneciente a Σ∗ (estas codificaciones se hacen enla forma indicada en la seccion 7.1). La pareja (M, w) se puede presentartambien como una cadena binaria, en la forma M0w. Es decir, los codigosde M y w se separan con un cero. Puesto que el codigo de M termina en 0 yel de w comienza con 0, en la cadena M0w aparecen tres ceros consecutivosunicamente en el sitio que separa los codigos de M y w.

Mu es una MT con tres cintas cuyo alfabeto de cinta es {0, 1, �} (elsımbolo blanco � de Mu difiere del sımbolo blanco b utilizado por las demasmaquinas de Turing). La primera cinta contiene el codigo de una MT Mdeterminada; la segunda cinta contiene inicialmente el codigo de una entra-da w y se usa para simular el procesamiento que hace M de w. La terceracinta se usa para almacenar el estado actual de M , tambien codificado: q1

se codifica como 1, q2 se codifica como 11, q3 como 111, etc. En la siguientegrafica se muestran las tres cintas de Mu:

· · · · · ·

· · · · · ·

· · · · · ·

Cinta 1

Cinta 2

Cinta 3

Codigo de una MT M

Codigo de una entrada w ∈ Σ∗

Codigo del estado actual de M

La entrada M0w, que representa el par (M, w), se escribe en la primeracinta; las otras dos cintas estan inicialmente marcadas con el sımbolo � deMu. La maquina Mu procede de la siguiente manera:

1. Deja el codigo de M en la primera cinta y pasa el codigo de w a lasegunda cinta. Como se indico arriba, para separar los codigos de M yw se busca el unico sitio de la cadena que tiene tres ceros consecutivos.

Page 213: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

7.2. MAQUINA DE TURING UNIVERSAL 207

2. La cadena 1, que representa el estado inicial q1, se coloca en la terceracinta. La unidad de control pasa a escanear el primer sımbolo de cadacadena binaria, en cada una de las tres cintas.

3. Examina el codigo de M para determinar si representa una MT. Encaso negativo, Mu se detiene sin aceptar (recuerdese que los codigosno validos representan una MT que no acepta ninguna cadena).

4. Mu utiliza la informacion de las cintas 2 y 3 para buscar en la cinta 1la transicion que sea aplicable. Si encuentra una transicion aplicable,Mu simula en la cinta 2 lo que harıa M y cambia el estado senalado enla cinta 3. Esto requiere re-escribir la cadena de la cinta 2 desplazandoadecuadamente los sımbolos a izquierda o a derecha; para lo cual seutilizan las subrutinas mencionadas en la seccion 6.2. La simulacioncontinua de esta forma, si hay transiciones aplicables. Despues derealizar una transicion, la unidad de control regresa, en la primera ytercera cintas, al primer sımbolo de la cadena.

Si al procesar una entrada w, Mu se detiene en el unico estado deaceptacion de M (que es q1 y esta codificado como 1), entonces lacadena w sera aceptada. Por consiguiente, Mu tiene tambien un unicoestado de aceptacion, q1, que es el mismo estado de aceptacion decualquier otra MT.

5. Si Mu no encuentra una transicion aplicable o se detiene en un estadoque no es de aceptacion, Mu se detiene sin aceptar, como lo harıa M .

Se tiene entonces que Mu acepta la entrada M0w si y solamente si Macepta a w. De modo que el lenguaje aceptado por la maquina de Turinguniversal Mu se puede describir explıcitamente; este lenguaje se denominacorrientemente el lenguaje universal y se denota con Lu:

Lu = {M0w : la MT M acepta la cadena w ∈ Σ∗}.

El lenguaje universal Lu es, por consiguiente, un lenguaje RE.

Utilizando codificaciones binarias, en lugar de unitarias, es posible cons-truir una maquina de Turing universal mas eficiente (veanse los detalles enel recuadro gris al final de esta seccion).

Para comprender el significado del concepto de maquina de Turing uni-versal podemos recurrir a una util analogıa, ilustrada en la siguiente figura:

Page 214: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

208 CAPITULO 7. PROBLEMAS INDECIDIBLES

Mu

programaM

w

Como la funcion de transicion de una MT no es mas que una lista de ins-trucciones, podemos concebir una MT como un programa computacional yla maquina de Turing universal resulta ser un mecanismo en el que pode-mos ejecutar todos los programas. En otros terminos, la maquina de Turinguniversal es una maquina de Turing programable.

✎ Como hemos utilizado una codificacion unitaria (cadenas de unos)de longitud variable para los sımbolos del alfabeto de cinta y paralos estados, el funcionamiento de la maquina de Turing universales muy ineficiente: las acciones descritas en el numeral 4 exigencontinuos desplazamientos de las cadenas previamente escritas enla cinta 2. Se podrıa utilizar una codificacion binaria para asegurarque cada sımbolo codificado ocupe el mismo numero de casillas.Concretamente, si una MT M utiliza el lenguaje de cinta Γ ={s1, s2, . . . , sm, . . . , sp}, donde s1 = b, un sımbolo de Γ se puedecodificar por medio de una codificacion binaria de exactamente kbits (codificacion de longitud k), siendo k el menor entero tal quep ≤ 2k. Las cadenas de Γ∗ se pueden codificar luego usando unsımbolo adicional, por ejemplo #, como separador.La codificacion binaria tambien se puede utilizar para los estadosy para las transiciones de una MT cualquiera. De esta forma, sepuede construir una maquina de Turing universal mas eficiente,que funcione como se describio en los numerales 1 a 5, pero queutilice codificaciones binarias de longitud fija para re-escribir lastransiciones de cada MT M y para simularla.

Page 215: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

7.3. ALGORITMOS DE ACEPTACION PARA LENGUAJES RE 209

7.3. Algoritmos de aceptacion para lenguajes RE

Recurriendo a la tesis de Church-Turing, se puede concluir que un lenguajeL es RE si se exhibe un algoritmo de aceptacion1 para L. Para unaentrada u, el algoritmo debe finalizar con aceptacion si y solo si u ∈ L.Si u /∈ L, el algoritmo puede detenerse, sin aceptar, o puede no detenersenunca.�

�Ejemplo El argumento que se uso en la seccion anterior para construir

la maquina de Turing universal Mu y concluir que Lu es REse puede presentar como un algoritmo de aceptacion:

1. Entrada: M0w.

2. Ejecutar la MT M con la entrada w.

3. Aceptar si M se detiene en un estado de aceptacion.

Este algoritmo finaliza con aceptacion si M acepta a w. Si M no aceptaa w, el algoritmo puede terminar cuando M se detenga en un estado derechazo, o puede no terminar nunca. En conclusion: el algoritmo finalizacon aceptacion de la entrada M0w si y solo si M acepta a w.

�Ejemplo Demostrar que el lenguaje

La = {M : L(M) �= ∅} = {M : M acepta alguna cadena}.

es RE.

Solucion. Usando el Teorema 6.8.3 se puede presentar el siguiente algoritmopara aceptar a La:

1. Entrada: una MT M arbitraria.

2. Construir la MT M ′ del Teorema 6.8.3; M ′ enumera secuencialmentelas cadenas de L(M).

3. Detenerse y aceptar cuando M ′ genere la primera cadena.

1Aquı estamos usando la nocion de algoritmo en una acepcion muy amplia. Por logeneral, se exige que un algoritmo siempre debe finalizar con una salida, es decir, no debetener bucles infinitos.

Page 216: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

210 CAPITULO 7. PROBLEMAS INDECIDIBLES

Si M acepta alguna cadena, esta sera generada eventualmente por M ′.Si M no acepta ninguna cadena, el anterior algoritmo nunca termina. Enconclusion: el algoritmo finaliza con aceptacion de la entrada M si y solosi M acepta alguna cadena.

Tambien podemos presentar un algoritmo no-determinista para aceptara La. En un algoritmo no-determinista hay una etapa de “conjetura” quecorresponde a una busqueda exhaustiva en un algoritmo determinista. Heaquı un algoritmo no-determinista para aceptar a La:

1. Entrada: una MT M arbitraria.

2. Escoger de manera no-determinista una cadena w sobre el alfabeto decinta. Esto se hace con una subrutina generadora como la del ejemplode la seccion 6.5.4. Una escogencia no-determinista generalmente sellama una conjetura.

3. Ejecutar la MT M con la entrada w.

4. Aceptar si M se detiene en un estado de aceptacion.

Notese que si M acepta aunque sea una cadena, esta sera encontrada, even-tualmente, en el paso 2. Si M no acepta ninguna cadena, el anterior algo-ritmo nunca termina. En conclusion: el algoritmo finaliza con aceptacionde la entrada M si y solo si M acepta alguna cadena.

Los dos algoritmos de este ejemplo son esencialmente el mismo (lo cualcorresponde al hecho de que las MT deterministas y las no-deterministastienen el mismo poder computacional): en el primero se hace una busquedaexhaustiva de una cadena aceptada por M ; en el segundo se hace unaconjetura de una cadena aceptada. Ambos algoritmos finalizan unicamentesi la MT M acepta alguna cadena.�

�Ejercicios de la seccion 7.3

Presentar algoritmos de aceptacion, similares a los de los ejemplos de estaseccion, para concluir que los siguientes lenguajes son RE:

➀ Lp = {M0w : M se detiene con entrada w}.➁ Lb = {M : M se detiene al operar con la cinta en blanco}.➂ L = {M : M se detiene con al menos una entrada}.➃ L = {M : M acepta por lo menos dos cadenas}.➄ L = {(M1, M2) : L(M1) ∩ L(M2) �= ∅}. Nota: Las parejas de MT

(M1, M2) se pueden codificar en la forma M10M2.

Page 217: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

7.4. LENGUAJES QUE NO SON RE 211

7.4. Lenguajes que no son RE

En esta seccion exhibiremos un lenguaje que no es RE, o sea, un lenguajeque no puede ser reconocido por ninguna MT. Recordemos que para con-cluir que el lenguaje L = {aibi : i ≥ 0} no es regular y que el lenguajeL = {aibici : i ≥ 0} no es LIC utilizamos razonamientos por contradiccion(basados en lemas de bombeo). Aquı tambien razonaremos por contradic-cion, aunque el lenguaje definido es completamente artificial y la contradic-cion se obtiene por medio de un “argumento diagonal” de interaccion entrelas enumeraciones w1, w2, w3, . . . (entradas) y M1, M2, M3, . . . (maquinasde Turing).

7.4.1 Teorema. El lenguaje

L = {wi : wi no es aceptada por Mi}

no es RE, es decir, no es aceptado por ninguna MT.

Demostracion. Razonamos suponiendo que L sı es RE para llegar a unacontradiccion. Si L fuera RE serıa aceptado por una MT Mk, con respectoa la enumeracion de maquinas de Turing ya descrita. Es decir, L = L(Mk)para algun k. Se tendrıa entonces

wk ∈ L =⇒ wk no es aceptada por Mk =⇒ wk /∈ L(Mk) = L.

wk /∈ L =⇒ wk /∈ L(Mk) =⇒ wk es aceptada por Mk =⇒ wk ∈ L.

Por lo tanto, wk ∈ L ⇐⇒ wk /∈ L, lo cual es una contradiccion.

El lenguaje L del Teorema 7.4.1 se denomina lenguaje de diagonali-zacion y se denota con Ld:

Ld = {wi : wi no es aceptada por Mi}.

A lo largo de este capıtulo encontraremos otros lenguajes que no son RE.

✎ El “argumento diagonal” del Teorema 7.4.1 recuerda el argumentoutilizado por Cantor para demostrar que el conjunto de los nume-ros reales no es enumerable. Tal argumento consiste en suponer,razonando por contradiccion, que el conjunto de los numeros realesentre 0 y 1 es enumerable: r1, r2, r3, . . . . Si se escriben las expan-siones decimales de los numeros (evitando las secuencias de nuevesfinales, para eliminar representaciones multiples), se obtendrıa una“matriz infinita” de la forma:

Page 218: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

212 CAPITULO 7. PROBLEMAS INDECIDIBLES

r1 = 0.a11a12a13 · · ·r2 = 0.a21a22a23 · · ·r3 = 0.a31a32a33 · · ·...

...

Un numero real r = 0.b1b2b3 · · · bk · · · , en el que bi �= aii y bi �= 9para todo i, serıa diferente de todos y cada uno de los rk. Es decir,dada cualquier enumeracion de los reales del intervalo [0, 1], se puedesiempre construir un real que no este en la lista, y esto se puede lograrmodificando los dıgitos de la diagonal principal.Este argumento es completamente similar al de la demostracion delTeorema 7.4.1. En la siguiente matriz infinita hay un 1 en la posicion(i, j) si Mi acepta a wj , y un 0 si Mi no acepta a wj :

w1 w2 w3 w4 · · ·M1 0 0 1 0 · · ·M2 1 0 0 0 · · ·M3 0 1 1 0 · · ·...

...

Las filas representan todos los lenguajes RE. Por diagonalizacionconstruimos un lenguaje que no puede estar en esa lista y, por lotanto, no puede ser RE. El lenguaje Ld se construye “complementan-do” la diagonal (cambiando ceros por unos y unos por ceros).

7.5. Lenguajes RE no recursivos

A continuacion mostraremos que existen lenguajes RE que no son recursi-vos, lo cual quiere decir que la contenencia

Lenguajes recursivos � Lenguajes RE

es estricta o propia (no hay igualdad). Esto implica que existen lenguajesque pueden ser aceptados por MT especıficas pero en cualquier MT quelos acepte habra computos que nunca terminan (obviamente, los compu-tos de las cadenas aceptadas siempre terminan). De este hecho extraemosla siguiente importante conclusion: los computos interminables, o buclesinfinitos, no se pueden eliminar de la teorıa de la computacion.

El primer ejemplo de un lenguaje RE no-recursivo es el lenguaje univer-sal Lu presentado en la seccion 7.2.

Page 219: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

7.5. LENGUAJES RE NO RECURSIVOS 213

7.5.1 Teorema. El lenguaje universal,

Lu = {M0w : M acepta a w},es RE pero no es recursivo.

Demostracion. En las secciones 7.2 y 7.3 se vio que Lu es RE. Para mostrarque Lu no es recursivo razonamos por contradiccion: suponemos que existeuna MT M que procesa todas las entradas M0w y se detiene siempre enun estado de ‘aceptacion’ (si M acepta a w) o en uno de ‘rechazo’ (si Macepta a w). Esta suposicion permitira construir una MT M′ que acepteel lenguaje Ld del Teorema 7.4.1, de lo cual se deducirıa que Ld es RE,contradiciendo ası la conclusion de dicho teorema.

Con una entrada w ∈ Σ∗, la maquina M′ procede ası: enumera sis-tematicamente las cadenas w1, w2, w3, . . . hasta que encuentra un k tal quew = wk. Luego simula (o invoca) a M con entrada Mk0wk, decidiendosi Mk acepta o no a wk. Por lo tanto, M′ acepta el lenguaje Ld, o sea,L(M′) = Ld. Esto significa, en particular, que Ld es RE lo cual contradiceel Teorema 7.4.1.

El siguiente teorema sirve como fuente de ejemplos de lenguajes no RE.

7.5.2 Teorema. Si L es un lenguaje RE no recursivo, L no es RE.

Demostracion. Razonamiento por contradiccion: por el Teorema 6.8.2, siL fuera RE, L serıa recursivo.

Como aplicacion de este resultado podemos concluir que el complementodel lenguaje universal, Lu, no es RE. La siguiente grafica muestra la relacionentre los lenguajes recursivos, los lenguajes RE y los no RE:

︷ ︸︸ ︷RE

no RE

recursivos

RE pero no recursivos

�Ld�Lu

�Lu

Page 220: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

214 CAPITULO 7. PROBLEMAS INDECIDIBLES

Los resultados de las dos ultimas secciones permiten establecer las rela-ciones de contenencia entre las colecciones de lenguajes estudiadas en estecurso (sobre un alfabeto Σ dado):

Regulares � LIC � Recursivos � RE � ℘(Σ∗).

Recursivamente Enumerables

Recursivos

LIC

Regulares

Todos los lenguajes

En capıtulos anteriores mostramos que hay lenguajes recursivos que noson LIC y lenguajes LIC que no son regulares. En el presente capıtulohemos demostrado la existencia de lenguajes RE que no son recursivos y delenguajes que no son RE. Por tal razon, todas las contenencias anterioresson estrictas.

En la siguiente tabla se muestra, a manera de resumen, la relacion entrelos lenguajes estudiados y las maquinas que los aceptan.

Lenguajes Maquinas aceptadoras

Regulares Automatas finitos (AFD ≡ AFN ≡ AFN-λ)

LIC Automatas con pila no-deterministas (AFPN)

RE Maquinas de Turing (MT)

Recursivos Maquinas de Turing que se detienen con toda entrada

Page 221: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

7.6. PROBLEMAS INDECIDIBLES O IRRESOLUBLES 215

7.6. Problemas indecidibles o irresolubles

Dada una propiedad P referente a maquinas de Turing, un problema dedecision para P consiste en buscar un algoritmo A, aplicable a toda MT M(es decir, a toda codificacion binaria), que responda SI o NO a la pregunta:¿satisface M la propiedad P? Si existe un algoritmo de decision, se dice queel problema P es decidible o resoluble; en caso contrario, el problema P

es indecidible o irresoluble.Un algoritmo de decision debe ser aplicable uniformemente a todas las

entradas (¡hay infinitas entradas!) y terminar con una de las conclusiones‘SI’ o ‘NO’:

P se satisface

P no se satisface

Entrada o

Instancia

Algoritmode decision A

SI

NO

Segun la tesis de Church-Turing (seccion 6.9), identificamos algoritmos conmaquinas de Turing y, por lo tanto, decir que el problema P es indecidibleequivale a afirmar que el lenguaje

L = {M : M es el codigo de una MT que satisface P}no es recursivo.�

�Ejemplo El hecho de que el lenguaje universal Lu no es recursivo, esta-

blecido en el Teorema 7.5.1, equivale a afirmar que el siguienteproblema de decision (el “problema universal”) es indecidible:

Dada una MT M cualquiera, sobre un alfabeto de cinta Σ pre-determinado, y una cadena w ∈ Σ∗, ¿acepta M a w?

Notese que las entradas o instancias para este problema son de la formaM0w donde M es el codigo de una MT y w es el codigo de una entrada(sobre el alfabeto Σ).

Page 222: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

216 CAPITULO 7. PROBLEMAS INDECIDIBLES

Tecnica de reduccion de problemas

Conociendo que ciertos problemas son indecidibles, se puede concluir queotros problemas de decision tambien lo son si se razona por contradiccion.Para ser mas precisos, supongase que ya se sabe que un cierto problemaP1 es indecidible (como el problema universal, por ejemplo). Podrıamosconcluir que un problema dado P2 es indecidible razonando ası: si P2 fueradecidible tambien lo serıa P1. Esta contradiccion mostrara que el problemaP2 no puede ser decidible. Cuando se emplea este razonamiento, se dice queel problema P1 se reduce al problema P2.

Para utilizar esta tecnica de reduccion, es necesario disenar un algoritmoA (o una maquina de Turing) que sea capaz de convertir una entrada cual-quiera u del problema P1 en entradas para el problema P2 de tal maneraque, al aplicar la supuesta MT M que resuelve el problema P2, se lleguea una decision, SI o NO, del problema P1 para la entrada u. La siguientegrafica ilustra este procedimiento; el algoritmo A, que aparece represen-tado por el rectangulo a trozos, es la parte esencial del procedimiento dereduccion.

Entradau de P1

Entradade P2

Decision para P2Decision para P1

con entrada w

SI

NO

A M

�Ejemplo Problema de la parada o problema de la detencion. Este fa-

moso problema (halting problem, en ingles), estudiado por elpropio Turing, consiste en preguntar si existe un algoritmo para el siguienteproblema de decision:

Dada una MT M cualquiera, sobre el alfabeto de cinta Σ, y unacadena w ∈ Σ∗, ¿se detiene M al procesar la entrada w?

El problema universal se puede reducir al problema de la parada. En otrosterminos, asumiendo la existencia de una MT M que resuelva el problema

Page 223: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

7.6. PROBLEMAS INDECIDIBLES O IRRESOLUBLES 217

de la parada se puede resolver el problema universal. La grafica siguienteesboza el razonamiento.

M0w M0wDecision del problema

de la paradaDecision del problema

universal

SI

NO

M ′M

Sea M0w una entrada arbitraria (M y w codifican MT y cadenas de Σ∗,respectivamente). La maquina M ′ solamente devuelve la entrada M0w, yaque las entradas para el problema universal y para el problema de la paradacoinciden. Puesto que M es capaz de decidir si M se detiene o no conentrada w, tendrıamos un algoritmo para resolver el problema universal:

1. Si M no se detiene con entrada w, entonces M no acepta a w.

2. Si M se detiene con entrada w, procesar w con M y determinar si esaceptada o no.

Conclusion: si el problema de la parada fuera decidible, tambien lo serıa elproblema universal.

El anterior argumento tambien permite concluir que el lenguaje

Lp = {M0w : M se detiene con entrada w}

no es recursivo, aunque, segun el ejercicio ➀ de la seccion 7.3, Lp es RE.

�Ejemplo Problema de la cinta en blanco.

Dada una MT M cualquiera, sobre el alfabeto de cinta Σ, ¿sedetiene M al iniciar su funcionamiento con la cinta en blanco(todas las celdas marcadas con b)?

Page 224: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

218 CAPITULO 7. PROBLEMAS INDECIDIBLES

El problema de la parada se puede reducir al problema de la cinta enblanco, es decir, asumiendo la existencia de una MT M que resuelva elproblema de la cinta en blanco se puede resolver el problema de la parada.La siguiente grafica esboza el razonamiento:

M0w M ′Decision del problema

de la cinta enblanco

Decision del problemade la parada

SI

NO

M ′M

Sea M0w una entrada arbitraria. Construimos una MT M ′ que empiece aoperar con la cinta en blanco y, como primera instruccion, escriba la cadenaM0w en una porcion reservada (finita) de la cinta. M ′ simula luego elprocesamiento que hace M con entrada w. Como M ′ inicia su procesamientocon la cinta en blanco, podemos ejecutar la maquina (algoritmo) M, conentrada M ′ (codificada). M decide si M ′ se detiene o no y, por lo tanto, seobtiene una decision sobre si M se detiene o no con entrada w. Conclusion:si el problema de la cinta en blanco fuera decidible, tambien lo serıa elproblema de la parada.

Lo anterior tambien permite concluir que el lenguaje

Lb = {M : M se detiene al operar con la cinta en blanco}

no es recursivo.�

�Ejercicios de la seccion 7.6

➀ Mediante la tecnica de reduccion de problemas mostrar que los si-guientes problemas de decision son indecidibles:

(i) Problema de la impresion: dada M = (Q, q0, F, Σ, Γ, b, δ) unaMT cualquiera y un sımbolo s ∈ Γ, ¿imprimira M alguna vezel sımbolo s sobre la cinta si M inicia su funcionamiento con

Page 225: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

7.6. PROBLEMAS INDECIDIBLES O IRRESOLUBLES 219

la cinta en blanco? Ayuda: reducir el problema de la cinta enblanco a este problema.

(ii) Problema del ingreso a un estado: dada M = (Q, q0, F, Σ, Γ, b, δ)una MT cualquiera, una cadena de entrada w ∈ Σ∗ y estadoq ∈ Q, ¿ingresara M al estado q al procesar la cadena w? Ayuda:reducir el problema universal a este problema.

!(iii) Dada una MT M , ¿L(M) = Σ∗? Ayuda: el problema de la cintaen blanco se puede reducir a este problema. Para ello, disenarun algoritmo que genere el codigo de una MT M ′ de tal maneraque se cumpla: “M ′ acepta cualquier cadena si y solo si M sedetiene con la cinta en blanco”.

!(iv) Dada una MT M , ¿L(M) �= ∅? Ayuda: utilizar una idea similara la del problema (iii).

(v) Dadas dos MT M1 y M2 cualesquiera, ¿L(M1) = L(M2)?Ayuda: si este problema fuera decidible, tambien lo serıa el pro-blema (iii), tomando como M2 una MT adecuada.

(vi) Dadas dos MT M1 y M2 cualesquiera, ¿L(M1) ⊆ L(M2)?Ayuda: si este problema fuera decidible, tambien lo serıa el pro-blema (iii), tomando como M1 una MT adecuada.

(vii) Dadas dos MT M1 y M2 cualesquiera, ¿L(M1) ∩ L(M2) �= ∅?Ayuda: si este problema fuera decidible, tambien lo serıa el pro-blema (iv), tomando como M2 una MT adecuada.

➁ Demostrar que si el problema de la parada fuera resoluble, todo len-guaje RE serıa recursivo.

➂ Demostrar que los lenguajes La, Lb y Lp no son RE. Explıcitamente,estos lenguajes estan definidos como

La = {M : L(M) = ∅} = {M : M no acepta ninguna cadena},Lb = {M : M no se detiene al operar con la cinta en blanco},Lp = {M0w : M no se detiene con entrada w}.

Ayuda: usar el Teorema 7.5.2.

➃ Demostrar que el lenguaje {(M1, M2) : L(M1) ∩ L(M2) = ∅} no esRE.

Page 226: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa
Page 227: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

Bibliografıa

[ASU] A. Aho, R. Sethi & J. Ullman, Compilers: Principles, Techniquesand Tools, Addison-Wesley, 1986.

[B] F. Beckman, Mathematical Foundations of Programming, Addison-Wesley, 1980.

[C] N. Cutland, Computability, Cambridge University Press, 1980.

[GPR] P. Garcıa, T. Perez, J. Ruiz, et al., Teorıa de Automatas y Len-guajes Formales, Alfaomega, 2001.

[HU1] J. Hopcroft & J. Ullman, Formal Languages and their Relationto Automata, Addison-Wesley, 1969.

[HU2] J. Hopcroft & J. Ullman, Introduction to Automata Theory, Lan-guage and Computation, Addison-Wesley, 1979.

[HMU] J. Hopcroft , R. Motwani & J. Ullman, Introduccion a la Teorıade Automatas, Lenguajes y Computacion, Segunda Edicion, Pearson-Educacion, 2002.

[K] D. Kelley, Teorıa de Automatas y Lenguajes Formales, PrenticeHall, 1995.

[LP] H. Lewis & C. Papadimitriou, Elements of the Theory of Compu-tation, Prentice Hall, 1981.

[R] G. Revesz, Introduction to Formal Language Theory, Dover Publi-cations, 1991.

[Sa] J. Savage, Models of Computation, Addison-Wesley, 2000.

221

Page 228: Teor´ıa de la Computaci on´ciencias.bogota.unal.edu.co/fileadmin/Facultad_de...Prologo´ Este libro contiene lo m´ınimo que los estudiantes de las carreras de inge- nier´ıa

222 BIBLIOGRAFIA

[Su] T. Sudkamp, Languages and Machines, Addison-Wesley, 1988.

[SW] R. Sommerhalder & S. van Westrhenen, The Theory of Com-putability, Addison-Wesley, 1988.