Automatas y Lenguajes Formales 301405 2015 1

184
1 Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright © 2015

description

Modulo completo de autómatas y lenguajes formales, para estudiar.

Transcript of Automatas y Lenguajes Formales 301405 2015 1

  • 1

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

  • 2

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    AUTMATAS Y LENGUAJES FORMALES

    AUTOR:

    Carlos Alberto Amaya Tarazona

    https://www.camayat.com

    Duitama (Boyac)

    Colombia

    Versin 5 2015.

  • 3

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Tabla de contenido LISTA DE FIGURAS................................................................................................................................ 6

    LISTA DE TABLAS.................................................................................................................................. 8

    INTRODUCCIN ................................................................................................................................... 9

    ANEXO 1: LISTADO DE SMBOLOS USADOS....................................................................................... 12

    ANEXO 2: PRESABERES: TEORA DE CONJUNTOS .............................................................................. 14

    I. GENERALIDADES: ............................................................................................................ 14

    I.I OPERACIONES CON CONJUNTOS: ......................................................................................... 15

    I.II EQUIVALENCIAS DE CONJUNTOS: ........................................................................................ 17

    I.III RELACIONES:........................................................................................................................ 18

    I.IV FUNCIONES: ........................................................................................................................ 22

    PRIMERA UNIDAD: LENGUAJES REGULARES ..................................................................................... 23

    CAPITULO 1: CONCEPTOS BSICOS ............................................................................................... 23

    LECCIN 1: INTRODUCCIN E HISTORIA: .................................................................................. 23

    LECCIN 2. - ALFABETOS, CADENAS Y LENGUAJES ................................................................. 26

    LECCIN 3. AUTMATAS Y LENGUAJES ................................................................................... 29

    LECCIN 4. LENGUAJES REGULARES ........................................................................................ 31

    LECCIN 5. AUTMATA ............................................................................................................ 34

    CAPITULO 2. AUTMATAS FINITOS ............................................................................................... 37

    LECCIN 6. DEFINICIN FORMAL DE AUTMATAS FINITOS .................................................... 37

    LECCIN 7. AUTMATAS FINITOS DETERMINSTICOS (AFD) .................................................... 40

    LECCIN 8. AUTMATAS FINITOS NO DETERMINSTICOS (AFND)............................................ 43

    LECCIN 9. AUTMATA FINITO CON TRANSICIONES ........................................................... 45

  • 4

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    LECCIN 10. LENGUAJE ACEPTADO POR UN AF........................................................................ 46

    CAPITULO 3: EXPRESIONES Y LENGUAJES REGULARES ................................................................. 48

    LECCIN 11. LENGUAJES REGULARES Y EXPRESIONES REGULARES ......................................... 48

    LECCIN 12. SIGNIFICADO DE LAS EXPRESIONES REGULARES .................................................. 49

    LECCIN 13. AUTMATAS FINITOS Y EXPRESIONES REGULARES ............................................. 51

    LECCIN 14. EQUIVALENCIA DE AFD Y AFND ............................................................................ 57

    LECCIN 15. MINIMIZACIN DE AUTMATAS ......................................................................... 60

    UNIDAD 2. LENGUAJES INDEPENDIENTES DEL CONTEXTO ............................................................... 66

    CAPTULO 4 CONCEPTOS GENERALES ........................................................................................... 66

    LECCIN 16. GRAMTICAS REGULARES ................................................................................. 67

    LECCIN 17. LENGUAJES LIBRES DE CONTEXTO Y SUS MQUINAS. ........................................ 73

    LECCIN 18. ARBOLES DE DERIVACIN .................................................................................... 75

    LECCIN 19. TRANSFORMACIN DE LAS GLC Y FORMAS NORMALES ...................................... 81

    LECCIN 20. LIMITACIONES DE LOS LLC .................................................................................... 87

    CAPITULO 5. AUTMATAS DE PILA ............................................................................................... 89

    LECCIN 21. DEFINICIN DE AUTMATA CON PILA ................................................................. 89

    LECCIN 22. FUNCIONAMIENTO DE LOS AUTMATAS DE PILA ............................................... 91

    LECCIN 23. DISEO DE AUTMATAS DE PILA ......................................................................... 92

    LECCIN 24. FUNCIONES QUE SE APLICAN SOBRE LOS STACKS. (PILAS). ................................ 96

    LECCIN 25. COMBINACIN MODULAR DE AUTMATAS DE PILA .......................................... 97

    CAPITULO 6: PROPIEDADES DE LOS LENGUAJES INDEPENDIENTES DE CONTEXTO...................... 98

    LECCIN 26. LENGUAJE ACEPTADO POR UN AP ....................................................................... 98

    LECCIN 27. RELACIN ENTRE LOS AUTMATAS DE PILA Y LENGUAJES LIBRES DE CONTEXTO100

  • 5

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    LECCIN 28. PROPIEDADES DE CLAUSURA DE LOS LENGUAJES LIBRES DE CONTEXTO .......... 102

    LECCIN 29. ALGORITMOS DE DECISIN PARA LOS LENGUAJES LIBRES DE CONTEXTO. ....... 103

    LECCIN 30. PROBLEMAS INDECIDIBLES PARA LENGUAJES LIBRES DE CONTEXTO. .............. 105

    UNIDAD 3 LENGUAJES ESTRUCTURADOS POR FRASES. ................................................................. 106

    CAPITULO 7 MAQUINAS DE TURING. .......................................................................................... 107

    LECCIN 31. FORMALIZACIN DE LAS MT. ............................................................................. 108

    LECCIN 32. FUNCIONAMIENTO DE LA MQUINA DE TURING. ............................................. 110

    LECCIN 33. DIFERENCIAS ENTRE LAS COMPUTADORAS Y LAS MQUINAS DE TURING ..... 113

    LECCIN 34. LA MAQUINA UNIVERSAL DE TURING. ............................................................... 113

    LECCIN 35. LENGUAJES ACEPTADOS POR LA MAQUINA DE TURING. .................................. 114

    CAPITULO 8: MAQUINAS DE TURING Y COMPUTACIN. ............................................................ 117

    LECCIN 36. TESIS DE CHURCH /TURING. ............................................................................... 117

    LECCIN 37. VARIANTES DE UNA MAQUINA DE TURING. ...................................................... 119

    LECCIN 38. PROBLEMAS DE HILBERT. ................................................................................... 121

    LECCIN 39. PROBLEMAS INSOLUBLES PARA LA TEORA DE LENGUAJES.............................. 125

    CAPITULO 9. FUNCIONES RECURSIVAS ....................................................................................... 126

    LECCIN 40. LENGUAJES DECIDIBLES ...................................................................................... 126

    LECCIN 41. PROBLEMAS DE HALTING .................................................................................. 127

    LECCIN 42. DECIBILIDAD DE TEORAS LGICAS .................................................................... 129

    LECCIN 43. REDUCIBILIDAD DE TURING ................................................................................ 130

    LECCIN 44. APLICACIONES DE LAS MAQUINAS DE ESTADOS. ALGORITMO DE TRELLIS. ..... 133

    LECCIN 45: ALGORITMO DE VITERBI ..................................................................................... 145

    SIMULADORES: ................................................................................................................................ 151

  • 6

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    ANEXO: EJERCICIOS DE REPASO ...................................................................................................... 152

    BIBLIOGRAFIA .................................................................................................................................. 183

    LISTA DE FIGURAS Pg.

    Figura 1: Grafo relacin binaria 21 Figura 2: Una Relacin Reflexiva 22 Figura 3: Una Relacin Antireflexiva. 23 Figura 4: Una Relacin Simtrica 23 Figura 5: Una Relacin Antisimtrica 23 Figura 6: Una Relacin Transitiva 24 Figura 7: Una Relacin Transitiva (otra forma de representarla). 24 Figura 8: Proceso de traduccin realizado por un compilador 33 Figura 9: Clasificacin de los Lenguajes. Jerarqua de Chomsky. N 34 Figura 10: Mquina de estados. Estructura 38 Figura 11: Tabla de transicin de un Autmata Finito. 41 Figura 12: Diagrama de Moore para un Autmata Finito. 41 Figura 13: Tabla de transicin para un Autmata Finito generado con software simulador VAS.43 Figura 14: Diagrama de Moore asociado a un AFD. 44 Figura 15: Diagrama de Moore asociado a un AFND. 47 Figura 16: Diagrama de Moore asociado a un AFND - 48 Figura 17: Lenguaje asociado a un AFD 50 Figura 18: Propiedades de las ER 53 Figura 19: ER representada en una mquina de estados 53 Figura 20: Grfica de transicin (GT) 55 Figura 21: Operadores bsicos de conversin de AF a ER 55 Figura 22: Transformacin de Er a AF. 56 Figura 23: Obtencin de una ER a partir de un AF 57 Figura 24: Obtencin de una ER a partir de un AF PASO 1 58 Figura 25: Obtencin de una ER a partir de un AF PASO 2 58 Figura 26: Obtencin de una ER a partir de un AF PASO 3. Eliminacin de nodo. 59 Figura 27: Obtencin de una ER a partir de un AF PASO 4. Eliminacin de nodo q0. 59 Figura 28: Obtencin de una ER a partir de un AF PASO 5. Fusin de expresiones 59 Figura 29: Equivalencia de una AFND con un AFD 60 Figura 30: AF distintos que aceptan un miso lenguaje. 61 Figura 31: rbol de comparacin de AF. 62 Figura 32: Autmata a minimizar 64

  • 7

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Figura 33: Eliminacin de estados en un autmata AF 66 Figura 34: Eliminacin de otros estados en un autmata AF 66 Figura 35: Eliminacin de otros estados en un autmata AF 67 Figura 36: Tabla de estados distinguibles 68 Figura 37: Autmata obtenido de la Gramtica 1. 73 Figura 38: Autmata obtenido de la Gramtica 1 generado con un simulador. 73 Figura 39: Autmata obtenido de la Gramtica 2. 74 Figura 40: Autmata obtenido de la Gramtica 2 generado con un simulador. 75 Figura 41: AFD y su gramtica. 76 Figura 42: rbol de derivacin para una secuencia de parntesis bien balanceados. 80 Figura 43: rbol de derivacin para la cadena aabbaa 80 Figura 44: rbol de derivacin para la cadena aabbaa generado en JFLAP 81 Figura 45: Derivaciones por la izquierda, generadas en JFLAP 81 Figura 46: Arboles de derivacin para la gramtica G3 82 Figura 47: Arboles de derivacin para una gramtica ambigua 83 Figura 48: Arboles de derivacin para una gramtica ambigua para a5 84 Figura 49: Arboles de derivacin para a5 84 Figura 50: Arboles de derivacin para parntesis balanceados 87 Figura 51: Arboles de derivacin para parntesis balanceados 89 Figura 52: Arboles de derivacin en el lema de bombeo 91 Figura 53: Formalizacin de un PDA 93 Figura 54: Transicin de un PDA 95 Figura 55: Estructura de un PDA para =aabb 97 Figura 56: Diseo de un PDA para =aabb 97 Figura 57: Funciones de la Pilas. 99 Figura 58: Unin de AP. 100 Figura 59: Autmata AFPD. 101 Figura 60: Grafo para L finito y L infinito. 107 Figura 61: Componentes de una MT 111 Figura 62: Mquina de Turing simulada en JFLAP 115 Figura 63: Modelo de un sistema de comunicaciones digitales 139 Figura 64: Cdigo secuencial 140 Figura 65: Codificador convolucional de m etapas 141 Figura 66: Mquina de estados. Registro de desplazamiento convolucional de ratio y una etapa 142 Figura 67: Mquina de estados. Registro de desplazamiento convolucional (datos 000 y 100) 142 Figura 68: Mquina de estados. Registro de desplazamiento convolucional (datos 010 y 110) 143 Figura 69: Diagrama de estados para el codificador convolucional de ratio 1/2 143 Figura 70: Codificador convolucional de ratio 1/3 y m=3 144 Figura 71: rbol para un codificador convolucional de ratio 1/2 144 Figura 72: Diagrama de Trellis (transicin de estados). 145 Figura 73: Diagrama de Trellis completo (transicin de estados). 146

  • 8

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Figura 74: Datos correctos codificados 148 Figura 75: Distancia de Hamming 150 Figura 76: Distancia de Hamming Nivel 1. 150 Figura 77: Distancia de Hamming Nivel 2. 151 Figura 78: Distancia de Hamming Nivel 3. 151 Figura 79: Diagrama de Viterbi.. Trayecto de recorrido ptimo. 152 Figura 80: Solucin final Trellis y Viterbi. Datos de entrada 11010011. 153

    LISTA DE TABLAS Pg

    Tabla 1: Smbolos usados 14 Tabla 2: Propiedades comunes de las relaciones binarias 22 Tabla 3: Evolucin Histrica de la Teora de la Computacin 26 Tabla 4: Recursos web referentes a la historia de la temtica 28 Tabla 5: Recursos web para alfabetos, cadenas y lenguajes 29 Tabla 6: Asociacin de gramticas, lenguaje y mquinas. 36 Tabla 7: Recursos web para construccin de autmatas. 39 Tabla 8: Recursos web para diagramas de Moore. 41 Tabla 9: Recursos web para AFND 47 Tabla 10: Recursos web para cadenas vlidas 50 Tabla 11: Recursos web para cadenas vlidas 59 Tabla 12: Recursos web para minimizacin de autmatas 69 Tabla 13: Recursos web para PDA 76 Tabla 14: Traza de ejecucin del AP 98 Tabla 15: Recursos web para PDA 99 Tabla 16: Recursos web para MT 116 Tabla 17: Relacin de bits y estados 149 Tabla 18: Recursos web para el algoritmo de Trellis y Viterbi 153 Tabla 19: Recursos web para descarga de simuladores. 154 Tabla 20: Desarrollo de ejercicio autmata finito 175 Tabla 21: Desarrollo de ejercicios de expresiones Regulares (ER). 176 Tabla 22: Desarrollo de un ejercicio de minimizacin 178 Tabla 23: Desarrollo de ejercicio de un APD 179 Tabla 24: Cdigo Convolucional. Codificacin y decodificacin. Ejercicio. 180 Tabla 25: Clculo de un dato de entrada a partir de uno codificado. 182 Tabla 26: Cmo leer una Expresin Regular (ER) 185

  • 9

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    INTRODUCCIN

    El presente material acadmico y de investigacin que he consolidado, pretende ser una

    gua general e introductoria, al basto y grande contenido que abarca la Teora de Autmatas

    y lenguajes Formales, recorriendo las temticas, de una manera simple objetiva y efectiva,

    dado el alto contenido analtico, matemtico y de comprensin que tiene las temticas a las

    que hace referencia la tabla de contenido que se presenta.

    El material acadmico que a continuacin se presenta, es producto de la recopilacin

    analtica objetiva y crtica de experiencias en la formacin profesional en el rea de la

    computacin, matemticas, ingeniera, transmisin de redes de datos, y para el caso el de la

    teora de Autmatas y lenguajes Formales, que ya por varios aos y en diferentes capos de

    accin se ha tenido que aplicar.

    Los contenidos que s e documentan y explican, llevan al lector a que asimile dos temticas

    bsicas para esta rea de conocimiento:

    Que pueda comprender los conceptos y mecanismos fundamentales para la

    definicin de lenguajes: mecanismos como (expresiones regulares, gramticas

    independientes del contexto y gramticas generales),

    Junto al anterior bloque, el lector comprender y abordar los tres tipos de mquinas

    correspondientes para el reconocimiento de esos lenguajes como son: (autmatas

    finitos, autmatas a pila y mquinas de Turing) y las propiedades fundamentales de

    las familias de lenguajes por ellos definidas, tambin realiza el estudio de las

    condiciones necesarias para que un lenguaje sea de un tipo determinado.

    La necesidad objetiva de comprender las temticas, sumada a las dificultades que muchos

    lectores presentan para comprender y asociar la automatizacin a la solucin de problemas

    reales mediante mquinas abstractas o a la identificacin de problemas solubles, insolubles

    e indecidibles, me ha llevado a hacer uso de raciocinios sencillos sin necesidad llegara

    demostraciones matemticas, jugando un papel secundario la implementacin de algoritmos.

    Se presentan temticas que son base para comprender los lenguajes de programacin de

    alto y bajo nivel y que propician la distincin entre lenguajes formales con reglas

    sintcticas y semnticas rgidas, concretas y bien definidas, de los lenguajes naturales

  • 10

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    como el ingls o el espaol, donde la sintaxis y la semntica no se pueden controlar

    fcilmente. Los intentos de formalizar los lenguajes naturales, lleva a la construccin de

    gramticas, como una forma de describir estos lenguajes, utilizando para ello reglas de

    produccin para construir las frases del lenguaje. Se puede entonces caracterizar un

    lenguaje mediante las reglas de una gramtica adecuada.

    Los temas sobre autmatas, computabilidad, e incluso la complejidad algortmica fueron

    incluidos de forma referencial y bsica en cada unidad, ya que como la historia lo dice y de

    manifiesto propio, las ciencias de la computacin han usado gran cantidad de ideas de muy

    diferentes campos para su desarrollo, y que la investigacin sobre aspectos bsicos

    poda cooperar y aumentar los avances de la computacin.

    Como elemento determinante para que el lector de manera progresiva y jerrquica

    comprende la lgica de este tipo de anlisis matemtico, estn los conceptos previos y

    claros que se deben reconocer en el rea de la matemtica y la teora de conjuntos,

    funciones, relaciones y principios fundamentales de la lgica, ya que estos temas no son

    tratados como temticas en el libro, pero que tienen gran importancia en los fines para los

    que se cre este documento.

    Muchos autores referenciados en las fuentes bibliogrficos y de los cuales se han tomado

    anlisis y ejercicios clave para poder comprender la temtica, usan diferentes tipos de

    nomenclaturas, frmulas y smbolos, ya que como tal, los lenguajes, expresiones regulares,

    funciones entre otros deben representarse matemticamente. Para estandarizar de manera

    sencilla, se presenta como Anexo a este libro, la lista de smbolos usados y su significado.

    La Metodologa que se aplica para que el lector pueda sintetizar su conocimiento y

    aplicabilidad en el rea, se basa en el desarrollo d ejercicios de manera simple y objetiva,

    recreando mquinas abstractas en simuladores sin necesidad de documentar demasiados

    conceptos inicialmente o sin hacer uso de demostraciones matemticas de teoremas,

    frmulas o teoras, que quedan para que el lector luego de ver el funcionamiento de la lgica

    matemtica aplicada, y a manera de ingeniera inversa, resuelva nudos analticos en este

    tipo de conceptos y anlisis matemticos.

  • 11

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Como complemento a una aplicabilidad que tienen las Teora de lenguajes y autmatas, se

    explica el funcionamiento del algoritmo de la modulacin codificada de Trellis y la

    Decodificacin de Viterbi (algoritmos creados para el aumento de velocidad y para la mejora

    de la veracidad) codificaciones de canal y de fuente en transmisin de datos como tcnicas

    de deteccin y correccin de errores. Este algoritmos se explica mediante los diagramas de

    rbol y grafos para cdigos convolucionales en los que se observa el paso de las

    transiciones la entrada de datos y los cambios de estado.

    Finalmente les he desarrollado un material en video que les apoya el desarrollo de los

    ejercicios de este libro, unos tomados de otras fuentes documentales y otros de autora

    propia y que estn a disposicin para su descarga o visualizacin.

  • 12

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    ANEXO 1: LISTADO DE SMBOLOS USADOS

    Los siguientes son los smbolos usados en el presente libro y son la base para todos los

    ejercicios y temticas expuestas. Muchos autores difieren en el tipo de simbologa usada,

    pero se ha procurado consolidar y usar los ms comunes acorde a su significado y

    aplicabilidad.

    Tabla 1: Smbolos usados

    Smbolo Nombre Significado /Ejemplo

    AZUL NARANJA

    NEGRO ROJO

    Estados Transiciones

    Smbolos y cadenas

    Estado inicial Estado final (doble crculo)

    Para efectos de representar diagramas de Moore, tablas de transicin: El libro representa los componentes diferenciando

    colores: Ejemplo:

    Sigma Alfabeto L Letra Ele

    mayscula Lenguaje sobre un determinado alfabeto

    M Eme Mquina de estados Finitos

    A A Autmata

    K Ka Suele denotar el conjunto de estados de un autmata

    F Efe Suele denotar el conjunto de estados finales de un autmata

    S Ese Suele denotar el estado inicial de un autmata Sigma Denota una funcin. Ro Funcin de transicin de un autmata

    Omega Upsilon

    Denota una cadena o palabra sobre un alfabeto Denota una cadena o palabra sobre un alfabeto

    Alpha Otras cadenas. En algunos caso indica una Expresin Regular (ER) Beta Otras cadenas. Muy usado en denotar cadenas en gramticas.

    Lambda Representa una cadena vaca Delta

    Gamma Suele denotar el Alfabeto de una Pila (AP) (PDA) Gammar Suele denotar un conjunto de cadenas de un PDA G Ge Representa una gramtica Unin Interseccin Comparacin Menor o igual que Comparacin Mayor o igual que < Comparacin Menor que

  • 13

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    > Comparacin Mayor que

    = igualdad

    | mid

    * estrella

    Pertenece No pertenece Incluye Ejemplo: BA A est incluido en B

    Subconjunto propio

    vaco Conjunto vaco

    |A| Indica cantidad

    Tamao de un conjunto. Ejemplo para el conjunto A.

    cA Complemento Complemento de un conjunto. Ejemplo para el conjunto A.

    R Relacin Para denotar una relacin binaria 1R Inverso Inverso de una Relacin R

    Negacin lgica (neg)

    Una barra colocada sobre otro operador es equivalente a un colocado a la izquierda.

    Implicacin en un solo sentido

    Lgica proposional entonces. } Con la flecha sencilla a la derecha en gramticas, indica las producciones que se pueden tener.

    Doble implicacin

    Lgica proposional Si A es verdadera entonces B tambin.

    Forall Se lee: Para todo

    Exists Se lee Existe

    Mid Separa producciones en una gramtica. En algunas expresiones se lee tal que

    Fuente: El Autor

  • 14

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    ANEXO 2: PRESABERES: TEORA DE CONJUNTOS

    I. GENERALIDADES:

    Las nociones bsicas de la Teora de conjuntos, son necesarias para el inicio del estudio de

    la Teora de la Computacin.

    Un conjunto es una coleccin de objetos llamados elementos del conjunto. Si definimos un

    conjunto como A y a es un elemento de ese conjunto A, se usa la notacin Aa (se lee a

    es un elemento de A). Por lo contrario Ab indica que b no es un elemento de A.

    Si a1,a2,,.an, son elementos de A, entonces se debe indicar as : A={a1,a2,.an}. La

    caracterstica de un conjunto es dada por sus elementos ms no por el orden en que se

    listan, es por ello que {a,b,c,d} y {d,a,c,b} denotan el mismo conjunto. Caso diferente cuando

    veamos cadenas o expresiones de autmatas en el que el orden de las mismas denotar

    cadenas diferentes.

    Dado dos conjuntos A y B, estos son exactamente iguales si contienen exactamente los

    mismos elementos: A={1,2,3} y B ={2,3,1}, es vlido afirmar y escribir que A=B. No se tienen

    en cuenta las repeticiones de elementos ni tampoco el orden de estos.

    Es relevate para este estudio diferenciar que a y {a} no son lo mismo }{aa .

    E conjunto {{a,b}} tiene un nico elemento: {a,b}

    Si A y B son conjuntos y todos los elementos de A son tambin elementos de B, se escribe

    BA y se dice que A es un subconjunto de B. Tambin podemos decir que A est incluido

    en B Ejemplo 1: Si A={1,2,3} y B={0,1,2,3,4,5,6,7} se obtiene BA y es vlido afirmar que B

    no es un subconjunto de A porque los elementos 0,4,5,6,7 no lo son del conjunto A.

    Una explicacin concreta de subconjunto propio: Cualquier conjunto es un subconjunto de s

    mismo. Si A es un subconjunto de B pero A no es igual a B se dice que A es un subconjunto

    propio de B y se nota como A B.

    Teorema 1. Si BA y AB simultnameamente, entonces todos los elementos de A

    estn en B y todos los elementos de B estn en A. Por lo tanto:

    Si BA y AB , tenemos que A=B

    Teorema 2. Si BA y CB , entonces CA

  • 15

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Conjunto Vaco: Es llamado tambin nulo y es aquel que no tiene elementos. Se denota

    como . El conjunto vaco es un subconjunto de todos los conjuntos; por lo cual es vlido

    denotar: A para todo conjunto A.

    Tamao de un conjunto: El tamao de un conjunto es el nmero de elementos que

    contiene, y se representa como: |A| para un conjunto A.

    Ejemplo 2 El tamao de {1,2,3,4,5} es 5

    E tamao de {{a,b,c} , {a}} es 2 siendo el primero {a,b,c} y el segundo {a}

    El orden de los elementos de un conjunto es irrelevante.

    Ejemplo 3 El conjunto A = {{a,b}, {c}} y el conjunto B={{c},{b,a}} son iguales: A=B

    Descripcin matemtica del contenido de un conjunto: Un conjunto se puede especificar

    enumerando sus elementos entre llaves y separados por comas y esto es lo que se llama

    definicin por extensin. muchas veces y para el caso de la Teora de Autmatas que trata

    este libro, no es posible especificar elementos de un conjunto o alfabeto porque el conjunto

    es infinito y entonces se usa una definicin por comprensin, es decir, haciendo referencia a

    otros conjuntos (conjuntos referenciales) y a propiedades que los elementos puedan tener.

    A travs de desarrollo de la temtica, y especficamente para poder describir autmatas,

    lenguajes y leer expresiones regulares, tendremos que aprender a leer funciones de

    transicin, tuplas entre otros. Un buen ejercicio es empezar a interpretar lecturas y que de

    forma general se definen como:

    B= {x A | x cumple la propiedad P}

    Sea P(x) una proposicin sobre x. La notacin {x | P(x)} se interpreta como: el conjunto de

    todos los x tales que P(x), denota el conjunto de todos los x para los cuales P(x) es una

    proposicin verdadera. Ejemplo 4:

    xx |{ y }7x hace referencia al conjunto {0,1,2,3,4,5,6}

    I.I OPERACIONES CON CONJUNTOS: En aritmtica bsica se pueden trabajar tres operaciones: sumar restar y multiplicar dos

    nmeros. E la teora de conjuntos existen tres operaciones que son anlogas a la suma,

    resta y multiplicacin.

    Unin de Conjuntos: La unin de conjuntos A y B se denota por BA y es un conjunto

    formado por los elementos que aparecen en A, en B o en ambos:

  • 16

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    axxBA |{ V }Bx

    Ejemplo 5: {1,2,3} {3,4} = {1, 2, 3, 4}. La unin de conjuntos es conmutativa y asociativa.

    Interseccin de conjuntos: x aparece simultneamente en A y B

    axxBA |{ }Bx

    La interseccin es conmutativa y asociativa

    Ejemplo 6: Sea el conjunto A= {1,2,3} y B = {3,4} se tiene que A B = {3}.

    Ejemplo 7: }0{ mientras que

    Conjuntos Disjuntos: Se dice que A y B son disjuntos si A B =

    lo que es lo mismo, si su interseccin es el conjunto vaco.

    Diferencia de conjuntos: A - B, que contiene los elementos de A que no estn en B, esto es:

    axxBA |{ }Bx

    Ejemplo 8: {1,2,3,4,5} {3,4} = {1,2,5}. La resta o diferencia de conjuntos no siempre le

    quita elementos al primer conjunto; por ejemplo {1,2,3}{4,5} = {1,2,3}. La diferencia de

    conjuntos no es ni asociativa ni conmutativa.

    Producto (Producto Cartesiano).De dos conjuntos AXB, es el conjunto de pares ordenados (a,b) tales que:

    AxyxAXB |),{( }By

    Ejemplo 9: )}5,2(),4,2(),3,2(),5,1(),4,1(),3,1{(}5,4,3{}2,1{ x

    El tamao de un producto cartesiano AB es |A| multiplicado por |B|. El producto cartesiano no es conmutativo, pues no es lo mismo un par (a, b) que uno (b, a), ni asociativo, pues no es lo mismo (a, (b, c)) que ((a, b), c).

  • 17

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    I.II EQUIVALENCIAS DE CONJUNTOS:

    Bsicamente consiste y son tiles para reemplazar expresiones pro otras equivalentes o que tengan el mismo resultado.

    Teorema 3.

    AA

    A

    Si BA , entonces ABA

    Si BA , entonces BBA

    Muchos teoremas y demostraciones surgen de las combinaciones de estas cuatro operaciones. Es suficiente con comprender que elementos pertenecen a un conjunto validados por alguna propiedad u operacin que les preceda. Algunas propiedades derivadas de etas operaciones son:

    Idempotencia: AAA ; AAA

    Conmutatividad: ABBA ; ABBA

    Asociatividad: )()( CBACBA

    )()( CBACBA

    Distributividad: )()()( CABACBA

    )()()( CABACBA

    Absorcin: ABAA )( ; ABAA )(

    Leyes de Morgan:

    BABA se suele denotar tambin como: CCC BABA )(

    BABA se suele denotar tambin como: CCC BABA )(

    Doble complemento. AA CC )(

    Ejemplo 10 del uso de estas equivalencias: Usando la unin y el complemento, se puede

    expresar una interseccin de conjuntos. CCCCC BABABA )())(()(

    Conjunto Potencia: Se denota como A2 . La coleccin de todos los subconjuntos de A es a

    su vez un conjunto llamado conjunto potencia. Al conjunto potencia de A tambin se le suele

    llamar conjunto de las partes de A y se nota como P(A).

    O de igual forma: }|{2 AxxA

  • 18

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Ejemplo 11: }}3,2,1{},3,2{},3,1{},2,1{},3{},2{},1{,{2 }3,2,1{

    El conjunto vaco siempre forma parte de todo conjunto potencia. La notacin A2 recuerda

    que el tamao del conjunto potencia de A es 2 elevado a la potencia del tamao de A, esto

    es, |A2 | = ||2 A .

    Complemento de un conjunto: de un conjunto, es un caso particular de la diferencia,

    cuando el primer conjunto es considerado como el universo que contiene todos los

    elementos posibles. Sea U un universo, entonces el complemento del conjunto A, denotada

    por cA contiene los elementos del universo que no estn en A.

    Ejemplo 12: Sea U (El Universo de los nmeros naturales), el complemento de los

    nmeros mltiplos de tres (3) c,...}15,12,9,6,3{ = {1,2,4,5,7,8,10,11,13,14, .}.

    Se concluye que UAA c para todo conjunto A; adems cAA

    I.III RELACIONES:

    Se derivan del producto cartesiano de conjuntos. Precisamente se llama relacin a todo

    subconjunto de un producto cartesiano. En esencia combinaciones de objetos de un

    determinado tipo que estn relacionados de alguna forma.

    Relacin Binaria: La relacin binaria definida en un conjunto A es un subconjunto del

    producto cartesiano A x A.

    Ejemplo 13: Sea el conjunto A = {a, b, c}. El grafo de la figura (1) representa una relacin

    binaria definida en A, puesto que los pares (c,a), (b,a) (b,b) constituyen un subconjunto de A x

    A.

    Figura 1: Grafo relacin binaria

    Fuente:

  • 19

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Se dice que dos elementos a y b estn relacionados, y se escribe a R b, a est relacionado

    con b mediante la relacin binaria R, cuando el par ordenado (a,b) pertenece al subconjunto

    del producto cartesiano que define la relacin.

    Ejemplo 14: La relacin contiene los pares de los nmeros naturales tales que el primer

    componente es menor o igual al segundo, esto es,

    = {(1,1),(1,2),(1,3),(1,4),(2,3)}

    Tngase en cuenta que se llama par ordenado a una pareja de objetos escritos entre

    parntesis y separados por comas.

    Cuando se trabajan relaciones es importante tener en cuenta:

    Por ejemplo, (a,b) es un par ordenado y a,b son los componentes del par ordenado. No es lo

    mismo (ya que el orden si influye), lo siguiente:

    },{),( baba

    ),(),( abba

    Sin embargo: },{},{ abba

    El orden si influye, sin embargo, no todos los subconjuntos del producto cartesiano, pueden

    ser aceptados como la relacin de la condicin que exprese. Algunas caractersticas de

    estas relaciones son:

    Inverso de una Relacin: Se llama inverso de una relacin R, denotado por 1R , a aquella

    en donde se invierte el orden de los pares ordenados, esto es:

    }),(|),{(1 RyxxyR

    Ejemplo 15: El inverso de la relacin {(1,2),(2,3),(1,3)} es {(2,1),(3,2),(3,1)}

    Propiedades ms comunes de las Relaciones Binarias. No se citan olas que se derivan

    de las bsicas que se relacionan a continuacin.

    Tabla 2: Propiedades comunes de las relaciones binarias

    Propiedad Condicin

    Reflexiva R es reflexiva si aRaAa : Antireflexiva R es antireflexiva si )(: aRaAa aRa

    Simtrica R es simtrica si )()(:, bRaaRbAba

  • 20

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Antisimtrica R es antisimtrica si )()(:, bRaaRbAba

    Transitiva R es transitiva si )()()(:,, aRcbRcaRbAcba

    Fuente: El Autor

    La Relacin es una caracterstica que se debe aplicar

    Reflexiva: Cada elemento tiene un bucle. Ejemplo 16 Si A = {a,b,cd} y R es una relacin ser

    igual que o de la forma (x,x) se tiene: R={(a,a),(b,b),(c,c),(d,d)}.

    Figura 2: Una Relacin Reflexiva

    Fuente:

    Antireflexiva: Ningn elemento tiene un bucle. Ejemplo 17 Si A={1,2,3,4} y R es la relacin

    menor que, se tiene: R={(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)}

    Figura 3: Una Relacin Antireflexiva.

    Fuente:

  • 21

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Simtrica: Cada relacin de ida tiene otra de vuelta. Ejemplo 18 Si A={1,2,3,4} y R es tal que

    R = {(-1, -1), (-1, -3), (2, 2), (2, 4), (-3, -1), (-3, -3), (4, 2), (4, 4)}.

    Figura 4: Una Relacin Simtrica

    Fuente:

    Antisimtrica: Ninguna flecha de ida tiene otra de vuelta, salvo en el caso de los bucles,

    que estn permitidos. Ejemplo 19 Si A = {1, 2, 3, 4} y R es la relacin ser menor o igual que,

    se tiene: R = {(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4), (1, 1), (2, 2), (3, 3), (4, 4)}

    Figura 5: Una Relacin Antisimtrica

    Fuente:

    Transitiva: Si existen dos relaciones o flechas consecutivas, debe haber otra que una el

    primer elemento con el tercero. Ejemplo 20 Si A = {1, 2, 3, 4} y R es la relacin ser mayor que,

    se tiene: R = {(3, 2),(2, 1), (3, 1), (4, 1), (4, 2), (4, 3)}

    Figura 6: Una Relacin Transitiva

    Fuente:

  • 22

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Otra forma de interpretar esta relacin dice que siempre que contiene los pares (x,y) y (y, z)

    tambin contiene (x, z). Por ejemplo, la relacin {(1,2), (2,3), (1,1), (1,3)} es transitiva, pero

    {(2,3), (1,2), (1,1)} no lo es.

    Figura 7: Una Relacin Transitiva (otra forma de representarla).

    Fuente:

    Un caso especial de estas relaciones y equivalencias se da cuando se encuentra una

    relacin binaria R definida en un determinado conjunto y que cumple las propiedades

    reflexiva, simtrica y transitiva. Entonces es una relacin de equivalencia.

    I.IV FUNCIONES:

    Las funciones son un caso particular de las relaciones. Simplemente son asociaciones,

    combinaciones o relaciones en las que no hay dos pares ordenados que tengan el mismo

    primer componente. Es decir, los pares ordenados asocian a cada primer componente un

    nico segundo componente. Por ejemplo, la relacin {(1,2), (2,3), (1,3)} no es una funcin,

    pero {(1,2), (2,3), (3,3)} s lo es.

    En conjuntos, la notacin habitual suele ser: f(1) = 2 que significa que a partir de la entrada 1

    se obtiene la salida 2. (se usa la f como indicador de la funcin). En Autmatas. La funcin

    suele denotarse con el smbolo

    Para la teora de autmatas. Las funciones son vistas desde la perspectiva de lenguajes

    aceptados, por eso la temtica que aborda as funciones en conjuntos como las funciones

    totales, inyectivas y sobreyectivas, pueden referenciarse en:

  • 23

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    PRIMERA UNIDAD: LENGUAJES REGULARES

    CAPITULO 1: CONCEPTOS BSICOS

    Se da inicio a un concepto: Mquinas secuenciales, que hacen parte tambin del estudio de

    la teora de autmatas y que tienen sus inicios en el campo de la Ingeniera Electrnica. El

    fin de los modelos no es la de describir detalles de los componentes de hardware de un

    computador, sino de determinar caractersticas poco visibles o intangibles de estas mquinas

    como por ejemplo capacidad de proceso, memoria, procesamiento de datos e informacin.

    Es por ello que se han dividido en diferentes reas de conocimiento este tipo de estudio

    como por ejemplo: Arquitectura de computadores, Sistemas de informacin, sistemas

    Distribuidos lgica Matemtica, Ensamble de mquinas, entre otros.

    Iniciamos el estudio de estas maquis abstractas identificando componentes bsicos como los

    lenguajes que pueden describirse como elementos que se generan a partir de cadenas

    sencillas y que con operaciones entre ellas periten el desarrollo del lenguaje mismo, que

    puede generar otros lenguajes ms sencillos mediante operaciones de conjuntos.

    Los Lenguajes ms sencillos son los considerados lenguajes regulares, es decir, los que se

    pueden generar a partir de lenguajes de un elemento con la aplicacin de ciertas

    operaciones estndar realizadas un nmero finito de veces.

    Estos son pues los lenguajes que pueden reconocer los dispositivos llamados Autmatas

    finitos (AF) que son mquinas de cmputo con memoria muy restringida. En esta

    unidad se considera como segundo aspecto la idea de que un lenguaje no sea regular,

    adems de proporcionar un modelo sencillo de computacin que se puede generalizar

    en las unidades siguientes.

    Con las caracterizaciones anteriores y otras de los lenguajes regulares se obtienen y

    estudian algoritmos para traducir una descripcin de un lenguaje a otra descripcin de un

    tipo distinto; se acumula experiencia en el uso de mtodos formales para describir lenguajes

    y se intenta responder a preguntas acerca de ellos, son preguntas y ejercicios sencillos con

    sus respuestas y que permiten determinar la utilidad de los lenguajes regulares en

    aplicaciones del mundo real.

    LECCIN 1: INTRODUCCIN E HISTORIA: Teora de la computacin: Trata con modelos de clculo abstractos (mquinas

    computacionales abstractas). En Teora de la Computacin, a diferencia de las otras

  • 24

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    materias, (Arquitectura de Computadores, Teora de Circuitos, Algoritmos y Estructuras de

    Datos, Sistemas Operativos, etc.) lo importante no es buscar la mejor manera de hacer las

    cosas (optimalidad) sino estudiar qu puede o no puede hacerse con un ordenador

    (computabilidad).

    La historia de la Teora de la Computacin es bastante interesante. Se ha desarrollado gracias a confluencia, por afortunadas coincidencias, de distintos campos de conocimiento y descubrimientos (fundamentalmente matemticos) realizados a principios del siglo XX. Bajo el nombre Teora de la Computacin se recogen una serie de materias que constituyen hoy en da los fundamentos tericos de la Informtica: Teora de Autmatas, Teora de los Lenguajes Formales, Computabilidad y Complejidad Algortmica.1 Se presenta una concreta evolucin histrica de la Teora de la Computacin: Tabla 3: Evolucin Histrica de la Teora de la Computacin

    EPOCA PRECURSORES

    1845 -1918

    COMPUTABILIDAD

    Iniciada por Godel, Church, Post, Turing y Kleene, tiene sus races en la Lgica Matemtica. Ya se haba inventado la Teora de Conjuntos

    David Hilbert (1845-1918) formul en 1928, durante el transcurso de un congreso internacional: Si las Matemticas son completas, consistentes y decidibles.

    1936

    Tesis de Church

    Turing

    Una de las cuestiones ms estudiadas en la Teora de la Compatibilidad ha sido la posibilidad de construir programas que decidan si un determinado algoritmo posee o no una determinada propiedad. >Calculan los algoritmos A y B la misma funcin? (Problema de la equivalencia) >Parar el algoritmo A para una de sus entradas? (Problema de la parada) > Parar el algoritmo A para todas sus entradas? (Problema de la totalidad) > Parar el algoritmo A la funcin f? (Problema de la verificacin)

    1

  • 25

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    1967

    Complejidad

    Algortmica

    Trata la dificultad computacional de las funciones computables. Qu quiere

    decir que una funcin f sea ms difcil de computar que otra funcin g?

    Rabin sugiri una axiomtica que fue la base para el desarrollo del estudio

    de medidas de complejidad abstracta de Blum y otros

    1954 - 1969

    Mquinas

    secuenciales y

    Autmatas finitos.

    El matemtico norteamericano Shanon (que luego se hara famoso por su

    Teora de la Informacin) vino a establecer las bases para la aplicacin de

    la Lgica Matemtica a los circuitos combinatorios y posteriormente

    Huffman en 1954 los amplio a circuitos secuenciales y utiliza conceptos

    como estado de un autmata y tabla de transicin. A lo largo de las

    dcadas siguientes, las ideas de Shanon se desarrollaron

    considerablemente, dando lugar a la formalizacin de una Teora de las

    Maquinas Secuenciales y de los Autmatas Finitos (1956). Otros trabajos

    importantes sobre maquinas secuenciales son debidos a Mealy (1955) y

    Moore.

    Un anexo de este libro, hace referencia y explica un ejemplo aplicado a la

    Teora de la Informacin.

    1956 en adelante

    Noam Chomsky

    propone varios

    modelos para

    clasificar:

    Gramticas y

    Lenguajes formales.

    Noam Chomsky propone en 1956 tres modelos para la descripcin de

    lenguajes, que son la base de su futura jerarqua de los tipos de lenguajes

    (1959), que ayudo tambin en el desarrollo de los lenguajes de

    programacin. Chomsky estableci una clasicacion de gramticas de

    acuerdo con el formato de sus producciones y distingui cuatro clases

    fundamentales de lenguajes y relaciones de inclusin entre ellas.

    Fuente: El Autor

    Los siguientes recursos web, lo contextualizan en la historia de la temtica. Ver estos

    recursos, resulta digerible a historia que un cmulo de texto repleto de fechas y estadsticas

    que se tornan poco comprensibles. Les motivo que los revisen para ubicarse en la medida y

    alcance de la temtica que estaos abordando.

    Tabla 4: Recursos web referentes a la historia de la temtica.

    DESCRIPCIN DE VIDEO

    CANAL

    Tras las huellas de la mente de Alan Turing. La polmica historia de esta brillante mente. Un reto complejo para quienes quieran entender y seguir sus pasos. "Un genio trgico".

    http://youtu.be/tO-WgRXKcAo

  • 26

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Solo escchenla y quedarn sorprendidos del legado que Alan Turing ha dejado. Historia de Alan Turing. (23 de Junio de 1912 - 7 de Junio de 1954). Matemtico ingls. Historia contada al estilo de Diana Uribe. (Historiadora Colombiana a quin admiro y le expreso mi ms sentido agradecimiento por contarnos todas las historias que han marcado el rumbo de la humanidad). Le reconozco sus derechos intelectuales por esta narracin que comparto a quienes me siguen en este reto de comprender como funcionan las mquinas computacionales.

    Cuntame una historia. Alan Turing http://youtu.be/01LBHqKrVvg

    Charla El legado de Alan Turing http://youtu.be/nSZZRzj6zPI

    Pelcula que cuenta la historia de un genio controvertido "Alan Turing". Con subttulos en espaol.

    http://youtu.be/uoKLtu2Am6k

    DANGEROUS KNOWLEDGE. Conocimientos peligrosos. El documental, narrado por David Malone, se centra en la vida de cuatro brillantes matemticos - Georg Cantor, Ludwig Boltzmann, Kurt Gdel y Alan Turing -, lo que rode sus descubrimientos y las reacciones de la comunidad cientfica hacia ellos, as como la evolucin de sus personas hasta el declive. Sus trabajos han llegado a influir enormemente incluso en mbitos no cientficos, o en la perspectiva de como observamos el mundo en general y nuestro pequeo entorno en particularmente. Desafortunadamente sus mentes privilegiadas no pudieron impedir que llegaran a enloquecer hasta el punto de cometer suicidio. O consulta esta URL: http://www.mates.byethost4.com/audiovisuales/matematicas/documentales-bbc.html

    PARTE 1: CANAL VIMEO

    http://vimeo.com/30482156

    PARTE 2: CANAL VIMEO

    http://vimeo.com/30641992

    Secretos de la segunda guerra mundial. El cdigo Eigma. El trabajo de los criptgrafos.

    http://youtu.be/EVQNosg6wEQ

    Fuente:

    LECCIN 2. - ALFABETOS, CADENAS Y LENGUAJES

    Procedamos a definir componentes de un lenguaje, independiente de la jerarqua o

    estructura a que pertenezcan, como lo veremos ms adelante:

    Definicin1. Un Alfabeto es un conjunto finito A. Sus elementos se llamaran smbolos o

    letras.

    Para denotar el alfabeto se usara el smbolo o en algunos casos se especificaran con las

    primeras letras maysculas del abecedario, dependiendo como se formule el problema. Los

    smbolos de un alfabeto pueden ser nmeros, letras, entre otros y suelen estar escritos en

    minsculas.

    Ejemplo: Sea A = {0,1} indica el Alfabeto A compuesto por los smbolos 0,1

    No hay que confundir los smbolos del alfabeto B con los smbolos del lenguaje (o ms precisamente meta-lenguaje) que usamos para expresarnos todos los das. Son dos cosas totalmente distintas. Nosotros para comunicarnos usamos un lenguaje que tiene unos smbolos que son las letras del alfabeto latino, los nmeros, las letras del alfabeto griego, y una serie de smbolos especiales propios

  • 27

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    del lenguaje matemtico (el meta-lenguaje). Con este lenguaje tambin definimos los conceptos de alfabeto y smbolo.

    Definicin2. Una palabra o cadena sobre un alfabeto es una sucesin finita de elementos

    de . Se suele denotar con la letra omega

    Se concluye que es una palabra sobre , si y solo si naaU ....1 donde

    niai ,......1,

    Ejemplo 21: Si A = {0,1} entonces 0111 es una palabra sobre este alfabeto.

    El conjunto de todas las palabras sobre un alfabeto se nota como *

    Definicin3. Si * entonces la longitud de la palabra es el nmero de smbolos de

    que contiene.

    La longitud de se denota | |. Es decir si naa ....1 entonces | | = n

    Definicin4. La palabra vaca es la palabra de longitud cero. Es la misma para todos los

    alfabetos y se denota como

    Definicin5. Al conjunto de todas las palabras o cadenas sobre el alfabeto en las que se

    excluya la cadena vaca se denota como:

    Tabla 5: Recursos web para alfabetos, cadenas y lenguajes.

    DESCRIPCIN DE VIDEO

    CANAL

    CANAL

    Descripcin de Lenguaje, Alfabeto y expresin regular.

    http://youtu.be/DnNT1dF4keQ http://www.veoh.com/watch/v616083236Thn5HJn

    Fuente:

    OPERACIONES SOBRE EL CONJUNTO UNIVERSAL DE CADENAS *

    Las operaciones fundamentales que se derivan del tratamiento del conjunto * , son las de

    concatenacin:

    Ejemplo 22 Para definir la concatenacin: Dada las siguientes cadenas , formadas desde el

    alfabeto :

  • 28

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Concatenacin: Si nn bbaa .....,.....,, 11* , se llama concatenacin de y a

    la cadena . (o simplemente ) dada por mn bbaa .......... 11 . Ntese que la concatenacin

    puede denotarse por un punto en medio de las dos cadenas.

    Propiedades de la concatenacin: Algunas de ellas son:

    *,|,||||.|

    Asociativa: *,,,)..()..(

    Elemento neutro: *,..

    Otras propiedades derivadas de la concatenacin se referencian as:

    Si * entonces 0 y ,.1 ii para todo 0i

    Se define una cadena inversa as:

    Si *

    1... naa entonces la cadena inversa de es la cadena *

    1

    1 ... aan

    Lenguajes: Un lenguaje sobre el alfabeto es un subconjunto del conjunto de las cadenas

    sobre *: L

    Se notan los siguiente ejemplos de algunos lenguajes (sin definir su jerarqua que se ver en

    la siguiente leccin) sobre el alfabeto

    Ejemplo 23 Lenguajes: la forma de describir un lenguaje se muestra en los siguientes ejemplos:

    },,,{1 cbaL Lenguaje uno compuesto por los smbolos a,b,c de un determinado alfabeto

    incluyendo la cadena vaca.

    ...}2,1,0|{2 ibaLii Lenguaje dos compuesto por las palabras formadas de una sucesin

    de smbolos a, seguida de la misma cantidad de smbolos b.

    }|{ *13 L Lenguaje tres compuesto por las palabras formadas con smbolos del

    alfabeto y que consisten en dos palabras iguales, separadas por la misma palabra pero

    escrita en orden inverso.

  • 29

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Algunas Operaciones sobre Lenguajes: Aplican la unin e interseccin de lenguajes, dada

    la condicin de conjuntos que tienen estos lenguajes, entonces aplica tambin las

    operaciones de concatenacin.

    La concatenacin de dos lenguajes est dada por la siguiente expresin: dados L1 y L2

    (dos lenguajes sobre el alfabeto )

    },|{ 22112121 LLLL

    Algunas propiedades se definen como.

    Asociativa: 321321 )()( LLLLLL

    Elemento Neutro: LLL }{}{

    L = L = (Lenguaje que contiene cero palabras o cadenas)

    }{0 L

    LLL ii 1

    i

    i

    LL 0

    *

    Clausura o estrella de Kleene de un lenguaje L es el lenguaje obtenido de

    acuerdo a esa expresin.

    i

    i

    LL 1

    Obtencin de un lenguaje con la operacin L+

    LsiLL *

    LsiLL }{*

    LECCIN 3. AUTMATAS Y LENGUAJES

    Un aspecto a definir y diferenciar cuando se inicia el estudio de Lenguajes y Gramticas, es

    la diferencia que existe entre los lenguajes naturales (LN) y los lenguajes de programacin

    (LP).

    Los (LP) se rigen por reglas de sintaxis y semntica ms complejas y definidas y que

    finalmente son manejadas por los computadores. En los lenguajes naturales (LN), estos no

    estn tan definidos ni delimitados, ya que estn controlados por reglas gramaticales que

    evolucionan y derivan nuevos lenguajes.

  • 30

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Gracias a las estructuras definidas de los lenguajes de programacin (LP) (las reglas

    gramaticales (sintaxicas y semnticas) han posibilitados la construccin de traductores

    automticos para estos lenguajes. Algunas definiciones que contextualizan estas temticas

    referencian a los Compiladores como software que traduce un programa escrito en un

    determinado lenguaje de programacin a otro lenguaje de programacin, con el objeto de

    generar u programa equivalente que una mquina computacional pueda interpretar para

    podrselo mostrar al usuario.

    En ciencias de la computacin, intrprete o interpretador es un programa informtico capaz de

    analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intrpretes se

    diferencian de los compiladores en que mientras estos traducen un programa desde su descripcin en

    un lenguaje de programacin al cdigo de mquina del sistema, los intrpretes slo realizan la

    traduccin a medida que sea necesaria, tpicamente, instruccin por instruccin, y normalmente no

    guardan el resultado de dicha traduccin.2

    El proceso de traduccin realizado por un compilador, es visto en la Figura 8.

    PROCESO DE TRADUCTOR REALIZADO POR UN COMPILADOR:

    Los pasos de definir e identificar reglas gramaticales, son claves en el proceso de traduccin.

    Figura 8: Proceso de traduccin realizado por un compilador

    Fuente:

    2 Tomado de https://es.wikipedia.org/wiki/Int%C3%A9rprete_%28inform%C3%A1tica%29 con acceso Julio de

    2013

  • 31

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    LECCIN 4. LENGUAJES REGULARES Entramos a clasificar los lenguajes. Ya que los lenguajes en s son conjuntos de secuencias

    de smbolos y cada uno comparte una cierta propiedad. La clasificacin de estos lenguajes

    se dio en 1959, cuando N. Chomsky propuso una jerarqua de lenguajes, donde las clases

    ms complejas incluyen a las ms simples.

    En realidad lo que clasific Chomsky en cuatro familias, fueron gramticas (tngase en

    cuenta que de acuerdo a las reglas de produccin de estas gramticas, estas generan

    determinados lenguajes). Si se tiene una gramtica G = VN, VT, S, P) se clasifican las

    gramticas y los lenguajes generados por ellas de la siguiente forma:

    Figura 9: Clasificacin de los Lenguajes. Jerarqua de Chomsky. N

    Fuente:

    TIPO 3: (Gramticas regulares). Los Lenguajes generados por estas gramticas se llaman

    Lenguajes Regulares, y el conjunto de todos estos lenguajes es la clase L3, que es la

    clase ms pequea, e incluye a los lenguajes ms simples. Un ejemplo de lenguaje regular

    es el conjunto de todos los nmeros pares enteros positivos.

    Estas gramticas regulares pueden ser a su vez de dos tipos:

    Lineales por la derecha: Todas las producciones son de la forma:

    A bC A b

    A

  • 32

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    dnde: A,C VN y b VT

    Lineales por la Izquierda: Todas las producciones son de la forma:

    A Cb A b

    A

    Para cada Gramtica lineal por la derecha existe una Gramtica lineal izquierda que genera

    el mismo lenguaje y viceversa.

    Los Lenguajes Regulares son lenguajes formales que tienen estas caractersticas:

    Puede ser descrito mediante una expresin regular (expresar de forma compacta cmo son todas las cadenas de smbolos que le pertenecen).

    Puede ser generado mediante una gramtica regular (obtener todas las cadenas de

    smbolos que le pertenecen).

    Puede ser reconocido mediante un autmata finito (saber si una cadena de smbolos pertenece a l o no)

    TIPO 2: (Gramticas libres del contexto). Las producciones son de la forma:

    A donde: A VN y (VN U VT)* Los lenguajes generados por este tipo de gramticas se llaman lenguajes libres del contexto y la clase es L2, que incluyen a los Lenguajes Regulares. Por ejemplo, la mayora de los lenguajes de programacin son Lenguajes Libres de Contexto. TIPO 1: (Gramticas sensibles al contexto). Las producciones son de la forma:

    A donde , V* y V+ Se interpreta que A es una variable y , y son

    cadenas cualesquiera que pueden contener variables y constantes. Los lenguajes generados por las gramticas de tipo 1 se llaman lenguajes sensibles al Contexto y su clase es L1:

  • 33

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    TIPO 0: (Gramticas con estructura de frase) Son las gramticas ms generales, que por ello tambin se llaman gramticas sin restricciones. Esto quiere decir que las producciones pueden ser de cualquier tipo permitido, es decir, de la forma:

    con (V* . VN . V*) y en la que no puede ser vaco Los lenguajes generados por estas gramticas son los lenguajes con estructura de frase, que se agrupan en la clase L0: Estos lenguajes tambin se conocen en el campo de la Teora de la Compatibilidad como lenguajes recursivamente enumerarles. La siguiente tabla muestra la asociacin de las gramticas con el lenguaje que genera y el

    tipo de mquina abstracta que la trabaja:

    Tabla 6: Asociacin de gramticas, lenguaje y mquinas.

    GRAMTICAS LENGUAJES MAQUINAS

    Regular o de Tipo 3 Regular o de Tipo 3 Autmatas Finitos

    Libre de contexto o de Tipo 2 Libre de contexto o de Tipo 2 Autmatas de Pila

    Sensible al contexto o de Tipo

    1

    Sensible al contexto o de Tipo

    1

    Autmatas linealmente

    acotados

    Sin Restricciones o de Tipo 0 Sin Restricciones o de Tipo 0 Mquinas de Turing (MT).

    Fuente:

    Cuanto menor es el tipo, mayor es el poder expresivo del lenguaje generado y ms complejidad tiene su tratamiento por parte de una mquina.

    Finalmente se define un Teorema 4: (Jerarqua de Chomsky) Dado un alfabeto , el conjunto de los lenguajes regulares sobre est incluido propiamente en el conjunto de los lenguajes libres de contexto y este a su vez est incluido propiamente en el conjunto de los lenguajes sensibles al contexto, que finalmente est incluido propiamente en el conjunto de lenguajes con estructura de frase.

    Esto es: L3 L2 L1 L0

    Un lenguaje se dice que es de tipo i (i= 0;1;2;3) si y solo si es generado por una gramtica de tipo i. La clase o familia de lenguajes de tipo i se denota por Li.

  • 34

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    LECCIN 5. AUTMATA

    La palabra autmata evoca algo que pretende imitar las funciones propias de los seres vivos,

    especialmente relacionadas con el movimiento, por ejemplo el tpico robot antropomorfo.

    Un ejemplo de una maquina real que automatiza un proceso puede ser una mquina

    empacadora de algn producto que se fabrique en serie y con una serie de instrucciones,

    pasos y caractersticas definidas e iguales para cada salida (producto final).

    En el campo de los Traductores, Procesadores, Compiladores e Intrpretes, lo

    fundamental no es la simulacin del movimiento, sino la simulacin de procesos para tratar

    informacin. Este es el enfoque dado a la temtica de este curso.

    Las maquinas que se estudiarn son abstracciones matemticas que capturan solamente el

    aspecto referente a las secuencias de eventos que ocurren, sin tomar en cuenta ni la forma

    de la maquina ni sus dimensiones (aspectos de hardware por referir una analoga).

    La informacin se codifica en cadenas de smbolos, y un autmata es un dispositivo

    que manipula cadenas de smbolos que se le presentan a su entrada, produciendo otras tiras

    o cadenas de smbolos a su salida.

    El autmata recibe los smbolos de entrada, uno detrs de otro, es decir

    secuencialmente. El smbolo de salida que en un instante determinado produce un autmata,

    no slo depende del ltimo smbolo recibido a la entrada, sino de toda la secuencia o

    cadena, que ha recibido hasta ese instante.

    En esta parte estudiaremos las maquinas abstractas ms simples, los autmatas finitos, las

    cuales estn en relacin con los lenguajes regulares

    Todo lo anterior conduce a definir un concepto fundamental: estado de un autmata

    que trata la temtica de modelado de sistemas discretos. La nocin ms bsica de los

    modelos de eventos discretos es la de estado. Un estado es una situacin en la que se

    permanece un cierto lapso de tiempo.

    Se expresan los modelos de estados y eventos de manera grfica. (En la Tabla 1:

    Smbolos usados encontrar una descripcin grfica de estos elementos). Los estados se

    representan por valos, y los eventos por flechas entre los valos, llamadas transiciones.

    Dentro de cada estado se escribe su nombre, mientras que al lado de las transiciones se

    escribe el nombre del evento asociado. El estado inicial est siendo indicado por un tringulo

    o flecha y un estado final o de aceptacin (halt) mediante doble crculo. Los estados finales

    indican que cuando se llega a ellos, la secuencia de eventos que llev hasta ah puede

    considerarse como aceptable

  • 35

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Los estados son la base de un diseo de los modelos que estamos estudiando, pues

    recuerdan las situaciones bsicas por las que pasa el proceso.

    Algunas caractersticas de diseo a tener en cuenta al hacer modelos de estados y eventos:

    Las condiciones asociadas a los estados deben ser excluyentes, esto es, no deben

    verificarse varias simultneamente.

    Las condiciones asociadas a los estados deben ser comprensivas. Se deben cubrir

    todas las combinaciones posibles entre todos los estados.

    Entre dos eventos o transiciones siempre debe haber un estado

    Errores que ms frecuentemente se cometen al hacer modelos de estados y eventos:

    Confundir estados con eventos o transiciones.

    Implementar estados no excluyentes (por ejemplo con la misma etiqueta).

    Formular estados no tiles, donde excluyan situaciones por evaluar.

    MQUINA DE ESTADOS FINITOS: Describimos ahora las maquinas abstractas de ac en

    adelante para el curso y les identificamos los siguientes componentes:

    Figura 10: Mquina de estados. Estructura

    Fuente:

  • 36

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Una cinta de entrada; Una cabeza de lectura (y eventualmente escritura); Un control.

    La cabeza lectora se coloca en los segmentos de cinta que contienen los caracteres que componen la palabra de entrada, y al colocarse sobre un smbolo lo lee y manda esta informacin al control (digmoslo as controlado por unas reglas o producciones). El recorrido puede ser a izquierda o derecha segn el diseo de la mquina. La aguja del control puede estar cambiando de posicin, (de un estado a otro) y hay algunas posiciones llamadas finales (como la indicada por un punto, q3) que son consideradas especiales, porque permiten determinar si una palabra es aceptada o rechazada. Tabla 7: Recursos web para construccin de autmatas.

    DESCRIPCIN DE VIDEO

    CANAL

    CANAL

    Construccin, diseo e interpretacin de los componentes de un autmata (tuplas)

    http://youtu.be/HF9-e28TWb0 http://www.veoh.com/watch/v61609207mprr4pFS

    Fuente:

  • 37

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    CAPITULO 2. AUTMATAS FINITOS

    Los autmatas finitos son capaces de reconocer solamente, un determinado tipo de lenguajes, llamados Lenguajes Regulares, que pueden ser caracterizados tambin, mediante un tipo de gramticas llamadas tambin regulares. Pero para describir los lenguajes (caracterizarlos) se suelen usarlas Expresiones Regulares (ER), que abordaremos en lecciones siguientes con detenimiento. Otra forma de describir la sintaxis de los lenguajes es usando gramticas y sus reglas de produccin. El objetivo de caracterizar lenguajes es proporcionar una forma concisa y relativamente sencilla (aunque menos intuitiva) para describir los lenguajes regulares, exponiendo detalles de su estructura que no quedan tan claros en las otras caracterizaciones. En el presente captulo, identificamos los componentes de los autmatas, antes de llegar a caracterizar los lenguajes que estos puedan generar.

    LECCIN 6. DEFINICIN FORMAL DE AUTMATAS FINITOS

    La definicin formal implica presentar en un formato matemtico (no en grficos o ilustraciones) los componentes de un autmata y la informacin de un diagrama de estados. Los smbolos y notaciones matemticas usados, sern los que durante todo el desarrollo del contenido se aplicarn para describir matemticamente estas mquinas. Otros autores usan otra simbologa, que solo difiere en la forma mas no en la interpretacin de las definiciones formales de estas mquinas. Se ha estandarizado las simbologa ms sencilla para efectos de didctica e interpretacin

    Definicin 6: Una mquina de estados finitos M es un quntuplo ( K, , ,s, F) donde:

    K identifica el conjunto de estados. es el alfabeto de entrada. s K es el estado inicial. F K es un conjunto de estados finales.

    : K x K es la funcin de transicin, que a partir de un estado y un smbolo del alfabeto obtiene un nuevo estado.

    REPRESENTACIN DE AUTMATAS: Los autmatas se pueden representar mediante:

  • 38

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Tabla de transiciones. Diagrama de Moore.

    Tabla de transiciones: Consiste en una tabla, con tantas filas como estados y tantas columnas como entradas. El estado inicial en la columna izquierda est indicado con una flecha. El estado final en la columna izquierda est indicado con un numeral. (No confundir esto con la estrella de kleene que se ver ms adelante en la leccin de Expresiones

    Regulares). Ejemplo 24 Se puede representar el autmata finito dado por:

    M = ({q0, q1, q2, q3} , {0, 1} , , q0, {q1})

    Para este ejemplo:

    K ={ q0, q1, q2, q3} ={0,1) s = q0 F = q1 -

    Donde la funcin : {q0, q1, q2, q3 } {0, 1} {q0, q1, q2, q3} viene dada por:

    (q0, 0) = q0 (q0, 1) = q1

    (q1, 0) = q0 (q1, 1) = q2

    (q2, 0) = q3 (q2, 1) = q1

    (q3, 0) = q3 (q3, 1) = q2

    La tabla de transicin correspondiente a este autmata ser: Figura 11: Tabla de transicin de un Autmata Finito.

  • 39

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Diagramas de Moore: Los diagramas de Moore son otra forma de representar las funciones de transicin y salida de un autmata. El diagrama de Moore es un grafo orientado en el que cada nodo corresponde a un estado. Para el ejemplo 24, el diagrama de Moore equivalente estara definido as: Figura 12: Diagrama de Moore para un Autmata Finito.

    Tabla 8: Recursos web para diagramas de Moore.

    DESCRIPCIN DE VIDEO

    CANAL

    CANAL

    Construccin y diseo de autmatas, Diagramas de Moore, tablas de transicin.

    http://youtu.be/3kWdHOLw-AQ http://www.veoh.com/watch/v6168933229Fx8G4A

    Fuente: FUNCIONAMIENTO DE LOS AUTMATAS FINITOS: Consiste en ir pasando de un estado a otro, a medida que va recibiendo los caracteres de la palabra de entrada. Este proceso puede ser seguido fcilmente en los diagramas de estados. Simplemente hay que pasar de estado a estado siguiendo las flechas de las transiciones, para cada carcter de la palabra de entrada, empezando por el estado inicial. Para el ejemplo de la Figura 12 y la palabra de entrada 101 el autmata inicia su operacin en el estado q0 (estado inicial) y al recibir el primer smbolo el 1 , pasa al estado final q2 (podra decirse que all finalizara pero faltan por evaluar dos smbolos ms de la cadena o palabra ) luego del estado q2 regresa al estado q1 cuando entra el smbolo 0 y para el siguiente smbolo 1 se cambia de estado al q2 llegando a un estado de aceptacin y habiendo recorrido la palabra (entonces esta cadena fue aceptada).

    Podemos visualizar el camino recorrido en el diagrama de estados como una trayectoria

    recorrida de estado en estado en al que la trayectoria para recorrer y aceptar la palabra 101,

  • 40

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    recorri en su orden los estado q0, q1, q0, q1. El hecho que los dems estados no hayan

    intervenido, no quiere decir un diseo errado en la Mquina M (autmata). Para otras

    cadenas o palabras, se requieran de otros estados y trayectorias.

    Los estados son el nico medio de que disponen los AF para recordar los eventos que ocurren (por ejemplo, que caracteres se han ledo hasta el momento); esto quiere decir que son mquinas de memoria limitada. En ltima instancia, las computadoras digitales son mquinas de memoria limitada, aunque la cantidad de estados posibles de su memoria podra ser enorme.

    LECCIN 7. AUTMATAS FINITOS DETERMINSTICOS (AFD) La definicin dada en la Leccin 6, corresponde a los autmatas finitos deterministas, abreviado AFD. Es importante definir el porqu del determinismo y para ello enfoqumonos en el papel o

    cmo se interpreta la funcin de transicin : La funcin de transicin indica a qu estado se va a pasar sabiendo cul es el estado actual y el smbolo que se est leyendo. No es simplemente una relacin lo que implica que para un estado y un smbolo del alfabeto dados, habr un y solo un estado siguiente. En otras palabras la caracterstica de determinismo es la que perite saber siempre y despus de una transicin, cul ser el siguiente estado. Otras apreciaciones de estos AFD lo definen como otro mecanismo para describir lenguajes. En vez de pensar en generar las cadenas (como las ERs), un AFD describe un lenguaje mediante reconocer las cadenas del lenguaje, y ninguna otra.

    Cmo es inicializado el autmata: En la figura 10 podemos verificar como se inicializa:

    1. se coloca en la cinta de entrada, con un smbolo en cada celda. (en este caso es aaabab )

    2. el cabezal de lectura se apunta al smbolo ms a la izquierda de . En este caso el

    smbolo a

    3. el estado actual pasa a ser q0

    Ciclo de ejecucin bsico del autmata: Como cualquier computador, una vez se ha

    inicializado, comienza la ejecucin desde la palabra de entrada .

  • 41

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    1. se lee el smbolo actual, que es el apuntado por el cabezal de lectura. Si el cabezal

    apunta a una celda vaca entonces el AFD termina su ejecucin, aceptando la palabra en

    caso de que el estado actual sea final y rechazando la palabra en caso contrario. Esto

    ocurre cuando se ha ledo toda la palabra de entrada, y se produce una situacin similar a

    tener una condicin fin de chero" en la ejecucin de un programa

    2. se calcula el estado siguiente a partir del estado actual y del smbolo actual segn la

    funcin de transicin, esto es, (estado actual; smbolo actual) = estado siguiente

    3. el cabezal de lectura se mueve una celda a la derecha

    4. el estado siguiente pasa a ser el estado actual y vuelve al paso 1

    Ejemplo 24 Dado el siguiente Autmata M Finito determinista: M =(K, , q0, , F) donde:

    K = {q0, q1, q2, q3} = {x,z} q0 Es el estado Inicial F = q3

    donde la funcin de transicin est dada por: : {q0, q1, q2, q3 } {x, z} {q0, q1, q2, q3} q0 { q3}

    (q0, x ) = q1 (q1, x ) = q1 (q1, z ) = q2 (q2 , x ) = q3 (q 3 , z ) = q2 (q 3 , x ) = q1

    La tabla de transicin correspondiente a este autmata ser: (tabla generada en el simulador

    Visual Autmata Simulator VAS 3)

    Figura 13: Tabla de transicin para un Autmata Finito generado con software simulador VAS.

    y el diagrama de transicin (moore) correspondiente ser:

    33 VAS. Visual Autmata Simulator. Disponible en internet

  • 42

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Figura 14: Diagrama de Moore asociado a un AFD.

    El diagrama de transicin de un AFD tiene por cada nodo un solo arco etiquetado con cada

    uno de los smbolos del alfabeto.

    Algunas condiciones para que estos autmatas sean vlidos son:

    el diagrama de transicin de un AFD tiene por cada nodo un slo arco etiquetado con

    cada uno de los smbolos del alfabeto.

    Otra condicin es que debe haber exactamente un estado inicial.

    la cantidad de estados finales puede ser cualquiera, inclusive cero (para algunos

    modelos), hasta un mximo de |K| (la cantidad de estados).

    De manera general, si un AFD se encuentra en un estado q y recibe un smbolo pasa al

    estado q"si (q, ) = q " , esto es, si ((q, ), q " )

    Algunas definiciones matemticas relacionadas a los AFD son:

    Definicin 7: Si M = (K, , , s, F) es un autmata de estado finito, entonces una configuracin es un elemento del producto cartesiano K x *

    Entindase por configuracin un par (q, ) donde q es un estado y una palabra. En este

    orden q ser el estado en el que se encuentra el autmata y lo que queda por leer en un momento dado.

  • 43

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Definicin 8: Si M = (K, , , s, F) es un autmata finito determinista y * es una palabra, entonces se llama configuracin inicial asociada a es apalabra a la configuracin

    (q0, ).

    Esto se explica indicando que la configuracin inicial indica que estamos en el estado inicial

    y nos queda por leer toda la palabra .

    Definicin 9: Esta definicin hace referencia a definir la relacin o el paso que se da en un

    autmata entre dos configuraciones:

    Si M = (K, , , s, F) es un autmata finito determinista y (p, ) , (q, ) son dos configuraciones, decimos que puede pasar de (p, ) a (q, ) en una secuencia de clculo,

    lo que se denota como (p, ) (q, ) si y solo si = a , donde a y (p,a) = q.

    LECCIN 8. AUTMATAS FINITOS NO DETERMINSTICOS (AFND)

    Una extensin a los autmatas finitos deterministas es la de permitir que de cada nodo del

    diagrama de estados salga un nmero de flechas mayor o menor que As, se puede permitir

    que falte la flecha correspondiente a alguno de los smbolos del alfabeto, o bien que haya

    varias flechas que salgan de un solo nodo con la misma etiqueta. Inclusive se permite que

    las transiciones tengan como etiqueta palabras de varias letras o hasta la palabra vaca. A

    estos autmatas finitos se les llama no Determinsticos o no deterministas (abreviado

    AFND). Al retirar algunas de las restricciones que tienen los autmatas finitos

    Determinsticos, su diseo para un lenguaje dado puede volverse ms simple.

    Dado que los AFND tienen menos restricciones que los AFD, resulta que los AFD son un

    caso particular de los AFND, por lo que todo AFD es de hecho un AFND.

    Los autmatas finitos no Determinsticos (AFND) aceptan exactamente los mismos lenguajes

    que los autmatas determinsticos. Sin embargo, sern importantes para demostrar

    teoremas y por su ms alto poder expresivo

    Recordemos que para un AFD dado el estado actual y el siguiente caracter, el AFD pasa

    exactamente a un siguiente estado. Por eso se lo llama determinstico. Una versin en

    principio ms potente es un AFND, donde frente a un estado actual y un siguiente caracter,

    es posible tener cero, uno o ms estados siguientes.

    La configuracin en quntupla de elementos es la misma que las de un AFD (Leccin 6), excepto la funcin de transicin que se define ahora como:

  • 44

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    : K x (K)

    Donde (K) denota el conjunto de las partes de K o conjunto potencia 2K

    Ejemplo 25 Si se tiene (q,a) = {q1, q2, . , qm) lo que indica que estando en un estado actual q y un smbolo de entrada a, el estado siguiente puede ser cualquier estado entre q1 y

    qm.

    Ejemplo 26 Puede darse el caso que (q,a) = lo que indica que el estado siguiente no est definido.

    Ejemplo 27 Los AFND tambin se representan mediante tablas o diagramas de transicin. En el diagrama de transicin, el no determinismo se descubre porque hay algn nodo del que parten dos o ms arcos etiquetados con el mismo smbolo del alfabeto, o falta algn arco para algn smbolo del alfabeto. En la Figura 15 podemos ver un ejemplo de tabla y diagrama de transicin de un Autmata Finito No Determinista (AFND).

    El AFND de la figura 15 se describe formalmente como: M = (, K, , q1, F) donde

    = {a,b}, F = {q4

    } s = {q1} y K = {q 1 , q 2 , q 3 , q 4 }, y la funcin (que tambin se puede

    describir as) est dada por:

    = {(q1,a,q2),(q1,a,q3),(q2,b,q4),(q2,b,q2),(q3,a,q3),(q3,b,q4),(q4,a,q4)}

    Figura 15: Diagrama de Moore asociado a un AFND.

    Tabla 9: Recursos web para AFND

  • 45

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    DESCRIPCIN DE VIDEO

    CANAL

    CANAL

    Lenguaje aceptado por un Autmata. Tablas de transicin y descripcin de autmata finito.

    http://youtu.be/eWUfPJD9A_0 http://www.veoh.com/watch/v61683101FNRSfxSP

    Fuente:

    LECCIN 9. AUTMATA FINITO CON TRANSICIONES

    (AFND- ) bsicamente es un AFND al que s ele permite cambiar de un estado sin

    necesidad de consumir o leer un smbolo de la entrada. La funcin de transicin est

    definida como:

    : K x ( U { }) (K)

    La tabla de transicin de un AFND- es como la de un AFND excepto que se le aade una

    columna correspondiente a , de forma que en la posicin T[(q, )] estar el conjunto de

    estados que determine (q, ).

    Si se tiene un AFND- representado en su diagrama de transicin en la figura 16, si se evala el estado q6 y el smbolo actual que guarda en memoria ese estado es cero (0), el

    autmata puede decidir en forma no determinista entre leer la cadena vaca y llegar al

    estado q7 conservando el smbolo y terminar o aceptar la palabra en el estado q8, o bien

    decidir si pasa al estado q4 y luego leer un 1 y seguir el recorrido.

    Figura 16: Diagrama de Moore asociado a un AFND -

  • 46

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    LECCIN 10. LENGUAJE ACEPTADO POR UN AF

    Los AF reconocen cierto tipo de lenguajes, pero esto depende de la configuracin del

    autmata. Esta configuracin viene dada por el instante del autmata en un momento dado y

    la porcin de cadena de entrada que le queda por leer (no la cadena completa).

    La configuracin de un autmata finito (AF) es un elemento (q, ) (K x *) est dada por:

    Configuracin inicial: (q0, ) donde q0 es el estado inicial y la palabra de entrada.

    Configuracin de parada: cualquier configuracin en la que el autmata puede parar

    su ejecucin, bien porque se haya procesado toda la entrada o bien porque se haya

    llegado a una situacin donde no es aplicable ninguna transicin.

    Configuracin de aceptacin: (qF, ) donde qF, es un estado final del autmata. Una vez alcanzada esta configuracin el autmata puede aceptar lapalabra.

    Por lo que se concluye: que un AFD reconoce o acepta una palabra si se cumplen las

    siguientes condiciones:

    1. Se consumen todos los caracteres de dicha palabra de entrada, siguiendo las transiciones

    y pasando en consecuencia de un estado a otro;

    2. al terminarse la palabra, el estado al que llega es uno de los estados finales del autmata

    (los que tienen doble crculo en los diagramas, o que son parte del conjunto F en la

    representacin formal).

    Lenguaje aceptado por un AFD

    L(M) = { x * , F,(s,x) * M (, )}.

    Lenguaje aceptado por un AFND:

    El lenguaje aceptado por una AFND M = (, K, ,s, F) se define como:

    L(M) = { x * , F,(s,x) * M (, )}.

    A diferencia del caso de AFDs, dada una cadena x, es posible llegar a varios estados

    distintos (o a ninguno) luego de haberla consumido. La cadena se declara aceptada si

    alguno de los estados a los que se llega es final.

  • 47

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Intuitivamente, un AFND acepta una palabra de entrada siempre que sea posible

    comenzar por el estado inicial y que exista una secuencia de transiciones que nos lleven a

    consumir la palabra y acabe el autmata en un estado final. Puede que tengamos otras

    secuencias de transiciones que no acaben en estado final, pero basta que exista una que

    acabe en estado final para que la palabra sea aceptada.

    FINALMENTE: Cuando se expresa: determinar el lenguaje de un Autmata, se est

    haciendo referencia a describir de manera general, matemtica y explcitamente en texto

    combinado, que palabras o cadena se pude aceptar esa mquina:

    L(M) = { alguna propiedad de }

    Ejemplo 28 ; Dado el siguiente AFD M = (, K, , q0, F) donde = {a,b}, F = {q2} s = {q0} y K = {q0, q 1 , q 2 } y representado en el diagrama de estados de

    la figura 17.

    Figura 17: Lenguaje asociado a un AFD

    El autmata reconoce el lenguaje:

    L = { {a,b}* = abia, i 0 }

    Y se interpreta as: El autmata AFD reconoce el lenguaje de todas las cadenas posible dentro de todo el conjunto de combinaciones posibles {a,b}* de tal manera que esas cadenas

    empiecen por una a, seguidas de ninguna, una o ms bs y que finalizan con una a.

  • 48

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Tabla 10: Recursos web para cadenas vlidas

    DESCRIPCIN DE VIDEO

    CANAL

    CANAL

    Lenguaje aceptado por un Autmata (AF). Como se debe describir el lenguaje que representa. Cadenas o palabras que acepta un autmata.

    http://youtu.be/QdRlbzVsvLQ

    http://youtu.be/ASg_ZUXgvZk

    http://www.veoh.com/watch/v61610759jHdGRr59 http://www.veoh.com/watch/v61698636anxKfprR

    Fuente:

    CAPITULO 3: EXPRESIONES Y LENGUAJES REGULARES

    LECCIN 11. LENGUAJES REGULARES Y EXPRESIONES REGULARES Los Lenguajes regulares son los ms simples y restringidos dentro de la jerarqua de Chomsky. Estos lenguajes pueden adems ser descritos mediante dos representaciones que veremos: las Expresiones Regulares y las Gramticas Regulares que sern los temas a tratar en las siguientes lecciones. Tambin son descritos mediante AFD y AFND.

    LENGUAJES REGULARES: se llaman as porque sus palabras contienen regularidades o repeticiones de los mismos componentes, como por ejemplo en el lenguaje L1 siguiente: L1 = { ab,abab,ababab,abababab,..} En donde las cadenas o palabras son repeticiones de ab Algunas propiedades se aplican a estos Lenguajes Regulares como por ejemplo si se combinan dos lenguajes regulares, tambin se obtiene un lenguaje regular. L1 U L2 = L3

    Definicin 10: Un lenguaje L es regular si y solos i se cumple al menos una de las siguientes condiciones:

    L es finito;

    L es la unin o la concatenacin de otros lenguajes regulares R1 y R2, L = R1 U R2 o L = R1R2 respectivamente

    L es la cerradura de Kleene de algn lenguaje regular, L = R*.

  • 49

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    LECCIN 12. SIGNIFICADO DE LAS EXPRESIONES REGULARES

    Una expresin regular (ER) es una notacin normalizada para representar lenguajes regulares, es decir, lenguajes generados por gramticas de tipo 3. Las expresiones regulares permiten describir con exactitud y sencillez cualquier lenguaje regular. Para definir una ER se

    pueden utilizar todos los smbolos del alfabeto y, adems y . Los operadores que tambin se pueden utilizar son:

    + representa la unin. representa la concatenacin (este smbolo no se suele escribir).

    * representa el cierre de Kleene ( ) modifican las propiedades de los dems operadores.

    Una ER tambin se define bajo los siguientes criterios: (Se muestran tambin los lenguajes que describen estas ER)

    1. es una ER que representa el lenguaje vaco (no tiene elementos) L =

    2. es una ER que representa el lenguaje L = { }

    3. a es una ER que representa el lenguaje La = {a}

    4. Si y son ER entonces + tambin lo es y representa al lenguaje

    L + = L U L

    5. Si y son ER entonces tambin lo es y representa al lenguaje

    L = L L

    6. Si es una ER entonces * tambin lo es y representa el lenguaje

    i

    i

    0

    *

    El orden de prioridad de los operadores es, de mayor a menor: * , , + Este orden puede alterarse mediante parntesis, de forma anloga a como se hace con las expresiones aritmticas.

    Ejemplo 29 aa+b*a es una ER sobre el alfabeto ={a,b} (ntese que por simplicidad se ha omitido el operador ) Esta Er es distinta de la ER (aa + b*)a.

  • 50

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Un ejemplo de una ER no vlida: La cadena (+a*ba) no es una ER.

    Ejemplo 30 Dado = {0,1} y la ER = 0*10* analizando las propiedades de concatenacin se tiene que el lenguaje que genera esa ER es: L (0*10*) = L(0*)L(1)L(0*) = (L(0))*L(1)(L(0))* = {0}*{1}{0}* = {0n10m n,m 0} PROPIEDADES DE LAS EXPRESIONES REGULARES (ER):

    Dos ER como y son equivalentes y se denotan como = , si describen el mismos

    lenguaje: L( ) = L( ).

    A continuacin enumeramos una serie de propiedades que cumplen las expresiones regulares, derivadas de las propiedades de las operaciones con lenguajes: Figura 18: Propiedades de las ER

    Fuente:

    Una propiedad de inclusin es la que se muestra: L( ) L( ) entonces se cumple que:

    + =

    Ejemplos 31: Sea = {0,1}

    1. 01+001 es una ER que representa el Lenguaje L={01,001} (acepta una cadena 01

    una 001, pero no ambas ni la combinacin de las mismas).

    2. 0*10* es una ER que representa a cualquier cadena binaria en la que hay un solo 1.

    L={0n10m n,m 0}.

    3. La ER (acb)* es representada en la figura 19: (Ntese que acepta la cadena

  • 51

    Ing.(Msc). Carlos Alberto Amaya Tarazona --- Copyright 2015

    Figura 19: ER representada en una mquina de estados (acb)*

    4. 00 es una ER con el Lenguaje asociado {00}

    5. 01* + 0 es una ER que denota el Lenguaje L = {01i : i 0 }

    6. (1 + 10)* representa el lenguaje de las cadenas que comienzan por 1 y no t