t Comput Ac i on Rodrigo de Castro

  • Upload
    -i

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    1/228

    Teora de la Computacion

    Lenguajes, automatas, gramaticas

    Rodrigo De Castro Korgi

    Ph.D. en Matematicas

    University of Illinois, U.S.A.

    Departamento de Matematicas

    Universidad Nacional de Colombia, Bogota

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    2/228

    Teora 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 Korgi

    Profesor AsociadoDepartamento de Matematicas

    Primera edicion, 2004Diagramacion en LATEX realizada por el autor

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

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    3/228

    Indice general

    Prologo 1

    Introduccion. Que es la Teora de la Computacion? 3

    1. Alfabetos, cadenas y lenguajes 51.1. Alfabetos y cadenas . . . . . . . . . . . . . . . . . . . . . . 5

    1.2. Concatenacion de cadenas . . . . . . . . . . . . . . . . . . . 71.3. Potencias de una cadena . . . . . . . . . . . . . . . . . . . . 8

    1.4. Longitud de una cadena . . . . . . . . . . . . . . . . . . . . 8

    1.5. Reflexion o inversa de una cadena . . . . . . . . . . . . . . . 9

    1.6. Subcadenas, prefijos y sufijos . . . . . . . . . . . . . . . . . 9

    1.7. Lengua jes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    1.8. Operaciones entre lenguajes . . . . . . . . . . . . . . . . . . 11

    1.9. Concatenacion de lengua jes . . . . . . . . . . . . . . . . . . 12

    1.10. Potencias de un lenguaje . . . . . . . . . . . . . . . . . . . . 14

    1.11. La clausura de Kleene de un lenguaje . . . . . . . . . . . . 14

    1.12. Reflexion o inverso de un lenguaje . . . . . . . . . . . . . . 17

    1.13. Lenguajes regulares . . . . . . . . . . . . . . . . . . . . . . . 181.14. Expresiones regulares . . . . . . . . . . . . . . . . . . . . . . 19

    2. Automatas finitos 252.1. Automatas finitos deterministas (AFD) . . . . . . . . . . . 25

    2.2. Diagrama de transiciones de un automata . . . . . . . . . . 28

    2.3. Diseno de automatas . . . . . . . . . . . . . . . . . . . . . . 29

    2.4. Automatas finitos no-deterministas (AFN) . . . . . . . . . . 33

    2.5. Equivalencia computacional entre los AFD y los AFN . . . 38

    2.6. Automatas con transiciones (AFN-) . . . . . . . . . . . 43

    iii

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    4/228

    iv INDICE GENERAL

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

    2.8. Teorema de Kleene. Parte I . . . . . . . . . . . . . . . . . . 49

    2.9. Ejemplos de la parte I del Teorema de Kleene . . . . . . . . 52

    2.10. Lema de Arden . . . . . . . . . . . . . . . . . . . . . . . . . 55

    2.11. Teorema de Kleene. Parte II . . . . . . . . . . . . . . . . . . 57

    2.12. Ejemplos de la parte II del Teorema de Kleene . . . . . . . 58

    3. Otras propiedades de los lenguajes regulares 63

    3.1. Lema de bombeo . . . . . . . . . . . . . . . . . . . . . . . . 633.2. Propiedades de clausura . . . . . . . . . . . . . . . . . . . . 67

    3.3. Propiedades de clausura para automatas . . . . . . . . . . . 69

    3.4. Homomorfismos . . . . . . . . . . . . . . . . . . . . . . . 72

    3.5. Imagen inversa de un homomorfismo . . . . . . . . . . . 74

    3.6. Algoritmos de decision . . . . . . . . . . . . . . . . . . . . . 75

    4. Lenguajes y gramaticas independientes del contexto 81

    4.1. Gramaticas generativas . . . . . . . . . . . . . . . . . . . . 81

    4.2. Gramaticas independientes del contexto . . . . . . . . . . . 82

    4.3. Arbol de una derivacion . . . . . . . . . . . . . . . . . . . . 884.4. Gramaticas ambiguas . . . . . . . . . . . . . . . . . . . . . 91

    4.5. Gramaticas para lenguajes de programacion . . . . . . . . . 94

    4.6. Gramaticas para lenguajes naturales . . . . . . . . . . . . 96

    4.7. Gramaticas regulares . . . . . . . . . . . . . . . . . . . . . . 98

    4.8. Eliminacion de las variables inutiles . . . . . . . . . . . . . 102

    4.9. Eliminacion de las producciones . . . . . . . . . . . . . . 107

    4.10. Eliminacion de las producciones unitarias . . . . . . . . . . 110

    4.11. Forma Normal de Chomsky (FNC) . . . . . . . . . . . . . . 113

    4.12. Forma Normal de Greibach (FNG) . . . . . . . . . . . . 120

    4.13. Lema de bombeo para LIC . . . . . . . . . . . . . . . . . . 1254.14. Propiedades de clausura de los LIC . . . . . . . . . . . . . . 130

    4.15. Algoritmos de decision para GIC . . . . . . . . . . . . . . . 135

    5. Automatas con pila 143

    5.1. Automatas con Pila Deterministas (AFPD) . . . . . . . . . 143

    5.2. Automatas con pila no-deterministas (AFPN) . . . . . . . . 149

    5.3. Aceptacion por pila vaca . . . . . . . . . . . . . . . . . . . 154

    5.4. Automatas con pila y LIC. Parte I. . . . . . . . . . . . . . . 157

    5.5. Automatas con pila y LIC. Parte II. . . . . . . . . . . . . 160

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    5/228

    INDICE GENERAL v

    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 . . . 181

    6.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 de Turing 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 . . . . . . . . . . . . . . . . . . . . 1936.9. MT, computadores, algoritmos y la tesis de Church-Turing 198

    6.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

    Bibliografa 221

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    6/228

    vi INDICE GENERAL

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    7/228

    Prologo

    Este libro contiene lo mnimo que los estudiantes de las carreras de inge-niera de sistemas y de matematicas deberan saber sobre los fundamentosmatematicos de la teora 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 profesoresEl libro esta escrito tanto para estudiantes de matematicas quienes, esde suponer, tienen mas experiencia con razonamientos abstractos y demos-traciones como para estudiantes de ingeniera. 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 ingeniera 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 teora.

    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 teora 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

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    8/228

    2 PROLOGO

    disponible no es holgado, o no es posible avanzar con la velocidad suficiente,podran suprimirse las secciones demarcadas con el smbolo .

    Casi todas las secciones poseen ejercicios, de variada dificultad; los masdifciles estan precedidos de un smbolo de admiracion!y podran 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 Teora de la Computacion perteneciente al programaUniversidad Virtualde 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: CursosFacultad de CienciasMatematicasTeora 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.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    9/228

    Introduccion

    Que es la Teora de la Computacion?

    La Teora 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 teora 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 (19031995) y del matematico britanico Alan Turing(19121954). 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 porcualquiermetodo

    computacional 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 decualquier otro dispositivo fsicode computacion secuencial.

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

    3

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    10/228

    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 demaquina 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 lnea investigativa, aparente-mente alejada de los modelos de computacion, surgio con los estudios dellinguista norteamericano Noam Chomsky1. Chomsky introdujo en 1956 lanocion de gramatica generativacon 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 smbolos. Pocos anos despues se establecio que hay una estrecharelacion entre automatas y gramaticas: los lenguajes de la llamadajerarquade Chomsky corresponden a los lenguajes que pueden ser reconocidos portipos especiales de automatas.

    La interaccion entre los automatas (mecanismos para procesar cade-nas de smbolos) y las gramaticas (mecanismos para generar cadenas desmbolos) 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 teora 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 HonorisCausaa Noam Chomsky.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    11/228

    Captulo1Alfabetos, cadenas y lenguajes

    De manera muy amplia podra decirse que la computacion es la manipula-cion de secuencias de smbolos. Pero el numero de smbolos 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 smbolos (alfabeto) debe ser finito y se deben considerar uni-camente cadenas (secuencias de smbolos) de longitud finita. Surgen as losingredientes esenciales de una teora 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 vaco cuyos elementos se llamansmbolos. 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 smbolos, la cual se denomina cadena vaca y sedenota con . La cadena vaca desempena, en la teora de la computacion,un papel similar al del conjunto vaco en la teora de conjuntos.

    Ejemplo Sea ={a, b} el alfabeto que consta de los dos smbolos a y

    b. Las siguientes son cadenas sobre :

    abaababaaaaaaab.

    5

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    12/228

    6 CAPITULO 1. ALFABETOS, CADENAS Y LENGUAJES

    Observese que aba =aab. El orden de los smbolos 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 smbolos de puntuacion y los smbolos ma-tematicos disponibles en los teclados estandares.

    El conjunto de todas las cadenas sobre un alfabeto , incluyendo lacadena vaca, 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 lateora de la computacion. De ser necesario, se emplean subndices.

    Notacion usada en la teora de la computacion

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

    pueden formar con los smbolos del alfabeto .

    a,b,c,d,e,. . . denotan smbolos de un alfabeto.

    u,v,w,x,y,z, . . .,,, . . .

    denotan cadenas, es decir, sucesiones finitas desmbolos de un alfabeto.

    denota la cadena vaca, es decir, la unica cadenaque no tiene smbolos.

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

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    13/228

    1.2. CONCATENACION DE CADENAS 7

    Algunos autores denotan la cadena vaca con la letra griega .Preferimos denotarla con porque tiende a confundirse con elsmbolousado 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 smbolo, = {a}, y ={,a,aa,aaa,aaaa,aaaaa,... }.

    Hay que distinguir entre los siguientes cuatro objetos, que son

    todos diferentes entre s:, ,{} y {}. La mayor parte de la teora 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 vaca, a izquierda o a derecha, es

    igual 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 smbolos de u y acontinuacion los smbolos 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, siu, v,w , entonces

    (uv)w= u(vw).

    Demostracion. Se puede hacer escribiendo explcitamente las cadenasu, v,wy usando la definicion descriptiva de concatenacion. Tambien se puede daruna demostracion inductiva usando la definicion recursiva de concatenacion(ejercicio opcional).

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    14/228

    8 CAPITULO 1. ALFABETOS, CADENAS Y LENGUAJES

    1.3. Potencias de una cadena

    Dadau yn 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

    Lalongitudde una cadenau se denota |u| y se define como el numerode smbolos de u (contando los smbolos 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 wn+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.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    15/228

    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 u1 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 cadenaves unasubcadenao unasubpalabradeusi existen cadenasx, y tales que u = xvy. Notese que x o y pueden ser y, por lo tanto,la cadena vaca es una subcadena de cualquier cadena y toda cadena es

    subcadena de s misma.Un prefijo de u es una cadena v tal que u = vw para alguna cadena

    w . 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 propiosi 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.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    16/228

    10 CAPITULO 1. ALFABETOS, CADENAS Y LENGUAJES

    Prefijos de u :

    b

    bcbcb

    bcbabcbaa

    bcbaad

    bcbaadb

    Sufijos de u :

    b

    dbadb

    aadbbaadb

    cbaadb

    bcbaadb

    1.7. Lenguajes

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

    Casos extremos:

    L= , lenguaje vaco.L= , lenguaje de todas las cadenas sobre .

    Todo lenguaje L satisface L

    , y puede ser finito o infinito. Loslenguajes se denotan con letras mayusculasA, 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}.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    17/228

    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 smbolo 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 conjuntoN 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 lenguaje

    de 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 desmbolos 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 los

    siguientes tambien son lenguajes sobre :

    A B UnionA B InterseccionA B DiferenciaA= A Complemento

    Estas operaciones entre lenguajes se llamanoperaciones conjuntistasoboo-leanaspara distinguirlas de las operaciones lingusticas(concatenacion, po-tencia, inverso, clausura) que son extensiones a los lenguajes de las opera-ciones entre cadenas.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    18/228

    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-plementeAB 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. SeanA, B,C lengua-jes sobre, es decirA, 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}iIes una familia cual-quiera de lenguajes sobre , entonces

    A iI

    Bi =iI

    (A Bi),iI

    Bi

    A=

    iI

    (Bi A).

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    19/228

    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 iI

    Bi =iI

    (A Bi):

    x A

    iIBi x= u v, con u A & v

    iIBi x= u v, con u A & v Bj , para algun j I x A Bj , para algun j I x

    iI(A Bi).

    La igualdadiI

    Bi

    A=

    iI

    (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 queA (B C) =A B A C. Es decir,la concatenacion no es distributiva con respecto a la intersecci on.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 diferentesA, Bsobre 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 CA (B C).

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    20/228

    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 todoi, 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

    Laclausura de Kleeneo estrella de Kleeneo simplemente la estrellade un lenguaje A, A , es la union de todas las potencias de A y sedenota por A.

    (Descripcion 1) A =i0

    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+ =i1

    Ai =A1 A2 An

    A+ se puede describir de la siguiente manera

    A+ = conjunto detodaslas concatenaciones de cadenas de A

    = {u1 un: ui A, n 1}

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    21/228

    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) = (AB).

    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 den + mcadenas de A. As que x A.

    Recprocamente, si x A, entoncesx = x A A. Esto prueba laigualdad de los conjuntos A A y A.

    3. Se sigue de la propiedad anterior.A

    =

    A0

    A1

    A2

    4.

    ={} A A A

    =A.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    22/228

    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+

    =

    A1

    (A2

    (A3

    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 (AB) esta formado por las conca-tenaciones de cadenas deAconsigo mismas, las concatenaciones de cadenasdeB consigo mismas y las concatenaciones de cadenas deAcon 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 (AB).

    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.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    23/228

    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 reflexiono el inversode A.

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

    1. (A B)

    R

    =B

    R

    AR

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

    3. (A B)R =AR BR.

    4.

    ARR

    =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 A5.

    x = (u1 u2 un)R, donde los ui A, n 0

    x = uRn uR2

    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?

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    24/228

    18 CAPITULO 1. ALFABETOS, CADENAS Y LENGUAJES

    1.13. Lenguajes regulares

    Loslenguajes regularessobre 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 cadaa , 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 Cde 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} esregularya que L se puede obtener con uniones y concatenaciones:

    L= {w1} {w2} {wn},

    y cada wi es la concatenacion de un numero finito de smbolos, wi =a1a2 ak; por lo tanto,{wi}= {a1} {a2} {ak}.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    25/228

    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 Sson 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 ) sonsmbolos de agrupacion y se pueden omitir si no hay peligro de am-biguedad.

    Para una expresion regularR 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)

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    26/228

    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= bab.

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

    B = b(a b).

    3. El lenguaje Cde 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 (ab) re-presentan el mismo lenguaje por la propiedad 9 de la secci on 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 smbolo b yterminan con el smbolo a.

    Solucion. b(a b)a.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    27/228

    1.14. EXPRESIONES REGULARES 21

    2. Lenguaje de todas las cadenas que tienen un numero par de smbolos(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(babab).

    (aba b).(babab) 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. 10101.

    2. Lenguaje de todas las cadenas cuyo penultimo smbolo, 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 que

    tener 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.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    28/228

    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 smbolo. 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 smbolos.

    (iii) ={a, b}. Lenguaje de todas las cadenas que tienen un numeroimpar de smbolos.

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

    (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.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    29/228

    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 smbolo, 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 es4.

    (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.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    30/228

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    31/228

    Captulo2Automatas 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 (19121954) con el proposito de precisar las caractersticas y las limitaciones deun dispositivo de computacion mecanica. En los anos 40 y 50 del siglo XX

    se 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:

    Automata

    M

    Cadena de

    entradau

    si (u es aceptada)

    no (ues rechazada)

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

    25

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    32/228

    26 CAPITULO 2. AUTOMATAS FINITOS

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

    Formalmente, un automata finitoM esta definido por cinco parametroso componentes, M= (, Q , q 0, F , ), a saber:

    1. Un alfabeto , llamado alfabeto de cinta. Todas las cadenas que pro-cesaMpertenecen a .

    2. Q= {q0, q1, . . . , q n}, 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 primersmbolo de u ocupa la primera casilla de la cinta. La unidad de control

    esta 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 smbolo escaneado y de su estado actual. As, (q, s) =q

    significa que, en presencia del smbolo s, la unidad de control pasa del

    estadoqal estado q y se desplaza hacia la derecha. Esta accion constituyeunpaso computacional:

    s s

    q

    q

    (q, s) =q

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    33/228

    2.1. AUTOMATAS FINITOS DETERMINISTAS (AFD) 27

    Puesto que la funcion esta definida para toda combinacion estado-smbolo, una cadena de entrada cualquiera es procesada completamente,hasta que la unidad de control encuentra la primera casilla vaca.

    La unidad de control de un automata siempre se desplaza hacia la dere-cha; no puede retornar ni escribir smbolos 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.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    34/228

    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 vaca es aceptada por unautomataMsi y solamente si el estado inicial q0de Mtambien es un estadode aceptacion.

    Los automatas finitos descritos anteriormente se denominanautomatasfinitos deterministas (AFD) ya que para cada estado q y para cadasmbolo a , la funcion de transicion (q, a) siempre esta definida. Esdecir, la funcion de transicion determina completa y unvocamente laaccion que el automata realiza cuando la unidad de control se encuentra enun estado qleyendo un smbolo s sobre la cinta.

    Dado un automata M, ellenguaje aceptado o reconocido porM se

    denota L(M) y se define por

    L(M) := {u :Mtermina 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 qse representa por: q

    El estado inicial q0 se representa por: >q0

    Un estado final qse representa por: q

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    35/228

    2.3. DISENO DE AUTOMATAS 29

    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 smbolos 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 entradaaaababbb es aceptada mientras que aabaaba es rechazada.

    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 no

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    36/228

    30 CAPITULO 2. AUTOMATAS FINITOS

    dibujadas explcitamente 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 captulo abordaremos dos tipos de problemas:

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

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

    Mas adelante se demostrara, en toda su generalidad, que estos problemassiempretienen 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

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

    mente dos aes =babab. AFD M tal que L(M) =L:

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    37/228

    2.3. DISENO DE AUTOMATAS 31

    >q0 q1 q2

    b b ba a

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

    numero par de smbolos (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.

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

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    38/228

    32 CAPITULO 2. AUTOMATAS FINITOS

    (iii) ={a, b}. L = ab+.

    (iv) ={a, b}. L = ab aba.

    (v) ={0, 1}. L = (0 10).

    (vi) ={0, 1}. L = (01 10).

    (vii) ={0, 1}. Lenguaje de todas las cadenas que no contienen dosunos consecutivos.

    (viii) ={a, b}. L = {a2ib3j :i, j 0}.

    (ix) = {a, b}. L= lenguaje de las cadenas sobre que contienenun numero par de aes y un numero par de bes. Ayuda: utilizar4 estados.

    (x) = {a, b}. Para cada combinacion de las condiciones par eimpar 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 aes

    y/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 caracterstica o deuna expresion regular.

    (i)

    > q0 q1 q2 q3 q4

    0 0 0 0

    1 1 1 1

    0

    1

    (ii)

    >q0 q1 q2 q31 0

    1

    0

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    39/228

    2.4. AUTOMATAS FINITOS NO-DETERMINISTAS (AFN) 33

    (iii)

    > q0

    q1

    q2 q31 1

    0 1

    1

    0

    (iv)

    >q0 q1 q2b

    a

    b

    b a

    2.4. Automatas finitos no-deterministas (AFN)

    Losautomatas 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 , q 0, 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 aceptaci on.

    5. :Q (Q)

    (q, s) (q, s) ={qi1 , qi2 , . . . , q ik}

    donde(Q) es el conjunto de subconjunto de Q.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    40/228

    34 CAPITULO 2. AUTOMATAS FINITOS

    El significado de (q, s) = {qi1 , qi2 , . . . , q ik} es el siguiente: estando enel estado q, en presencia del smbolo 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,Mingresa al estado q leyendo sobrela cinta el smbolo 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 lossmbolos de u.

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

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

    de u que termina en un estado q F}

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    41/228

    2.4. AUTOMATAS FINITOS NO-DETERMINISTAS (AFN) 35

    Es decir, para que una cadenau 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 Mel 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 entradau= 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

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    42/228

    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 siguienteAFD 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, m as facil de

    concebir, es el siguiente:

    >q0 q1

    a

    b

    b

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

    Ejemplo Considerese el lengua je 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.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    43/228

    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 s olo 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= abc.

    = {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 ceros

    consecutivos. = {0, 1}. Lenguaje de las cadenas de longitud impar que tienen

    unos unicamente en las posiciones impares.

    = {a,b,c}. L = lenguaje de las cadenas sobre que contienen lacadenabc.

    ={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!

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    44/228

    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 computacio-nalmente equivalentes. En primer lugar, es facil ver que un AFD M =(, Q , q 0, F , ) puede ser considerado como un AFN M

    = (, Q , q 0, F, )definiendo (q, a) = {(q, a)} para cada q Q y cada a . Para laafirmacion recproca tenemos el siguiente teorema.

    2.5.1 Teorema. Dado un AFN M = (, Q , q 0, F, ) se puede construirun AFDM equivalente aM, es decir, tal queL(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 menosun 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 bq0 {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:

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    45/228

    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

    lenguajeL = (01 010) sobre ={0, 1}.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    46/228

    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 00

    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:

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    47/228

    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. SeaM= (, Q , q 0, F , ) un AFD. La funcion de transi-cion: Q Q se extiende a una funcion

    : Q Q por medio

    de 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 Mde 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 , q 0, F, ) un AFN. La funcion de tran-sicion :Q (Q) se extiende inicialmente a conjuntos de estados.Paraa y S F se define

    (S, a) :=qS

    (q, a).

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    48/228

    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 computoscompletosde w. Si el computo se aborta durante el procesamiento de w, se tendra(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 , q 0, 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 queL(M) =L(M) probando que, para toda cadenaw ,({q0}, w) = (q0, w). Esta igualdad se demostrara por induccion sobre w.Paraw= , 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 quea .

    ({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 ).

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    49/228

    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-deterministaM = (, Q , q 0, F, ) en el que la funcion de transicion esta de-finida como:

    :Q ( {}) (Q).

    La transicion (q, ) = {pi1 , . . . , pin}, llamada transicion , transicion

    nulao 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 smbolo ledo y sin moverla unidad de control. Dicho de otra manera, las transiciones permitenal automata cambiar internamente de estado sin procesar o consumir elsmbolo ledo 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 smbolos de w, intercalados con cero, uno o mas s.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    50/228

    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

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    51/228

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    52/228

    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}.

    abbab(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 unnumero par de aes y un numero par de bes.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    53/228

    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 transicionesse pueden eliminar, anadiendo transiciones que las simulen, sin alterar ellenguaje aceptado.

    En primer lugar, un AFN M = (, Q , q 0, F, ) puede ser considerado

    como un AFN- en el que, simplemente, hay cero transiciones . Para laafirmacion recproca tenemos el siguiente teorema.

    2.7.1 Teorema. Dado un AFN- M= (, Q , q 0, F, ), se puede construirun AFNM equivalente aM, es decir, tal queL(M) =L(M).

    Bosquejo de la demostracion. Para construirM a partir deMse 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 qpor 0, 1 o mas transiciones . Notese que, en general,[q] = (q, ). Por definicion, q [q]. La -clausura de un conjunto de

    estados {q1, . . . , q k} se define por:

    [{q1, . . . , q k}] :=[q1] [qk].

    Ademas, [] := . SeaM = (, Q , q 0, 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 deM 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 algortmica.

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

    sentado en el segundo ejemplo de la seccion 2.6.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    54/228

    48 CAPITULO 2. AUTOMATAS FINITOS

    >q0 q1 q2

    a b c

    L(M) =abc. 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.7Construir AFN equivalentes a los siguientes AFN-:

    > q0 q1

    q2 q3

    b

    a, b

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    55/228

    2.8. TEOREMA DE KLEENE. PARTE I 49

    >q0 q1 q2

    q3

    b

    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 AFDM, se puede encontrar una expresion regularR tal queL(M) =

    R. En ambas direcciones las demostraciones son constructivas.Las construcciones de este captulo se pueden presentar as:

    AFD

    Lenguajes regulares

    AFN

    AFN-

    T. de Kleene II T. de Kleene I

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    56/228

    50 CAPITULO 2. AUTOMATAS FINITOS

    Parte I. Dada una expresion regular R sobre un alfabeto , se puedeconstruir un AFN- Mtal que el lenguaje aceptado porMsea exactamenteel lenguaje representado por R.

    Expresion regular R Procedimiento

    algortmico

    MAFN- tal queL(M) =R.

    Demostracion. Puesto que la definicion de las expresiones regulares se hacerecursivamente, la demostracion se lleva a cabo razonando por induccion so-breR. Para las expresiones regulares basicas, podemos construir facilmenteautomatas que acepten los lengua jes 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 expresi onregular R = .

    El automata

    >q0 q1a

    acepta el lenguaje {a}, a , es decir, el lenguaje representado por la

    expresion regular R = a.Paso inductivo: supongase que para las expresiones regulares R y Sexis-

    ten AFN- M1yM2tales queL(M1) =RyL(M2) =S. Esquematicamentevamos a presentar los automatas M1 y M2 en la siguiente forma:

    >

    M1

    ... >

    M2

    ...

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    57/228

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    58/228

    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(abba) a(ba) sobreel alfabeto {a, b}.

    Automata que acepta ab:

    >

    a b

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    59/228

    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

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    60/228

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    61/228

    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 aba)c (a b)(a ac).

    ca(a ba)(abc) c(a cbc).

    (ac) a(a aba) (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 ecuacionX = AX B tiene una unica solucion dadaporX=AB.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    62/228

    56 CAPITULO 2. AUTOMATAS FINITOS

    Demostracion. Si X es una solucion de X = AXB , 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 AnXX

    para todo n N. As que

    A

    B = n0

    AnB =

    n0An

    BX.

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

    A(AB) B = A+B B = (A+ )B = AB.

    Para la unicidad, demostraremos que siAB C, conC AB = , es unasolucion de la ecuacion, entonces C= .

    AB C= A(AB C) B

    =A+B AC B= (A+ )B AC

    =AB AC.

    Intersectando con Cambos lados de la anterior igualdad, se tiene:

    (AB C) C= (AB C) (AC C),

    C=AC C.

    Por lo tanto, CAC. Si se tuviera C= , existira una cadena u C delongitud mnima. Entonces u = vw, conv A,w C. Como A,v =;

    por consiguiente |w|< |u|. Esta contradiccion muestra que necesariamenteC= , tal como se quera.

    Ejemplo La ecuacion X=aX bab tiene solucion unica X=abab.

    Ejemplo La ecuacionX=a

    2X b+X abse puede escribir en la formaX = (a2 b+)X ab. Por el lema de Arden la ecuacion tiene

    solucion unicaX= (a2 b+)ab.

    Ejemplo La ecuacionX=ab

    2X aX ab base puede escribir comoX= (ab2 a)X (ab ba). Por lema de Arden la ecuacion

    tiene solucion unicaX= (ab2 a)(ab ba).

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    63/228

    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 bab 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 , q 0, 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 , q i, 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 qiF,a

    {aAj :qj (qi, a)} . si qi F.

    Si Q = {q0, q1, . . . , q n}, las igualdades de la forma (2.1) dan lugar a un

    sistema 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 smbolo de . El termino seanade a una ecuacion solamente si el estado correspondiente es un estadode aceptacion.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    64/228

    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, An1 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 coeficientesCij diferentes de son smbolos de , se obtieneuna expresion regularR 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-contrarL(M) a partir de un AFN M= (, Q , q 0, 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 explcitamente 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).

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    65/228

    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)

    a

    2

    (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

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    66/228

    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

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    67/228

    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 ecuaci on:

    (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)bSb(a2)abRaSb(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 Sen (16) obtenemos una expresion regular para L.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    68/228

    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 par

    de aes o un numero impar de bes. Utilizando el lema de Arden, encontrar expresiones regulares para los

    lenguajes 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

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    69/228

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    70/228

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    71/228

    3.1. LEMA DE BOMBEO 65

    (II) uvixno puede estar enL, para alguni 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, existira una constante de bombeo n para L.Sea w= anbn L. Entoncesw se puede descomponer como w= uvx, con|v| 1 y |uv| n. Por lo tanto, uy v constan unicamente de aes:

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

    Entonces,

    x= an(r+s)bn =anrsbn.

    Por el lema de bombeo, uvix L para todo i 0. En particular, si i = 0,ux L. Pero ux = aranrsbn = ansbn. Como n s = n, la cadenaux /L lo cual es una contradiccion. Se concluye entonces que L no puedeser regular.

    Tomandoi= 2 tambien se llega a una contradiccion: por un lado,uv2

    xL, pero

    uv2x= arasasanrsbn =ar+2s+nrsbn =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 palndromos sobre {a, b} no

    es un lenguaje regular. Recuerdese que un palndromoes unacadena w tal que w = wR.

    Solucion. Si L fuera regular, existira una constante de bombeo n para L.Seaw = anban L. Entoncesw se puede descomponer comow = uvx, con|v| 1, |uv| n, y para todo i 0, uv ix 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 =anrsban.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    72/228

    66 CAPITULO 3. OTRAS PROPIEDADES DE LOS LENGUAJES REGULARES

    Tomandoi = 0, se concluye que ux L, pero

    ux= aranrsban =ansban.

    Comos 1, ansban no es un palndromo. Esta contradiccion muestra queL no puede ser regular.

    Ejemplo Demostrar que el lenguaje L=

    ai

    2

    : i 0

    no es regular. L

    esta formado por cadenas de aes cuya longitud es un cuadradoperfecto.

    Solucion. Si L fuera regular, existira una constante de bombeo n para L.Sea w = an

    2

    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 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 queuvix Lpara to-doi 0. Por consiguiente,L posee infinitas cadenas y, en conclusion,todo lenguaje regular es infinito.

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    73/228

  • 7/22/2019 t Comput Ac i on Rodrigo de Castro

    74/228

    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 coleccionR ()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 son

    lenguajes 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}=i1

    {aibi}.

    Cada conjunto {aibi} es regular (porque posee solo una cadena)peroL 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