Automatas y Lenguajes Forales 2014-i

182

Transcript of Automatas y Lenguajes Forales 2014-i

  • UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA

    ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA

    PROGRAMA DE INGENIERA DE SISTEMAS

    301405 AUTMATAS Y LENGUAJES FORMALES

    AUTOR:

    CARLOS ALBERTO AMAYA TARAZONA

    (Director Nacional)

    http://www.camayat.com

    Duitama (ZCBOY)

    Versin 3 2014.

  • CONTENIDO

    Primera Unidad Captulos Lecciones

    I. LENGUAJES REGULARES

    1. Conceptos Bsicos

    1. Introduccin e Historia.

    2. Alfabetos, Cadenas y Lenguajes

    3. Autmatas y Lenguajes.

    4. Lenguajes Regulares

    5. Autmata

    2. Autmatas Finitos

    6. Definicin Formal de Autmatas Finitos 7. Autmatas Finitos Determinsticos (AFD) 8. Autmatas Finitos no Determinsticos (AFND)

    9. Autmatas Finitos con Transacciones 10. Lenguaje Aceptado por Autmata Finito

    3. Expresiones Regulares

    11.Lenguajes Regulares y Expresiones Regulares 12. Significado de las Expresiones Regulares 13. Autmatas Finitos y Expresiones Regulares 14 Equivalencia de Autmatas Finitos Determinsticos y Autmatas Finitos no Determinsticos 15 Minimizacin de Autmatas

    Segunda Unidad Captulos

    Lecciones

    II. LENGUAJES INDEPENDIENTES DEL CONTEXTO

    4. Conceptos Generales

    16. Gramticas Regulares

    17. Lenguajes libres de contexto y sus mquinas

    18. Arboles de derivacin

    19. Transformacin de las GLC y Formas Normales

    20.Limitacioes de los LLC

    5. Autmatas a Pila

    21. Definicin de Autmata con Pila 22. Funcionamiento de Autmata con Pila 23. Diseo de Autmata con Pila. 24. Funciones que se aplican sobre los stacks (Pilas)

    25. Combinacin modular de los autmatas con Pila

    6. Propiedades de Lenguajes Independientes de Contexto

    26. Lenguaje aceptado por un AP 27. Relacin entre los AP y los LLC

    28. Propiedades de clausura de los Lenguajes Libres de Contexto 29. Algoritmos de decisin para los LLC 30.Problemas Indecibles para Lenguajes Libres de Contexto

    Tercera Unidad Captulos

    III. LENGUAJES ESTRUCTURADOS POR FRASES

    7. Mquinas de Turing.

    31. Formalizacin de las MT

    32. Funcionamiento de la Mquina de Turing.

    33. Diferencias entre un Computador y una Mquina de Turing 34. La Mquina Universal de Turing

  • 4

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    35. Lenguajes aceptados por la MT

    8. Mquina de Turing y Computacin

    36. Tesis de Church/Turing

    37.Variantes de Una Mquina de Turing

    38. Problemas de Hilbert

    39. Problemas Insolubles para la Teora de Lenguajes

    40. Lenguajes Decidibles

    9. Funciones Recursivas 41. Problemas de Halting 42. Decibilidad de Teoras Lgicas

    43. Reducibilidad de Turing

    44. Algoritmo de Trellis

    45. Algoritmo de Viteri

  • 5

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    Tabla de contenido LISTA DE FIGURAS................................................................................................................................ 8

    LISTA DE TABLAS................................................................................................................................ 10

    INTRODUCCIN ................................................................................................................................. 11

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

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

    I. GENERALIDADES: ............................................................................................................ 16

    I.I OPERACIONES CON CONJUNTOS: ......................................................................................... 17

    I.II EQUIVALENCIAS DE CONJUNTOS: ........................................................................................ 19

    I.III RELACIONES:........................................................................................................................ 20

    I.IV FUNCIONES: ........................................................................................................................ 24

    PRIMERA UNIDAD: LENGUAJES REGULARES ..................................................................................... 25

    CAPITULO 1: CONCEPTOS BSICOS ............................................................................................... 25

    LECCIN 1: INTRODUCCIN E HISTORIA: .................................................................................. 26

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

    LECCIN 3. AUTMATAS Y LENGUAJES ................................................................................... 31

    LECCIN 4. LENGUAJES REGULARES ........................................................................................ 33

    LECCIN 5. AUTMATA ............................................................................................................ 36

    CAPITULO 2. AUTMATAS FINITOS ............................................................................................... 39

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

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

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

    LECCIN 9. AUTMATA FINITO CON TRANSICIONES ........................................................... 47

  • 6

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

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

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

    LECCIN 11. LENGUAJES REGULARES Y EXPRESIONES REGULARES ......................................... 51

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

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

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

    LECCIN 15. MINIMIZACIN DE AUTMATAS ......................................................................... 63

    UNIDAD 2. LENGUAJES INDEPENDIENTES DEL CONTEXTO ............................................................... 69

    CAPTULO 4 CONCEPTOS GENERALES ........................................................................................... 69

    LECCIN 16. GRAMTICAS REGULARES ................................................................................. 70

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

    LECCIN 18. ARBOLES DE DERIVACIN .................................................................................... 78

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

    LECCIN 20. LIMITACIONES DE LOS LLC .................................................................................... 90

    CAPITULO 5. AUTMATAS DE PILA ............................................................................................... 91

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

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

    LECCIN 23. DISEO DE AUTMATAS DE PILA ......................................................................... 95

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

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

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

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

  • 7

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

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

    ................................................................................................................................................. 102

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

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

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

    UNIDAD 3 LENGUAJES ESTRUCTURADOS POR FRASES. ................................................................. 109

    CAPITULO 7 MAQUINAS DE TURING. .......................................................................................... 109

    LECCIN 31. FORMALIZACIN DE LAS MT. ............................................................................. 110

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

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

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

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

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

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

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

    LECCIN 38. PROBLEMAS DE HILBERT. ................................................................................... 124

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

    CAPITULO 9. FUNCIONES RECURSIVAS ....................................................................................... 129

    LECCIN 40. LENGUAJES DECIDIBLES ...................................................................................... 129

    LECCIN 41. PROBLEMAS DE HALTING .................................................................................. 131

    LECCIN 42. DECIBILIDAD DE TEORAS LGICAS .................................................................... 132

    LECCIN 43. REDUCIBILIDAD DE TURING ................................................................................ 134

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

  • 8

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    LECCIN 45: ALGORITMO DE VITERBI ..................................................................................... 148

    SIMULADORES: ................................................................................................................................ 154

    ANEXO: EJERCICIOS DE REPASO ...................................................................................................... 155

    BIBLIOGRAFIA .................................................................................................................................. 181

    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

  • 9

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

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

  • 10

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

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

  • 11

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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

  • 12

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

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

    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.

  • 13

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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.

  • 14

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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

  • 15

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    < Comparacin Menor que

    > 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

  • 16

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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

  • 17

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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.

  • 18

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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:

    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

  • 19

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

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

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

  • 20

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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

    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.

  • 21

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    Figura 1: Grafo relacin binaria

    Fuente:

    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:

  • 22

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    }),(|),{(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

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

  • 23

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    Figura 3: Una Relacin Antireflexiva.

    Fuente:

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

  • 24

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    Figura 6: Una Relacin Transitiva

    Fuente:

    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

  • 25

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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:

    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.

  • 26

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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

    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)

    1

  • 27

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    > Parar el algoritmo A para todas sus entradas? (Problema de la totalidad) > Parar el algoritmo A la funcin f? (Problema de la verificacin)

    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.

  • 28

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

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

    http://youtu.be/tO-WgRXKcAo

    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

  • 29

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

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

  • 30

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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 :

    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.

  • 31

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

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

    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

  • 32

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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.

    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

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

    de 2013

  • 33

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    Fuente:

    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

  • 34

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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

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

  • 35

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

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

  • 36

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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.

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

  • 37

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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

    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.

  • 38

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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:

    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.

  • 39

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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:

    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.

  • 40

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    F K es un conjunto de estados finales.

    : K x K 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:

    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.

  • 41

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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

  • 42

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

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

  • 43

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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 .

    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.

    33 VAS. Visual Autmata Simulator. Disponible en internet

  • 44

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    y el diagrama de transicin (moore) correspondiente ser:

    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 " )

  • 45

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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.

    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.

  • 46

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    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:

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

  • 47

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA MODULO CURSO: 301405 AUTMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona

    Tabla 9: Recursos web para AFND

    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.

  • 48

    UNIVERSIDAD NACIONAL