SlideShare una empresa de Scribd logo
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
PROGRAMA DE INGENIERÍA DE SISTEMAS 
301405 – AUTÓMATAS Y LENGUAJES FORMALES 
AUTOR: 
CARLOS ALBERTO AMAYA TARAZONA (Director Nacional) 
http://www.camayat.com 
Duitama (ZCBOY) 
Versión 4 – 2014.
CONTENIDO 
Primera Unidad Capítulos Lecciones 
I. LENGUAJES 
REGULARES 
1. Conceptos Básicos 
1. Introducción e Historia. 
2. Alfabetos, Cadenas y Lenguajes 
3. Autómatas y Lenguajes. 
4. Lenguajes Regulares 
5. Autómata 
2. Autómatas Finitos 
6. Definición Formal de Autómatas Finitos 
7. Autómatas Finitos Determinísticos (AFD) 
8. Autómatas Finitos no Determinísticos (AFND) 
9. Autómatas Finitos con Transacciones 
10. Lenguaje Aceptado por Autómata Finito 
3. Expresiones Regulares 
11.Lenguajes Regulares y Expresiones Regulares 
12. Significado de las Expresiones Regulares 
13. Autómatas Finitos y Expresiones Regulares 
14 Equivalencia de Autómatas Finitos 
Determinísticos y Autómatas Finitos no 
Determinísticos 
15 Minimización de Autómatas 
Segunda Unidad 
Capítulos 
Lecciones 
II. LENGUAJES 
INDEPENDIENTES DEL 
CONTEXTO 
4. Conceptos Generales 
16. Gramáticas Regulares 
17. Lenguajes libres de contexto y sus máquinas 
18. Arboles de derivación 
19. Transformación de las GLC y Formas Normales 
20.Limitacioes de los LLC 
5. Autómatas a Pila 
21. Definición de Autómata con Pila 
22. Funcionamiento de Autómata con Pila 
23. Diseño de Autómata con Pila. 
24. Funciones que se aplican sobre los stacks (Pilas) 
25. Combinación modular de los autómatas con Pila 
6. Propiedades de Lenguajes 
Independientes de Contexto 
26. Lenguaje aceptado por un AP 
27. Relación entre los AP y los LLC 
28. Propiedades de clausura de los Lenguajes 
Libres de Contexto 
29. Algoritmos de decisión para los LLC 
30.Problemas Indecibles para Lenguajes Libres de 
Contexto 
Tercera Unidad 
Capítulos 
III. LENGUAJES 
ESTRUCTURADOS POR 
FRASES 
7. Máquinas de Turing. 
31. Formalización de las MT 
32. Funcionamiento de la Máquina de Turing. 
33. Diferencias entre un Computador y una 
Máquina de Turing 
34. La Máquina Universal de Turing
4 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
35. Lenguajes aceptados por la MT 
8. Máquina de Turing y Computación 
36. Tesis de Church/Turing 
37.Variantes de Una Máquina de Turing 
38. Problemas de Hilbert 
39. Problemas Insolubles para la Teoría de Lenguajes 
40. Lenguajes Decidibles 
9. Funciones Recursivas 
41. Problemas de Halting 
42. Decibilidad de Teorías Lógicas 
43. Reducibilidad de Turing 
44. Algoritmo de Trellis 
45. Algoritmo de Viteri
5 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Tabla de contenido 
LISTA DE FIGURAS................................................................................................................................ 8 
LISTA DE TABLAS................................................................................................................................ 10 
INTRODUCCIÓN ................................................................................................................................. 11 
ANEXO 1: LISTADO DE SÍMBOLOS USADOS....................................................................................... 14 
ANEXO 2: PRESABERES: TEORÍA 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 BÁSICOS ............................................................................................... 25 
LECCIÓN 1: INTRODUCCIÓN E HISTORIA: .................................................................................. 26 
LECCIÓN 2. - ALFABETOS, CADENAS Y LENGUAJES ................................................................. 28 
LECCIÓN 3. AUTÓMATAS Y LENGUAJES ................................................................................... 32 
LECCIÓN 4. LENGUAJES REGULARES ........................................................................................ 33 
LECCIÓN 5. AUTÓMATA ............................................................................................................ 36 
CAPITULO 2. AUTÓMATAS FINITOS ............................................................................................... 39 
LECCIÓN 6. DEFINICIÓN FORMAL DE AUTÓMATAS FINITOS .................................................... 39 
LECCIÓN 7. AUTÓMATAS FINITOS DETERMINÍSTICOS (AFD) .................................................... 42 
LECCIÓN 8. AUTÓMATAS FINITOS NO DETERMINÍSTICOS (AFND)............................................ 45 
LECCIÓN 9. AUTÓMATA FINITO CON  TRANSICIONES ........................................................... 47
6 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
LECCIÓN 10. LENGUAJE ACEPTADO POR UN AF........................................................................ 48 
CAPITULO 3: EXPRESIONES Y LENGUAJES REGULARES ................................................................. 51 
LECCIÓN 11. LENGUAJES REGULARES Y EXPRESIONES REGULARES ......................................... 51 
LECCIÓN 12. SIGNIFICADO DE LAS EXPRESIONES REGULARES .................................................. 51 
LECCIÓN 13. AUTÓMATAS FINITOS Y EXPRESIONES REGULARES ............................................. 54 
LECCIÓN 14. EQUIVALENCIA DE AFD Y AFND ............................................................................ 60 
LECCIÓN 15. MINIMIZACIÓN DE AUTÓMATAS ......................................................................... 63 
UNIDAD 2. LENGUAJES INDEPENDIENTES DEL CONTEXTO ............................................................... 69 
CAPÍTULO 4 CONCEPTOS GENERALES ........................................................................................... 69 
LECCIÓN 16. – GRAMÁTICAS REGULARES ................................................................................. 70 
LECCIÓN 17. LENGUAJES LIBRES DE CONTEXTO Y SUS MÁQUINAS. ........................................ 76 
LECCIÓN 18. ARBOLES DE DERIVACIÓN .................................................................................... 78 
LECCIÓN 19. TRANSFORMACIÓN DE LAS GLC Y FORMAS NORMALES ...................................... 84 
LECCIÓN 20. LIMITACIONES DE LOS LLC .................................................................................... 90 
CAPITULO 5. AUTÓMATAS DE PILA ............................................................................................... 91 
LECCIÓN 21. DEFINICIÓN DE AUTÓMATA CON PILA ................................................................. 92 
LECCIÓN 22. FUNCIONAMIENTO DE LOS AUTÓMATAS DE PILA ............................................... 93 
LECCIÓN 23. DISEÑO DE AUTÓMATAS DE PILA ......................................................................... 95 
LECCIÓN 24. FUNCIONES QUE SE APLICAN SOBRE LOS STACKS. (PILAS). ................................ 98 
LECCIÓN 25. COMBINACIÓN MODULAR DE AUTÓMATAS DE PILA ........................................ 100 
CAPITULO 6: PROPIEDADES DE LOS LENGUAJES INDEPENDIENTES DE CONTEXTO.................... 101 
LECCIÓN 26. LENGUAJE ACEPTADO POR UN AP ..................................................................... 101
7 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
LECCIÓN 27. RELACIÓN ENTRE LOS AUTÓMATAS DE PILA Y LENGUAJES LIBRES DE CONTEXTO ................................................................................................................................................. 102 
LECCIÓN 28. PROPIEDADES DE CLAUSURA DE LOS LENGUAJES LIBRES DE CONTEXTO .......... 105 
LECCIÓN 29. ALGORITMOS DE DECISIÓN PARA LOS LENGUAJES LIBRES DE CONTEXTO. ....... 106 
LECCIÓN 30. PROBLEMAS INDECIDIBLES PARA LENGUAJES LIBRES DE CONTEXTO. .............. 108 
UNIDAD 3 LENGUAJES ESTRUCTURADOS POR FRASES. ................................................................. 109 
CAPITULO 7 MAQUINAS DE TURING. .......................................................................................... 109 
LECCIÓN 31. FORMALIZACIÓN DE LAS MT. ............................................................................. 110 
LECCIÓN 32. FUNCIONAMIENTO DE LA MÁQUINA DE TURING. ............................................. 113 
LECCIÓN 33. DIFERENCIAS ENTRE LAS COMPUTADORAS Y LAS MÁQUINAS DE TURING ..... 116 
LECCIÓN 34. LA MAQUINA UNIVERSAL DE TURING. ............................................................... 117 
LECCIÓN 35. LENGUAJES ACEPTADOS POR LA MAQUINA DE TURING. .................................. 118 
CAPITULO 8: MAQUINAS DE TURING Y COMPUTACIÓN. ............................................................ 120 
LECCIÓN 36. TESIS DE CHURCH /TURING. ............................................................................... 120 
LECCIÓN 37. VARIANTES DE UNA MAQUINA DE TURING. ...................................................... 123 
LECCIÓN 38. PROBLEMAS DE HILBERT. ................................................................................... 124 
LECCIÓN 39. PROBLEMAS INSOLUBLES PARA LA TEORÍA DE LENGUAJES.............................. 128 
CAPITULO 9. FUNCIONES RECURSIVAS ....................................................................................... 129 
LECCIÓN 40. LENGUAJES DECIDIBLES ...................................................................................... 129 
LECCIÓN 41. PROBLEMAS DE HALTING .................................................................................. 131 
LECCIÓN 42. DECIBILIDAD DE TEORÍAS LÓGICAS .................................................................... 132 
LECCIÓN 43. REDUCIBILIDAD DE TURING ................................................................................ 134 
LECCIÓN 44. APLICACIONES DE LAS MAQUINAS DE ESTADOS. ALGORITMO DE TRELLIS. ..... 135
8 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
LECCIÓN 45: ALGORITMO DE VITERBI ..................................................................................... 149 
SIMULADORES: ................................................................................................................................ 155 
ANEXO: EJERCICIOS DE REPASO ...................................................................................................... 156 
BIBLIOGRAFIA .................................................................................................................................. 186 
LISTA DE FIGURAS 
Pág 
Figura 1: Grafo relación binaria 21 
Figura 2: Una Relación Reflexiva 22 
Figura 3: Una Relación Antireflexiva. 23 
Figura 4: Una Relación Simétrica 23 
Figura 5: Una Relación Antisimétrica 23 
Figura 6: Una Relación Transitiva 24 
Figura 7: Una Relación Transitiva (otra forma de representarla). 24 
Figura 8: Proceso de traducción realizado por un compilador 33 
Figura 9: Clasificación de los Lenguajes. Jerarquía de Chomsky. N 34 
Figura 10: Máquina de estados. Estructura 38 
Figura 11: Tabla de transición de un Autómata Finito. 41 
Figura 12: Diagrama de Moore para un Autómata Finito. 41 
Figura 13: Tabla de transición para un Autómata 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 máquina de estados 53 
Figura 20: Gráfica de transición (GT) 55 
Figura 21: Operadores básicos de conversión de AF a ER 55 
Figura 22: Transformación de Er a AF. 56 
Figura 23: Obtención de una ER a partir de un AF 57 
Figura 24: Obtención de una ER a partir de un AF PASO 1 58 
Figura 25: Obtención de una ER a partir de un AF PASO 2 58 
Figura 26: Obtención de una ER a partir de un AF PASO 3. 
Eliminación de nodo. 59 
Figura 27: Obtención de una ER a partir de un AF PASO 4. 
Eliminación de nodo q0. 59 
Figura 28: Obtención de una ER a partir de un AF PASO 5. 
Fusión de expresiones 59
9 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS 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 comparación de AF. 62 
Figura 32: Autómata a minimizar 64 
Figura 33: Eliminación de estados en un autómata AF 66 
Figura 34: Eliminación de otros estados en un autómata AF 66 
Figura 35: Eliminación de otros estados en un autómata AF 67 
Figura 36: Tabla de estados distinguibles 68 
Figura 37: Autómata obtenido de la Gramática 1. 73 
Figura 38: Autómata obtenido de la Gramática 1 generado con un simulador. 73 
Figura 39: Autómata obtenido de la Gramática 2. 74 
Figura 40: Autómata obtenido de la Gramática 2 generado con un simulador. 75 
Figura 41: AFD y su gramática. 76 
Figura 42: Árbol de derivación para una secuencia de paréntesis 
bien balanceados. 80 
Figura 43: Árbol de derivación para la cadena aabbaa 80 
Figura 44: Árbol de derivación para la cadena aabbaa generado en JFLAP 81 
Figura 45: Derivaciones por la izquierda, generadas en JFLAP 81 
Figura 46: Arboles de derivación para la gramática G3 82 
Figura 47: Arboles de derivación para una gramática ambigua 83 
Figura 48: Arboles de derivación para una gramática ambigua para a5 84 
Figura 49: Arboles de derivación para a5 84 
Figura 50: Arboles de derivación para paréntesis balanceados 87 
Figura 51: Arboles de derivación para paréntesis balanceados 89 
Figura 52: Arboles de derivación en el lema de bombeo 91 
Figura 53: Formalización de un PDA 93 
Figura 54: Transición de un PDA 95 
Figura 55: Estructura de un PDA para  =aabb 97 
Figura 56: Diseño de un PDA para  =aabb 97 
Figura 57: Funciones de la Pilas. 99 
Figura 58: Unión de AP. 100 
Figura 59: Autómata AFPD. 101 
Figura 60: Grafo para L finito y L infinito. 107 
Figura 61: Componentes de una MT 111 
Figura 62: Máquina de Turing simulada en JFLAP 115 
Figura 63: Modelo de un sistema de comunicaciones digitales 139 
Figura 64: Código secuencial 140 
Figura 65: Codificador convolucional de m etapas 141 
Figura 66: Máquina de estados. Registro de desplazamiento convolucional 
de ratio ½ y una etapa 142 
Figura 67: Máquina de estados. Registro de desplazamiento convolucional 
(datos 000 y 100) 142 
Figura 68: Máquina 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 BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS 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 (transición de estados). 145 
Figura 73: Diagrama de Trellis completo (transición 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: Solución final Trellis y Viterbi. Datos de entrada 11010011. 153 
LISTA DE TABLAS 
Pág 
Tabla 1: Símbolos usados 14 
Tabla 2: Propiedades comunes de las relaciones binarias 22 
Tabla 3: Evolución Histórica de la Teoría de la Computación 26 
Tabla 4: Recursos web referentes a la historia de la temática 28 
Tabla 5: Recursos web para alfabetos, cadenas y lenguajes 29 
Tabla 6: Asociación de gramáticas, lenguaje y máquinas. 36 
Tabla 7: Recursos web para construcción de autómatas. 39 
Tabla 8: Recursos web para diagramas de Moore. 41 
Tabla 9: Recursos web para AFND 47 
Tabla 10: Recursos web para cadenas válidas 50 
Tabla 11: Recursos web para cadenas válidas 59 
Tabla 12: Recursos web para minimización de autómatas 69 
Tabla 13: Recursos web para PDA 76 
Tabla 14: Traza de ejecución del AP 98 
Tabla 15: Recursos web para PDA 99 
Tabla 16: Recursos web para MT 116 
Tabla 17: Relación 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 autómata finito 175 
Tabla 21: Desarrollo de ejercicios de expresiones Regulares (ER). 176 
Tabla 22: Desarrollo de un ejercicio de minimización 178 
Tabla 23: Desarrollo de ejercicio de un APD 179 
Tabla 24: Código Convolucional. Codificación y decodificación. Ejercicio. 180 
Tabla 25: Cálculo de un dato de entrada a partir de uno codificado. 182 
Tabla 26: Cómo leer una Expresión Regular (ER) 185
11 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
INTRODUCCIÓN 
El presente material académico y de investigación que he consolidado, pretende ser una guía general e introductoria, al basto y grande contenido que abarca la Teoría de Autómatas y lenguajes Formales, recorriendo las temáticas, de una manera simple objetiva y efectiva, dado el alto contenido analítico, matemático y de comprensión que tiene las temáticas a las que hace referencia la tabla de contenido que se presenta. 
El material académico que a continuación se presenta, es producto de la recopilación analítica objetiva y crítica de experiencias en la formación profesional en el área de la computación, matemáticas, ingeniería, transmisión de redes de datos, y para el caso el de la teoría de Autómatas y lenguajes Formales, que ya por varios años y en diferentes capos de acción se ha tenido que aplicar. 
Los contenidos que s e documentan y explican, llevan al lector a que asimile dos temáticas básicas para esta área de conocimiento: 
 Que pueda comprender los conceptos y mecanismos fundamentales para la definición de lenguajes: mecanismos como (expresiones regulares, gramáticas independientes del contexto y gramáticas generales), 
 Junto al anterior bloque, el lector comprenderá y abordará los tres tipos de máquinas correspondientes para el reconocimiento de esos lenguajes como son: (autómatas finitos, autómatas a pila y máquinas de Turing) y las propiedades fundamentales de las familias de lenguajes por ellos definidas, también realiza el estudio de las condiciones necesarias para que un lenguaje sea de un tipo determinado. 
La necesidad objetiva de comprender las temáticas, sumada a las dificultades que muchos lectores presentan para comprender y asociar la automatización a la solución de problemas reales mediante máquinas abstractas o a la identificación de problemas solubles, insolubles e indecidibles, me ha llevado a hacer uso de raciocinios sencillos sin necesidad llegara demostraciones matemáticas, jugando un papel secundario la implementación de algoritmos.
12 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Se presentan temáticas que son base para comprender los lenguajes de programación de alto y bajo nivel y que propician la distinción entre lenguajes formales con reglas sintácticas y semánticas rígidas, concretas y bien definidas, de los lenguajes naturales como el inglés o el español, donde la sintaxis y la semántica no se pueden controlar fácilmente. Los intentos de formalizar los lenguajes naturales, lleva a la construcción de gramáticas, como una forma de describir estos lenguajes, utilizando para ello reglas de producción para construir las frases del lenguaje. Se puede entonces caracterizar un lenguaje mediante las reglas de una gramática adecuada. 
Los temas sobre autómatas, computabilidad, e incluso la complejidad algorítmica fueron incluidos de forma referencial y básica en cada unidad, ya que como la historia lo dice y de manifiesto propio, las ciencias de la computación han usado gran cantidad de ideas de muy diferentes campos para su desarrollo, y que la investigación sobre aspectos básicos podía cooperar y aumentar los avances de la computación. 
Como elemento determinante para que el lector de manera progresiva y jerárquica comprende la lógica de este tipo de análisis matemático, están los conceptos previos y claros que se deben reconocer en el área de la matemática y la teoría de conjuntos, funciones, relaciones y principios fundamentales de la lógica, ya que estos temas no son tratados como temáticas en el libro, pero que tienen gran importancia en los fines para los que se creé este documento. 
Muchos autores referenciados en las fuentes bibliográficos y de los cuales se han tomado análisis y ejercicios clave para poder comprender la temática, usan diferentes tipos de nomenclaturas, fórmulas y símbolos, ya que como tal, los lenguajes, expresiones regulares, funciones entre otros deben representarse matemáticamente. Para estandarizar de manera sencilla, se presenta como Anexo a este libro, la lista de símbolos usados y su significado. 
La Metodología 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 máquinas abstractas en simuladores sin necesidad de documentar demasiados conceptos inicialmente o sin hacer uso de demostraciones matemáticas de teoremas, fórmulas o teorías, que quedan para que el lector luego de ver el funcionamiento de la lógica matemática aplicada, y a manera de ingeniería inversa, resuelva nudos analíticos en este tipo de conceptos y análisis matemáticos.
13 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Como complemento a una aplicabilidad que tienen las Teoría de lenguajes y autómatas, se explica el funcionamiento del algoritmo de la modulación codificada de Trellis y la Decodificación de Viterbi (algoritmos creados para el aumento de velocidad y para la mejora de la veracidad) codificaciones de canal y de fuente en transmisión de datos como técnicas de detección y corrección de errores. Este algoritmos se explica mediante los diagramas de árbol y grafos para códigos 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 autoría propia y que están a disposición para su descarga o visualización.
14 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
ANEXO 1: LISTADO DE SÍMBOLOS USADOS 
Los siguientes son los símbolos usados en el presente libro y son la base para todos los 
ejercicios y temáticas expuestas. Muchos autores difieren en el tipo de simbología usada, 
pero se ha procurado consolidar y usar los más comunes acorde a su significado y 
aplicabilidad. 
Tabla 1: Símbolos usados 
Símbolo Nombre Significado /Ejemplo 
AZUL 
NARANJA 
NEGRO 
ROJO 
Estados 
Transiciones 
Símbolos y 
cadenas 
Estado inicial 
Estado final 
(doble círculo) 
Para efectos de representar diagramas de Moore, tablas de 
transición: El libro representa los componentes diferenciando 
colores: Ejemplo: 
Σ Sigma Alfabeto 
L Letra Ele 
mayúscula 
Lenguaje sobre un determinado alfabeto Σ 
M Eme Máquina de estados Finitos 
A A Autómata 
K Ka Suele denotar el conjunto de estados de un autómata 
F Efe Suele denotar el conjunto de estados finales de un autómata 
S Ese Suele denotar el estado inicial de un autómata 
 Sigma Denota una función. 
 Ro Función de transición de un autómata 
 
 
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 Expresión Regular (ER) 
 Beta Otras cadenas. Muy usado en denotar cadenas en gramáticas. 
 Lambda Representa una cadena vacía 
Δ 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 gramática 
 Unión 
 Intersección 
≤ Comparación Menor o igual que 
≥ Comparación Mayor o igual que 
< Comparación Menor que
15 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
> Comparación Mayor que 
= igualdad 
| mid 
* estrella 
 Pertenece 
 No pertenece 
 Incluye Ejemplo: A  B A está incluido en B 
 Subconjunto 
propio 
 vacío Conjunto vacío 
|A| Indica 
cantidad 
Tamaño de un conjunto. Ejemplo para el conjunto A. 
c A Complemento Complemento de un conjunto. Ejemplo para el conjunto A. 
R Relación Para denotar una relación binaria 
1 R Inverso Inverso de una Relación R 
 Negación 
lógica (neg) 
Una barra colocada sobre otro operador es equivalente a un ¬ 
colocado a la izquierda. 
 
 
 
 
Implicación en 
un solo 
sentido 
Lógica proposional “entonces….” } 
Con la flecha sencilla a la derecha en gramáticas, indica las 
producciones que se pueden tener. 
↔ 
Doble 
implicación 
Lógica proposional “Si A es verdadera entonces B también….” 
 Forall Se lee: “Para todo…” 
 Exists Se lee “Existe…” 
│ Mid Separa producciones en una gramática. En algunas expresiones se 
lee “tal que…” 
Fuente: El Autor
16 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
ANEXO 2: PRESABERES: TEORÍA DE CONJUNTOS 
I. GENERALIDADES: 
Las nociones básicas de la Teoría de conjuntos, son necesarias para el inicio del estudio 
de la Teoría de la Computación. 
Un conjunto es una colección de objetos llamados elementos del conjunto. Si definimos 
un conjunto como A y a es un elemento de ese conjunto A, se usa la notación aA (se 
lee “a es un elemento de A”). Por lo contrario bAindica 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 
característica de un conjunto es dada por sus elementos más 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 autómatas 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 válido 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 a  {a}. 
E conjunto {{a,b}} tiene un único elemento: {a,b} 
Si A y B son conjuntos y todos los elementos de A son también elementos de B, se 
escribe A  B y se dice que A es un subconjunto de B. También 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 A  B y es válido 
afirmar que B no es un subconjunto de A porque los elementos 0,4,5,6,7 no lo son del 
conjunto A. 
Una explicación 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 A  B y B  A simultánameamente, entonces todos los elementos de A 
están en B y todos los elementos de B están en A. Por lo tanto: 
Si A  B y B  A, tenemos que A=B 
Teorema 2. Si A  B y B  C , entonces A  C
17 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Conjunto Vacío: Es llamado también nulo y es aquel que no tiene elementos. Se denota 
como  . El conjunto vacío es un subconjunto de todos los conjuntos; por lo cual es válido 
denotar:   A para todo conjunto A. 
Tamaño de un conjunto: El tamaño de un conjunto es el número de elementos que 
contiene, y se representa como: |A| para un conjunto A. 
Ejemplo 2 El tamaño de {1,2,3,4,5} es 5 
E tamaño 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 
Descripción matemática 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 definición por extensión. muchas veces y para el caso de la Teoría de 
Autómatas que trata este libro, no es posible especificar elementos de un conjunto o 
alfabeto porque el conjunto es infinito y entonces se usa una definición por comprensión, es 
decir, haciendo referencia a otros conjuntos (conjuntos referenciales) y a propiedades que 
los elementos puedan tener. 
A través de desarrollo de la temática, y específicamente para poder describir autómatas, 
lenguajes y leer expresiones regulares, tendremos que aprender a leer funciones de 
transición, 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 proposición sobre x. La notación {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 
proposición verdadera. Ejemplo 4: 
{x | x  y x  7} hace referencia al conjunto {0,1,2,3,4,5,6} 
I.I OPERACIONES CON CONJUNTOS: 
En aritmética básica se pueden trabajar tres operaciones: sumar restar y multiplicar dos 
números. E la teoría de conjuntos existen tres operaciones que son análogas a la suma, 
resta y multiplicación.
18 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Unión de Conjuntos: La unión de conjuntos A y B se denota por A B y es un conjunto 
formado por los elementos que aparecen en A, en B o en ambos: 
AB {x | xa V x B} 
Ejemplo 5: {1,2,3}  {3,4} = {1, 2, 3, 4}. La unión de conjuntos es conmutativa y 
asociativa. 
Intersección de conjuntos: x aparece simultáneamente en A y B 
AB {x | xa  x B} 
La intersección 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 intersección es el conjunto vacío. 
Diferencia de conjuntos: A - B, que contiene los elementos de A que no están en B, esto 
es: 
A  B  {x | xa  x  B} 
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: 
AXB  {(x, y) | x A  y  B} 
Ejemplo 9: {1,2}x{3,4,5} {(1,3), (1,4), (1,5), (2,3), (2,4), (2,5)}
19 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
El tamaño de un producto cartesiano A×B 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: 
Básicamente consiste y son útiles para reemplazar expresiones pro otras equivalentes o 
que tengan el mismo resultado. 
Teorema 3. 
   A  A 
   A  
 Si A  B , entonces A B  A 
 Si A  B , entonces A B  B 
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 operación que les preceda. Algunas propiedades 
derivadas de etas operaciones son: 
 Idempotencia: A A  A ; A A  A 
 Conmutatividad: A B  B  A ; A B  B  A 
 Asociatividad: (AB)C  A(BC) 
(AB)C  A(BC) 
 Distributividad: A(BC)  (AB)(AC) 
A(BC)  (AB)(AC) 
 Absorción: A(AB)  A ; A(AB)  A 
 Leyes de Morgan: 
A B  A B se suele denotar también como: C C C (AB)  A B 
A B  A B se suele denotar también como: C C C (AB)  A B 
 Doble complemento. A A C C ( )  
Ejemplo 10 del uso de estas equivalencias: Usando la unión y el complemento, se puede 
expresar una intersección de conjuntos. C C C C C (AB)  ((AB) )  (A B )
20 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Conjunto Potencia: Se denota como A 2 . La colección de todos los subconjuntos de A es 
a su vez un conjunto llamado conjunto potencia. Al conjunto potencia de A también se le 
suele llamar conjunto de las partes de A y se nota como P(A). 
O de igual forma: 2 {x | x A} A   
Ejemplo 11: 2 { ,{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}} {1,2,3}   
El conjunto vacío siempre forma parte de todo conjunto potencia. La notación A 2 recuerda 
que el tamaño del conjunto potencia de A es 2 elevado a la potencia del tamaño de A, esto 
es, | A 2 | = | | 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 c A contiene los elementos del universo que no están en A. 
Ejemplo 12: Sea U   (El Universo de los números naturales), el complemento de los 
números múltiplos de tres (3) c {3,6,9,12,15,...} = {1,2,4,5,7,8,10,11,13,14, ….}. 
Se concluye que A A U c   para todo conjunto A; además   c A A 
I.III RELACIONES: 
Se derivan del producto cartesiano de conjuntos. Precisamente se llama relación a todo 
subconjunto de un producto cartesiano. En esencia combinaciones de objetos de un 
determinado tipo que están relacionados de alguna forma. 
Relación Binaria: La relación 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 relación 
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 BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Figura 1: Grafo relación binaria 
Fuente:<El autor> 
Se dice que dos elementos a y b están relacionados, y se escribe a R b, “a está 
relacionado con b mediante la relación binaria R”, cuando el par ordenado (a,b) pertenece 
al subconjunto del producto cartesiano que define la relación. 
Ejemplo 14: La relación “≤” contiene los pares de los números naturales tales que el primer 
componente es menor o igual al segundo, esto es, 
≤ = {(1,1),(1,2),(1,3),(1,4),(2,3)…} 
Téngase en cuenta que se llama par ordenado a una pareja de objetos escritos entre 
paréntesis 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: 
(a,b)  {a,b} 
(a,b)  (b,a) 
Sin embargo: {a,b}  {b, a} 
El orden si influye, sin embargo, no todos los subconjuntos del producto cartesiano, 
pueden ser aceptados como la relación de la condición que exprese. Algunas 
características de estas relaciones son: 
Inverso de una Relación: Se llama inverso de una relación R, denotado por 1 R , 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 BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
{( , ) | ( , ) } 1 R  y x x y R  
Ejemplo 15: El inverso de la relación {(1,2),(2,3),(1,3)} es {(2,1),(3,2),(3,1)} 
Propiedades más comunes de las Relaciones Binarias. No se citan olas que se 
derivan de las básicas que se relacionan a continuación. 
Tabla 2: Propiedades comunes de las relaciones binarias 
Propiedad Condición 
Reflexiva R es reflexiva si aA: aRa 
Antireflexiva R es antireflexiva si a A:(aRa) ó aRa 
Simétrica R es simétrica si a,b A: (aRb)(bRa) 
Antisimétrica R es antisimétrica si a,b A: (aRb)(bRa) 
Transitiva R es transitiva si a,b,c A: (aRb)  (bRc)(aRc) 
Fuente: El Autor 
La “Relación” es una característica que se debe aplicar 
Reflexiva: Cada elemento tiene un bucle. Ejemplo 16 Si A = {a,b,cd} y R es una relación 
“ser igual que” o de la forma (x,x) se tiene: R={(a,a),(b,b),(c,c),(d,d)}. 
Figura 2: Una Relación Reflexiva 
Fuente:<El autor> 
Antireflexiva: Ningún elemento tiene un bucle. Ejemplo 17 Si A={1,2,3,4} y R es la relación 
“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 BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Figura 3: Una Relación Antireflexiva. 
Fuente:<El autor> Simétrica: Cada relación 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 Relación Simétrica 
Fuente:<El autor> 
Antisimétrica: Ninguna flecha de ida tiene otra de vuelta, salvo en el caso de los bucles, que están permitidos. Ejemplo 19 Si A = {1, 2, 3, 4} y R es la relación “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 Relación Antisimétrica 
Fuente:<El autor> 
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 relación “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 BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Figura 6: Una Relación Transitiva 
Fuente:<El autor> 
Otra forma de interpretar esta relación dice que siempre que contiene los pares (x,y) y (y, 
z) también contiene (x, z). Por ejemplo, la relación {(1,2), (2,3), (1,1), (1,3)} es transitiva, 
pero {(2,3), (1,2), (1,1)} no lo es. 
Figura 7: Una Relación Transitiva (otra forma de representarla). 
Fuente:<El autor> 
Un caso especial de estas relaciones y equivalencias se da cuando se encuentra una 
relación binaria R definida en un determinado conjunto y que cumple las propiedades 
reflexiva, simétrica y transitiva. Entonces es una “relación 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 relación {(1,2), (2,3), (1,3)} no es una función, 
pero {(1,2), (2,3), (3,3)} sí lo es. 
En conjuntos, la notación 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 función). En Autómatas. 
La función suele denotarse con el símbolo 
25 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Para la teoría de autómatas. Las funciones son vistas desde la perspectiva de lenguajes aceptados, por eso la temática que aborda as funciones en conjuntos como las funciones totales, inyectivas y sobreyectivas, pueden referenciarse en: 
PRIMERA UNIDAD: LENGUAJES REGULARES 
CAPITULO 1: CONCEPTOS BÁSICOS 
Se da inicio a un concepto: Máquinas secuenciales, que hacen parte también del estudio de la teoría de autómatas y que tienen sus inicios en el campo de la Ingeniería Electrónica. El fin de los modelos no es la de describir detalles de los componentes de hardware de un computador, sino de determinar características poco visibles o intangibles de estas máquinas como por ejemplo capacidad de proceso, memoria, procesamiento de datos e información. Es por ello que se han dividido en diferentes áreas de conocimiento este tipo de estudio como por ejemplo: Arquitectura de computadores, Sistemas de información, sistemas Distribuidos lógica Matemática, Ensamble de máquinas, entre otros. 
Iniciamos el estudio de estas maquis abstractas identificando componentes básicos 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 más sencillos mediante operaciones de conjuntos. 
Los Lenguajes más sencillos son los considerados lenguajes regulares, es decir, los que se pueden generar a partir de lenguajes de un elemento con la aplicación de ciertas operaciones estándar realizadas un número finito de veces. 
Estos son pues los lenguajes que pueden reconocer los dispositivos llamados Autómatas finitos (AF) que son máquinas de cómputo con memoria muy restringida. En esta unidad se considera como segundo aspecto la idea de que un lenguaje no sea regular, además de proporcionar un modelo sencillo de computación 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 descripción de un lenguaje a otra descripción de un tipo distinto; se acumula experiencia en el uso de métodos formales para describir lenguajes y se intenta responder a preguntas acerca de ellos, son preguntas y ejercicios
26 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
sencillos con sus respuestas y que permiten determinar la utilidad de los lenguajes regulares en aplicaciones del mundo real. 
LECCIÓN 1: INTRODUCCIÓN E HISTORIA: 
Teoría de la computación: Trata con modelos de cálculo abstractos (máquinas computacionales abstractas). En Teoría de la Computación, a diferencia de las otras materias, (Arquitectura de Computadores, Teoría 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 Teoría de la Computación es bastante interesante. Se ha desarrollado gracias a confluencia, por afortunadas coincidencias, de distintos campos de conocimiento y descubrimientos (fundamentalmente matemáticos) realizados a principios del siglo XX. Bajo el nombre Teoría de la Computación se recogen una serie de materias que constituyen hoy en día los fundamentos teóricos de la Informática: Teoría de Autómatas, Teoría de los Lenguajes Formales, Computabilidad y Complejidad Algorítmica.”1 
Se presenta una concreta evolución histórica de la Teoría de la Computación: 
Tabla 3: Evolución Histórica de la Teoría de la Computación 
EPOCA 
PRECURSORES 
1845 -1918 
COMPUTABILIDAD 
Iniciada por Godel, Church, Post, Turing y Kleene, tiene sus raíces en la Lógica Matemática. Ya se había inventado la Teoría de Conjuntos 
David Hilbert (1845-1918) formuló en 1928, durante el transcurso de un congreso internacional: Si las Matemáticas son completas, consistentes y decidibles. 
1936 
Tesis de Church 
Una de las cuestiones más estudiadas en la Teoría de la Compatibilidad ha sido la posibilidad de construir programas que decidan si un determinado algoritmo posee o no una determinada propiedad. 
1 <NAVARRETE,Isabel. Teoría de Autómatas y lenguajes Formales. Departamento Ingeniería. Universidad de Murcia. P 133. Sept 2008>
27 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Turing 
>Calculan los algoritmos A y B la misma función? (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 función f? (Problema de la verificación) 
1967 
Complejidad Algorítmica 
Trata la dificultad computacional de las funciones computables. Qué quiere decir que una función f sea más difícil de computar que otra función g? Rabin sugirió una axiomática que fue la base para el desarrollo del estudio de medidas de complejidad abstracta de Blum y otros 
1954 - 1969 
Máquinas secuenciales y Autómatas finitos. 
El matemático norteamericano Shanon (que luego se haría famoso por su Teoría de la Información) vino a establecer las bases para la aplicación de la Lógica Matemática a los circuitos combinatorios y posteriormente Huffman en 1954 los amplio a circuitos secuenciales y utiliza conceptos como estado de un autómata y tabla de transición. A lo largo de las décadas siguientes, las ideas de Shanon se desarrollaron considerablemente, dando lugar a la formalización de una Teoría de las Maquinas Secuenciales y de los Autómatas 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 Teoría de la Información. 
1956 en adelante 
Noam Chomsky propone varios modelos para clasificar: Gramáticas y Lenguajes formales. 
Noam Chomsky propone en 1956 tres modelos para la descripción de lenguajes, que son la base de su futura jerarquía de los tipos de lenguajes (1959), que ayudo también en el desarrollo de los lenguajes de programación. Chomsky estableció una clasificacion de gramáticas de acuerdo con el formato de sus producciones y distinguió cuatro clases fundamentales de lenguajes y relaciones de inclusión entre ellas. 
Fuente: El Autor 
Los siguientes recursos web, lo contextualizan en la historia de la temática. Ver estos recursos, resulta digerible a historia que un cúmulo de texto repleto de fechas y estadísticas que se tornan poco comprensibles. Les motivo que los revisen para ubicarse en la medida y alcance de la temática que estaos abordando.
28 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Tabla 4: Recursos web referentes a la historia de la temática. 
DESCRIPCIÓN DE VIDEO 
CANAL 
Tras las huellas de la mente de Alan Turing. La polémica historia de esta brillante mente. Un reto complejo para quienes quieran entender y seguir sus pasos. "Un genio trágico". 
Solo escúchenla y quedarán sorprendidos del legado que Alan Turing ha dejado. 
Historia de Alan Turing. (23 de Junio de 1912 - 7 de Junio de 1954). Matemático inglés. Historia contada al estilo de Diana Uribe. (Historiadora Colombiana a quién admiro y le expreso mi más sentido agradecimiento por contarnos todas las historias que han marcado el rumbo de la humanidad). Le reconozco sus derechos intelectuales por esta narración que comparto a quienes me siguen en este reto de comprender como funcionan las máquinas computacionales. 
http://youtu.be/tO-WgRXKcAo 
Cuéntame una historia. Alan Turing 
http://youtu.be/01LBHqKrVvg 
Charla “El legado de Alan Turing” 
http://youtu.be/nSZZRzj6zPI 
Película que cuenta la historia de un genio controvertido "Alan Turing". Con subtítulos en español. 
http://youtu.be/uoKLtu2Am6k 
DANGEROUS KNOWLEDGE. “Conocimientos peligrosos”. El documental, narrado por David Malone, se centra en la vida de cuatro brillantes matemáticos - Georg Cantor, Ludwig Boltzmann, Kurt Gödel y Alan Turing -, lo que rodeó sus descubrimientos y las reacciones de la comunidad científica hacia ellos, así como la evolución de sus personas hasta el declive. Sus trabajos han llegado a influir enormemente incluso en ámbitos no científicos, o en la perspectiva de como observamos el mundo en general y nuestro pequeño 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 código Eigma”. El trabajo de los criptógrafos. 
http://youtu.be/EVQNosg6wEQ 
Fuente: <El autor> 
LECCIÓN 2. - ALFABETOS, CADENAS Y LENGUAJES 
Procedamos a definir componentes de un lenguaje, independiente de la jerarquía o estructura a que pertenezcan, como lo veremos más adelante: 
Definición1. Un Alfabeto es un conjunto finito A. Sus elementos se llamaran símbolos o letras. 
Para denotar el alfabeto se usara el símbolo Σ o en algunos casos se especificaran con las primeras letras mayúsculas del abecedario, dependiendo como se formule el
29 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
problema. Los símbolos de un alfabeto pueden ser números, letras, entre otros y suelen 
estar escritos en minúsculas. 
Ejemplo: Sea A = {0,1} indica el Alfabeto A compuesto por los símbolos 0,1 
No hay que confundir los símbolos del alfabeto B con los símbolos del lenguaje (o más 
precisamente meta-lenguaje) que usamos para expresarnos todos los días. Son dos cosas 
totalmente distintas. Nosotros para comunicarnos usamos un lenguaje que tiene unos símbolos 
que son las letras del alfabeto latino, los números, las letras del alfabeto griego, y una serie de 
símbolos especiales propios del lenguaje matemático (el meta-lenguaje). Con este lenguaje 
también definimos los conceptos de alfabeto y símbolo. 
Definición2. Una palabra o cadena sobre un alfabeto Σ es una sucesión finita de 
elementos de Σ. Se suele denotar con la letra omega  
Se concluye que  es una palabra sobre Σ, si y solo si U a ....an 1  donde 
a i n i , 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 *  
Definición3. Si *   entonces la longitud de la palabra  es el número de símbolos de 
Σ que contiene. 
La longitud de  se denota | |. Es decir si n a ....a 1   entonces | | = n 
Definición4. La palabra vacía es la palabra de longitud cero. Es la misma para todos los 
alfabetos y se denota como  
Definición5. Al conjunto de todas las palabras o cadenas sobre el alfabeto Σ en las que 
se excluya la cadena vacía  se denota como:   
Tabla 5: Recursos web para alfabetos, cadenas y lenguajes. 
DESCRIPCIÓN DE VIDEO 
CANAL 
CANAL 
Descripción de Lenguaje, Alfabeto 
y expresión regular. 
http://youtu.be/DnNT1dF4keQ 
http://www.veoh.com/watch/v616083236Thn5HJn 
Fuente: <El autor>
30 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS 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 concatenación: 
Ejemplo 22 Para definir la concatenación: Dada las siguientes cadenas , formadas desde 
el alfabeto Σ : 
Concatenación: Si n n , , a .....a , b .....b 1 1 
*        , se llama concatenación de  y 
 a la cadena . (o simplemente  ) dada por n m a .....a b .....b 1 1 . Nótese que la 
concatenación puede denotarse por un punto en medio de las dos cadenas. 
Propiedades de la concatenación: Algunas de ellas son: 
 * |. || |  | |,,  
 Asociativa: * .(. )  (.). ,,,  
 Elemento neutro: * . . ,  
Otras propiedades derivadas de la concatenación se referencian así: 
Si *   entonces    0 y . , 1    i i   para todo i  0 
Se define una cadena inversa así: 
Si * 
1 ...  n  a a entonces la cadena inversa de  es la cadena * 
1 
1  ...   a a n  
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 jerarquía que se verá 
en la siguiente lección) sobre el alfabeto Σ 
Ejemplo 23 Lenguajes: la forma de describir un lenguaje se muestra en los siguientes ejemplos: 
{ , , , } 1 L  a b c  Lenguaje uno compuesto por los símbolos a,b,c de un determinado 
alfabeto incluyendo la cadena vacía.
31 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
{ | 0,1,2...} 2 L  a b i  i i Lenguaje dos compuesto por las palabras formadas de una 
sucesión de símbolos a, seguida de la misma cantidad de símbolos b. 
{ | } 1 * 
3     L    Lenguaje tres compuesto por las palabras formadas con símbolos 
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 unión e intersección de lenguajes, 
dada la condición de conjuntos que tienen estos lenguajes, entonces aplica también las 
operaciones de concatenación. 
La concatenación de dos lenguajes está dada por la siguiente expresión: dados L1 y L2 
(dos lenguajes sobre el alfabeto Σ) 
{ | , } 1 2 1 2 1 1 2 2 L L    L  L 
Algunas propiedades se definen como. 
 Asociativa: 1 2 3 1 2 3 L (L L )  (L L )L 
 Elemento Neutro: {}L  L{}  L 
 L =  L =  (Lenguaje que contiene cero palabras o cadenas) 
 { } 0 L   
 L L L i i  1 
 i 
i 
L L 
0 
* 
 
 Clausura o estrella de Kleene de un lenguaje L es el lenguaje obtenido 
de acuerdo a esa expresión. 
 i 
i 
L L 
1 
  Obtención de un lenguaje con la operación L+ 
 L  L si L   * 
 L  L  si L  {}  *
32 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
LECCIÓN 3. AUTÓMATAS Y LENGUAJES 
Un aspecto a definir y diferenciar cuando se inicia el estudio de Lenguajes y Gramáticas, es la diferencia que existe entre los lenguajes naturales (LN) y los lenguajes de programación (LP). 
Los (LP) se rigen por reglas de sintaxis y semántica más complejas y definidas y que finalmente son manejadas por los computadores. En los lenguajes naturales (LN), estos no están tan definidos ni delimitados, ya que están controlados por reglas gramaticales que evolucionan y derivan nuevos lenguajes. 
Gracias a las estructuras definidas de los lenguajes de programación (LP) (las reglas gramaticales (sintaxicas y semánticas) han posibilitados la construcción de traductores automáticos para estos lenguajes. Algunas definiciones que contextualizan estas temáticas referencian a los Compiladores como software que traduce un programa escrito en un determinado lenguaje de programación a otro lenguaje de programación, con el objeto de generar u programa equivalente que una máquina computacional pueda interpretar para podérselo mostrar al usuario. 
“En ciencias de la computación, intérprete o interpretador es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.”2 
El proceso de traducción 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 traducción. 
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 BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Figura 8: Proceso de traducción realizado por un compilador 
Fuente:<El autor> 
LECCIÓN 4. LENGUAJES REGULARES 
Entramos a clasificar los lenguajes. Ya que los lenguajes en sí son conjuntos de secuencias de símbolos y cada uno comparte una cierta propiedad. La clasificación de estos lenguajes se dio en 1959, cuando N. Chomsky propuso una jerarquía de lenguajes, donde las clases más complejas incluyen a las más simples. 
En realidad lo que clasificó Chomsky en cuatro familias, fueron gramáticas (téngase en cuenta que de acuerdo a las reglas de producción de estas gramáticas, estas generan determinados lenguajes). Si se tiene una gramática G = VN, VT, S, P) se clasifican las gramáticas y los lenguajes generados ´por ellas de la siguiente forma:
34 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Figura 9: Clasificación de los Lenguajes. Jerarquía de Chomsky. N 
Fuente:<El autor> 
TIPO 3: (Gramáticas regulares). Los Lenguajes generados por estas gramáticas se 
llaman “Lenguajes Regulares”, y el conjunto de todos estos lenguajes es la clase L3, que 
es la clase más pequeña, e incluye a los lenguajes más simples. Un ejemplo de lenguaje 
regular es el conjunto de todos los números pares enteros positivos. 
Estas gramáticas 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 →  
dónde: A,C  VN y b  VT 
 Lineales por la Izquierda: Todas las producciones son de la forma: 
A → Cb 
A → b 
A →  
Para cada Gramática lineal por la derecha existe una Gramática lineal izquierda que 
genera el mismo lenguaje y viceversa. 
Los Lenguajes Regulares son lenguajes formales que tienen estas características:
35 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
 Puede ser descrito mediante una expresión regular (expresar de forma compacta 
cómo son todas las cadenas de símbolos que le pertenecen). 
 Puede ser generado mediante una gramática regular (obtener todas las cadenas 
de símbolos que le pertenecen). 
 Puede ser reconocido mediante un autómata finito (saber si una cadena de 
símbolos pertenece a él o no) 
TIPO 2: (Gramáticas libres del contexto). Las producciones son de la forma: 
A →  
donde: A  VN y   (VN U VT)* 
Los lenguajes generados por este tipo de gramáticas se llaman lenguajes libres del 
contexto y la clase es L2, que incluyen a los Lenguajes Regulares. Por ejemplo, la mayoría 
de los lenguajes de programación son Lenguajes Libres de Contexto. 
TIPO 1: (Gramáticas 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 gramáticas de tipo 1 se llaman lenguajes sensibles al 
Contexto y su clase es L1: 
TIPO 0: (Gramáticas con estructura de frase) Son las gramáticas más generales, que por 
ello también se llaman gramáticas 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 vacío 
Los lenguajes generados por estas gramáticas son los lenguajes con estructura de frase, 
que se agrupan en la clase L0: Estos lenguajes también se conocen en el campo de la 
Teoría de la Compatibilidad como lenguajes recursivamente enumerarles.
36 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
La siguiente tabla muestra la asociación de las gramáticas con el lenguaje que genera y el 
tipo de máquina abstracta que la trabaja: 
Tabla 6: Asociación de gramáticas, lenguaje y máquinas. 
GRAMÁTICAS LENGUAJES MAQUINAS 
Regular o de Tipo 3 Regular o de Tipo 3 Autómatas Finitos 
Libre de contexto o de Tipo 2 Libre de contexto o de Tipo 2 Autómatas de Pila 
Sensible al contexto o de Tipo 
1 
Sensible al contexto o de Tipo 
1 
Autómatas linealmente 
acotados 
Sin Restricciones o de Tipo 0 Sin Restricciones o de Tipo 0 Máquinas de Turing (MT). 
Fuente:<El autor> 
Cuanto menor es el tipo, mayor es el poder expresivo del lenguaje generado y más 
complejidad tiene su tratamiento por parte de una máquina. 
Finalmente se define un Teorema 4: (Jerarquía 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 
gramática de tipo i. La clase o familia de lenguajes de tipo i se denota por Li. 
LECCIÓN 5. AUTÓMATA 
La palabra autómata evoca algo que pretende imitar las funciones propias de los seres 
vivos, especialmente relacionadas con el movimiento, por ejemplo el típico robot 
antropomorfo. Un ejemplo de una “maquina real” que automatiza un proceso puede ser 
una máquina empacadora de algún producto que se fabrique en serie y con una serie de 
instrucciones, pasos y características definidas e iguales para cada salida (producto final).
37 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
En el campo de los Traductores, Procesadores, Compiladores e Intérpretes, lo fundamental no es la simulación del movimiento, sino la simulación de procesos para tratar información. Este es el enfoque dado a la temática de este curso. 
Las maquinas que se estudiarán son abstracciones matemáticas 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 analogía). 
La información se codifica en cadenas de símbolos, y un autómata es un dispositivo que manipula cadenas de símbolos que se le presentan a su entrada, produciendo otras tiras o cadenas de símbolos a su salida. 
El autómata recibe los símbolos de entrada, uno detrás de otro, es decir secuencialmente. El símbolo de salida que en un instante determinado produce un autómata, no sólo depende del último símbolo recibido a la entrada, sino de toda la secuencia o cadena, que ha recibido hasta ese instante. 
En esta parte estudiaremos las maquinas abstractas más simples, los autómatas finitos, las cuales están en relación con los lenguajes regulares 
Todo lo anterior conduce a definir un concepto fundamental: estado de un autómata que trata la temática de “modelado de sistemas discretos”. La noción más básica de los modelos de eventos discretos es la de estado. Un estado es una situación en la que se permanece un cierto lapso de tiempo. 
Se expresan los modelos de estados y eventos de manera gráfica. (En la Tabla 1: Símbolos usados encontrará una descripción gráfica 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 triángulo o flecha y un estado final o de aceptación (halt) mediante doble círculo. 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 diseño de los modelos que estamos estudiando, pues “recuerdan” las situaciones básicas por las que pasa el proceso. 
Algunas características de diseño 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 simultáneamente.
38 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
 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 más 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. 
MÁQUINA DE ESTADOS FINITOS: Describimos ahora las ”maquinas abstractas” de acá en adelante para el curso y les identificamos los siguientes componentes: 
Figura 10: Máquina de estados. Estructura 
Fuente:<El autor> 
 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 símbolo lo “lee” y manda esta
39 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
información al control (digámoslo así controlado por unas reglas o producciones). El recorrido puede ser a izquierda o derecha según el diseño de la máquina. 
La “aguja” del control puede estar cambiando de posición, (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 construcción de autómatas. 
DESCRIPCIÓN DE VIDEO 
CANAL 
CANAL 
Construcción, diseño e interpretación de los componentes de un autómata (tuplas) 
http://youtu.be/HF9-e28TWb0 
http://www.veoh.com/watch/v61609207mprr4pFS 
Fuente: <El autor> 
CAPITULO 2. AUTÓMATAS FINITOS 
Los autómatas finitos son capaces de reconocer solamente, un determinado tipo de lenguajes, llamados Lenguajes Regulares, que pueden ser caracterizados también, mediante un tipo de gramáticas llamadas también 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 gramáticas y sus reglas de producción. 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 capítulo, identificamos los componentes de los autómatas, antes de llegar a caracterizar los lenguajes que estos puedan generar. 
LECCIÓN 6. DEFINICIÓN FORMAL DE AUTÓMATAS FINITOS 
La definición formal implica presentar en un formato matemático (no en gráficos o ilustraciones) los componentes de un autómata y la información de un diagrama de estados. 
“Los símbolos y notaciones matemáticas usados, serán los que durante todo el desarrollo del contenido se aplicarán para describir matemáticamente estas máquinas. Otros autores usan otra
40 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
simbología, que solo difiere en la forma mas no en la interpretación de las definiciones formales de 
estas máquinas. Se ha estandarizado las simbología más sencilla para efectos de didáctica e 
interpretación” 
Definición 6: Una máquina de estados finitos M es un quíntuplo ( 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 función de transición, que a partir de un estado y un símbolo 
del alfabeto obtiene un nuevo estado. 
REPRESENTACIÓN DE AUTÓMATAS: Los autómatas 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á más adelante en la lección de 
Expresiones Regulares). Ejemplo 24 Se puede representar el autómata 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 función δ : {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
41 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
La tabla de transición correspondiente a este autómata será: 
Figura 11: Tabla de transición de un Autómata Finito. 
Diagramas de Moore: Los diagramas de Moore son otra forma de representar las funciones de transición y salida de un autómata. 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 estaría definido así: 
Figura 12: Diagrama de Moore para un Autómata Finito. 
Tabla 8: Recursos web para diagramas de Moore. 
DESCRIPCIÓN DE VIDEO 
CANAL 
CANAL 
Construcción y diseño de autómatas, Diagramas de Moore, tablas de transición. 
http://youtu.be/3kWdHOLw-AQ 
http://www.veoh.com/watch/v6168933229Fx8G4A 
Fuente: <El autor>
42 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
FUNCIONAMIENTO DE LOS AUTÓMATAS 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 fácilmente en los diagramas de 
estados. Simplemente hay que pasar de estado a estado siguiendo las flechas de las 
transiciones, para cada carácter de la palabra de entrada, empezando por el estado 
inicial. Para el ejemplo de la Figura 12 y la palabra de entrada 101 el autómata inicia su 
operación en el estado q0 (estado inicial) y al recibir el primer símbolo el 1 , pasa al 
estado final q2 (podría decirse que allí finalizaría pero faltan por evaluar dos símbolos más 
de la cadena o palabra ) luego del estado q2 regresa al estado q1 cuando entra el símbolo 
0 y para el siguiente símbolo 1 se cambia de estado al q2 llegando a un estado de 
aceptación 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 demás estados no 
hayan intervenido, no quiere decir un diseño errado en la Máquina M (autómata). 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 leído hasta el momento); esto quiere decir 
que son máquinas de memoria limitada. En última instancia, las computadoras digitales 
son máquinas de memoria limitada, aunque la cantidad de estados posibles de su 
memoria podría ser enorme. 
LECCIÓN 7. AUTÓMATAS FINITOS DETERMINÍSTICOS (AFD) 
La definición dada en la Lección 6, corresponde a los autómatas finitos deterministas, 
abreviado “AFD”. 
Es importante definir el porqué del “determinismo” y para ello enfoquémonos en el papel 
o cómo se interpreta la función de transición  : La función de transición indica a qué 
estado se va a pasar sabiendo cuál es el estado actual y el símbolo que se está leyendo. 
No es simplemente una “relación” lo que implica que para un estado y un símbolo del 
alfabeto dados, habrá un y solo un estado siguiente. 
En otras palabras la característica de “determinismo” es la que perite saber siempre y 
después de una transición, cuál será el siguiente estado.
43 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
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. 
Cómo es inicializado el autómata: En la figura 10 podemos verificar como se inicializa: 
1.  se coloca en la cinta de entrada, con un símbolo en cada celda. (en este caso  es 
aaabab ) 
2. el cabezal de lectura se apunta al símbolo más a la izquierda de  . En este caso el 
símbolo a 
3. el estado actual pasa a ser q0 
Ciclo de ejecución básico del autómata: Como cualquier computador, una vez se ha 
inicializado, comienza la ejecución desde la palabra de entrada  . 
1. se lee el símbolo actual, que es el apuntado por el cabezal de lectura. Si el cabezal 
apunta a una celda vacía entonces el AFD termina su ejecución, aceptando la palabra 
en caso de que el estado actual sea final y rechazando la palabra en caso contrario. 
Esto ocurre cuando se ha leído toda la palabra de entrada, y se produce una situación 
similar a tener una condición “fin de chero" en la ejecución de un programa 
2. se calcula el estado siguiente a partir del estado actual y del símbolo actual según la 
función de transición, esto es,  (estado actual; símbolo 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 Autómata M Finito determinista: M =(K, Σ, q0, δ, F) donde: 
K = {q0, q1, q2, q3} Σ = {x,z} q0 Es el estado Inicial F = q3 
donde la función de transición 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 δ (q3 , z ) = q2 δ (q3 , x ) = q1
44 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
La tabla de transición correspondiente a este autómata será: (tabla generada en el simulador Visual Autómata Simulator VAS 3) 
Figura 13: Tabla de transición para un Autómata Finito generado con software simulador VAS. 
y el diagrama de transición (moore) correspondiente será: 
Figura 14: Diagrama de Moore asociado a un AFD. 
El diagrama de transición de un AFD tiene por cada nodo un solo arco etiquetado con cada uno de los símbolos del alfabeto. 
Algunas condiciones para que estos autómatas sean válidos son: 
 el diagrama de transición de un AFD tiene por cada nodo un sólo arco etiquetado con cada uno de los símbolos del alfabeto. 
33 VAS. Visual Autómata Simulator. Disponible en internet <http://www.vas.org>
45 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
 Otra condición es que debe haber exactamente un estado inicial. 
 la cantidad de estados finales puede ser cualquiera, inclusive cero (para algunos 
modelos), hasta un máximo de |K| (la cantidad de estados). 
De manera general, si un AFD se encuentra en un estado q y recibe un símbolo  pasa al 
estado q" si  (q,  ) = q" , esto es, si ((q,  ), q" ) 
Algunas definiciones matemáticas relacionadas a los AFD son: 
Definición 7: Si M = (K, Σ,  , s, F) es un autómata de estado finito, entonces una 
configuración es un elemento del producto cartesiano K x Σ* 
Entiéndase por configuración un par (q, ) donde q es un estado y  una palabra. En este 
orden q será el estado en el que se encuentra el autómata y  lo que queda por leer en 
un momento dado. 
Definición 8: Si M = (K, Σ,  , s, F) es un autómata finito determinista y   Σ* es una 
palabra, entonces se llama configuración inicial asociada a es apalabra a la configuración 
(q0,  ). 
Esto se explica indicando que la configuración inicial indica que estamos en el estado 
inicial y nos queda por leer toda la palabra  . 
Definición 9: Esta definición hace referencia a definir la relación o el paso que se da en 
un autómata entre dos configuraciones: 
Si M = (K, Σ,  , s, F) es un autómata finito determinista y (p,  ) , (q,  ) son dos 
configuraciones, decimos que puede pasar de (p,  ) a (q,  ) en una secuencia de 
cálculo, lo que se denota como (p,  ) ├ (q,  ) si y solo si  = a , donde a  Σ y  
(p,a) = q. 
LECCIÓN 8. AUTÓMATAS FINITOS NO DETERMINÍSTICOS (AFND) 
Una extensión a los autómatas finitos deterministas es la de permitir que de cada nodo del 
diagrama de estados salga un número de flechas mayor o menor que Así, se puede 
permitir que falte la flecha correspondiente a alguno de los símbolos 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
46 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
palabra vacía. A estos autómatas finitos se les llama no Determinísticos o no 
deterministas (abreviado AFND). Al retirar algunas de las restricciones que tienen los 
autómatas finitos Determinísticos, su diseño para un lenguaje dado puede volverse más 
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 autómatas finitos no Determinísticos (AFND) aceptan exactamente los mismos 
lenguajes que los autómatas determinísticos. Sin embargo, serán importantes para 
demostrar teoremas y por su más 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 determinístico. Una versión en 
principio más potente es un AFND, donde frente a un estado actual y un siguiente 
caracter, es posible tener cero, uno o más estados siguientes. 
La configuración en quíntupla de elementos es la misma que las de un AFD (Lección 6), 
excepto la función de transición 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 símbolo 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 también se representan mediante tablas o diagramas de 
transición. En el diagrama de transición, el no determinismo se descubre porque hay 
algún nodo del que parten dos o más arcos etiquetados con el mismo símbolo del 
alfabeto, o falta algún arco para algún símbolo del alfabeto. En la Figura 15 podemos ver 
un ejemplo de tabla y diagrama de transición de un Autómata Finito No Determinista 
(AFND). 
El AFND de la figura 15 se describe formalmente como: M = (Σ, K,  , q1 , F) donde 
Σ = {a,b}, F = {q 4 } s = {q1} y K = {q1 , q 2 , q3 , q 4 }, y la función (que también se puede 
describir así) está dada por:
47 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
 = {(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 
DESCRIPCIÓN DE VIDEO 
CANAL 
CANAL 
Lenguaje aceptado por un 
Autómata. Tablas de transición y 
descripción de autómata finito. 
http://youtu.be/eWUfPJD9A_0 http://www.veoh.com/watch/v61683101FNRSfxSP 
Fuente:<El autor> 
LECCIÓN 9. AUTÓMATA FINITO CON  TRANSICIONES 
(AFND- ) básicamente es un AFND al que s ele permite cambiar de un estado sin 
necesidad de consumir o leer un símbolo de la entrada. La función de transición está 
definida como: 
 : K x (Σ U { }) →  (K) 
La tabla de transición de un AFND-  es como la de un AFND excepto que se le añade 
una columna correspondiente a  , de forma que en la posición T[(q,  )] estará el 
conjunto de estados que determine  (q,  ).
48 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Si se tiene un AFND- representado en su diagrama de transición en la figura 16, si se 
evalúa el estado q6 y el símbolo actual que guarda en memoria ese estado es cero (0), el 
autómata puede decidir en forma “no determinista” entre leer la cadena vacía y llegar al 
estado q7 conservando el símbolo 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 -  
LECCIÓN 10. LENGUAJE ACEPTADO POR UN AF 
Los AF reconocen cierto tipo de lenguajes, pero esto depende de la configuración del 
autómata. Esta configuración viene dada por el instante del autómata en un momento 
dado y la porción de cadena de entrada que le queda por leer (no la cadena completa). 
La configuración de un autómata finito (AF) es un elemento (q,  ) (K x Σ*) está dada 
por: 
 Configuración inicial: (q0,  ) donde q0 es el estado inicial y  la palabra de 
entrada. 
 Configuración de parada: cualquier configuración en la que el autómata puede 
parar su ejecución, bien porque se haya procesado toda la entrada o bien porque 
se haya llegado a una situación donde no es aplicable ninguna transición.
49 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
 Configuración de aceptación: (qF,  ) donde qF, es un estado final del autómata. 
Una vez alcanzada esta configuración el autómata 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 
autómata (los que tienen doble círculo en los diagramas, o que son parte del conjunto F 
en la representación 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. 
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 autómata 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 Autómata”, se está 
haciendo referencia a describir de manera general, matemática y explícitamente en texto 
combinado, que palabras o cadena se pude aceptar esa máquina: 
L(M) = {  │alguna propiedad de  } 
Ejemplo 28 ; Dado el siguiente AFD M = (Σ, K,  , q0, F) donde
50 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Σ = {a,b}, F = {q2} s = {q0} y K = {q0, q1 , q 2 } y representado en el diagrama de estados 
de la figura 17. 
Figura 17: Lenguaje asociado a un AFD 
El autómata reconoce el lenguaje: 
L = {  {a,b}* │ = abia, i ≥ 0 } 
Y se interpreta así: El autómata 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 más b´s y que finalizan 
con una a. 
Tabla 10: Recursos web para cadenas válidas 
DESCRIPCIÓN DE VIDEO 
CANAL 
CANAL 
Lenguaje aceptado por un 
Autómata (AF). Como se debe 
describir el lenguaje que 
representa. 
Cadenas o palabras que acepta 
un autómata. 
http://youtu.be/QdRlbzVsvLQ 
http://youtu.be/ASg_ZUXgvZk 
http://www.veoh.com/watch/v61610759jHdGRr59 
http://www.veoh.com/watch/v61698636anxKfprR 
Fuente:<El autor>
51 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
CAPITULO 3: EXPRESIONES Y LENGUAJES REGULARES 
LECCIÓN 11. LENGUAJES REGULARES Y EXPRESIONES REGULARES 
Los Lenguajes regulares son los más simples y restringidos dentro de la jerarquía de 
Chomsky. Estos lenguajes pueden además ser descritos mediante dos representaciones 
que veremos: las Expresiones Regulares y las Gramáticas Regulares que serán los temas 
a tratar en las siguientes lecciones. También 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, también se obtiene un lenguaje regular. L1 U L2 = L3 
Definición 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 unión o la concatenación de otros lenguajes regulares R1 y R2, 
L = R1 U R2 o L = R1R2 respectivamente 
 L es la cerradura de Kleene de algún lenguaje regular, L = R*. 
LECCIÓN 12. SIGNIFICADO DE LAS EXPRESIONES REGULARES 
Una expresión regular (ER) es una notación normalizada para representar lenguajes 
regulares, es decir, lenguajes generados por gramáticas de tipo 3. Las expresiones 
regulares permiten describir con exactitud y sencillez cualquier lenguaje regular. Para 
definir una ER se pueden utilizar todos los símbolos del alfabeto Σ y, además  y  . Los 
operadores que también se pueden utilizar son: 
+ representa la unión. 
 representa la concatenación (este símbolo no se suele escribir). 
* representa el cierre de Kleene 
( ) modifican las propiedades de los demás operadores.
52 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Una ER también se define bajo los siguientes criterios: (Se muestran también los 
lenguajes que describen estas ER) 
1.  es una ER que representa el lenguaje vacío (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  +  también lo es y representa al lenguaje 
L +  = L U L 
5. Si  y  son ER entonces   también lo es y representa al lenguaje 
L  = L L 
6. Si  es una ER entonces  * también 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 paréntesis, de forma análoga a como se hace con 
las expresiones aritméticas. 
Ejemplo 29 aa+b*a es una ER sobre el alfabeto Σ={a,b} (nótese que por 
simplicidad se ha omitido el operador ▪ ) Esta Er es distinta de la ER (aa + b*)a. 
Un ejemplo de una ER no válida: La cadena (+a*ba) no es una ER. 
Ejemplo 30 Dado Σ = {0,1} y la ER  = 0*10* analizando las propiedades de 
concatenación 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 continuación enumeramos una serie de propiedades que cumplen las expresiones 
regulares, derivadas de las propiedades de las operaciones con lenguajes:
53 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Figura 18: Propiedades de las ER 
Fuente: <NAVARRETE, I; Teoría de Autómatas y Lenguajes Formales> 
Una propiedad de inclusión 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 combinación 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 (ac│b)* es representada en la figura 19: (Nótese que acepta la cadena  
Figura 19: ER representada en una máquina de estados (ac│b)* 
4. 00 es una ER con el Lenguaje asociado {00} 
5. 01* + 0 es una ER que denota el Lenguaje L = {01i : i ≥ 0 }
54 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD 
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA 
MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
6. (1 + 10)* representa el lenguaje de las cadenas que comienzan por 1 y no tienen 
dos ceros consecutivos. 
7. (0 + 1 )* 011 representa el lenguaje de las cadenas que terminan en 011 
8. 0* 1* representa el lenguaje de las cadenas que no tienen un 1 antes de un 0 
9. Si Σ = {a,b,c} y si (a +  ) b* es una ER que denota el Lenguaje 
L = {ai bj : i = 0,1 : j ≥ 0 } 
LECCIÓN 13. AUTÓMATAS FINITOS Y EXPRESIONES REGULARES 
Hasta ahora, la relación entre los autómatas finitos y las expresiones regulares se ha 
tratado de una manera intuitiva. Ahora formalizaremos dicha relación probando que para 
cualquier expresión regular exista un autómata finito equivalente. Lo que se establece 
ahora con un teorema fundamental en el estudio de los Autómatas: 
Teorema5 de Kleene: Un lenguaje es regular si y sólo si es aceptado por algún autómata 
finito. 
Hasta ahora hemos confirmado como las, ERs, AFDs y AFNDs son mecanismos 
equivalentes para denotar los lenguajes regulares. 
CONVERSIÓN DE ER a AF: Vamos a establecer unas condiciones útiles para 
transformar una expresión regular en autómata finito y viceversa. El objetivo es hacer una 
transformación gradual que vaya convirtiendo la ER en AF. Para hacer la transformación 
gradual de ER a AFN se requiere utilizar alguna representación de los lenguajes regulares 
que sea intermedia entre las ER y los AFN. 
Para ello se usan las gráficas de transición (GT). Estas últimas son esencialmente 
AFND en que las etiquetas de las flechas tienen expresiones regulares, en lugar de 
palabras. Entonces se definen las gráficas de transición (GT) así: son por lo tanto 
quíntuplos 
M = (Σ, K,  , q1 , F) donde  K x ER x K 
La figura 20 ilustra un ejemplo de GT.
55 
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 
Figura 20: Gráfica de transición (GT) 
En este ejemplo en particular se evidencia que se debe aceptar palabras que tienen primero una sucesión de a‟s, luego repeticiones de ab, y finalmente repeticiones de b‟s. 
La función completa estaría dada por: 
({q0, q1}, {a, b}, {(q0, a, q0), (q0, (ab)*, q1), (q1, b, q1)}, q0, {q1}) 
Los AFN son un subconjunto propio de las GT, puesto que las palabras en las etiquetas de un AFN pueden ser vistas como expresiones regulares que se representan a sí mismas. 
Figura 21: Operadores básicos de conversión de AF a ER
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares
Unidad 1 lenguajes regulares

Más contenido relacionado

La actualidad más candente

Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interprete
perlallamas
 
Electrónica digital: Comparadores
Electrónica digital: ComparadoresElectrónica digital: Comparadores
Electrónica digital: Comparadores
SANTIAGO PABLO ALBERTO
 
Aplicaciones de Autómatas y Lenguajes Formales
Aplicaciones de Autómatas y Lenguajes FormalesAplicaciones de Autómatas y Lenguajes Formales
Aplicaciones de Autómatas y Lenguajes Formales
Moises Benzan
 
GRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUASGRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUAS
Alejandro Bolaños Ussa
 
Características arduino uno
Características arduino unoCaracterísticas arduino uno
Características arduino uno
Adriano Ayala Cordova
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibrida
gabo
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
LuiS YmAY
 
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasTopicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
José Antonio Sandoval Acosta
 
Registros de la cpu
Registros de la cpuRegistros de la cpu
Registros de la cpu
jomapuga
 
Diferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuencialesDiferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuenciales
Wilfred Garcia Diomeda
 
Protocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemProtocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modem
Mirna L. Torres Garcia
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
Instituto Tecnológico de Tuxtla Gutiérrez
 
Características del convertidor analógico digital
Características del convertidor analógico digitalCaracterísticas del convertidor analógico digital
Características del convertidor analógico digital
Sandra Olmos
 
Puerto Serial o RS 232
Puerto Serial o RS 232Puerto Serial o RS 232
Puerto Serial o RS 232
ITST - DIV. IINF (YASSER MARÍN)
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
ROSA IMELDA GARCIA CHI
 
Lenguajes libre de contexto
Lenguajes libre de contextoLenguajes libre de contexto
Lenguajes libre de contexto
Verónica Es'Loo
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacion
jorge severino
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARES
Anel Sosa
 
Automatas y gramaticas
Automatas y gramaticasAutomatas y gramaticas
Automatas y gramaticas
Gabriel Romero Pastrana
 
Filtro pasa banda pasivo
Filtro pasa banda pasivoFiltro pasa banda pasivo
Filtro pasa banda pasivo
Alejandro Flores
 

La actualidad más candente (20)

Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interprete
 
Electrónica digital: Comparadores
Electrónica digital: ComparadoresElectrónica digital: Comparadores
Electrónica digital: Comparadores
 
Aplicaciones de Autómatas y Lenguajes Formales
Aplicaciones de Autómatas y Lenguajes FormalesAplicaciones de Autómatas y Lenguajes Formales
Aplicaciones de Autómatas y Lenguajes Formales
 
GRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUASGRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUAS
 
Características arduino uno
Características arduino unoCaracterísticas arduino uno
Características arduino uno
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibrida
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
 
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasTopicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
 
Registros de la cpu
Registros de la cpuRegistros de la cpu
Registros de la cpu
 
Diferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuencialesDiferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuenciales
 
Protocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemProtocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modem
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
Características del convertidor analógico digital
Características del convertidor analógico digitalCaracterísticas del convertidor analógico digital
Características del convertidor analógico digital
 
Puerto Serial o RS 232
Puerto Serial o RS 232Puerto Serial o RS 232
Puerto Serial o RS 232
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Lenguajes libre de contexto
Lenguajes libre de contextoLenguajes libre de contexto
Lenguajes libre de contexto
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacion
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARES
 
Automatas y gramaticas
Automatas y gramaticasAutomatas y gramaticas
Automatas y gramaticas
 
Filtro pasa banda pasivo
Filtro pasa banda pasivoFiltro pasa banda pasivo
Filtro pasa banda pasivo
 

Similar a Unidad 1 lenguajes regulares

Autómatas
AutómatasAutómatas
Autómatas
Cecilia Loeza
 
PLC y Electroneumática: Automatismos industriales
PLC y Electroneumática: Automatismos industrialesPLC y Electroneumática: Automatismos industriales
PLC y Electroneumática: Automatismos industriales
SANTIAGO PABLO ALBERTO
 
Memoria dinámica en el lenguaje de programación c
Memoria dinámica en el lenguaje de programación cMemoria dinámica en el lenguaje de programación c
Memoria dinámica en el lenguaje de programación c
juan perez
 
metrologia.pdf
metrologia.pdfmetrologia.pdf
metrologia.pdf
luis569775
 
Metrologia
MetrologiaMetrologia
Metrologia
daniel106790
 
2733 metrologia
2733 metrologia2733 metrologia
Manual de multímetro egatronik
Manual de multímetro egatronikManual de multímetro egatronik
Manual de multímetro egatronik
ghildamm
 
Marco común europeo de referencia para las lenguas. aprendizaje, enseñanza, e...
Marco común europeo de referencia para las lenguas. aprendizaje, enseñanza, e...Marco común europeo de referencia para las lenguas. aprendizaje, enseñanza, e...
Marco común europeo de referencia para las lenguas. aprendizaje, enseñanza, e...
Marcela Spezzapria
 
Marco comun europeo referencia lengua scvc mer[1]
Marco comun europeo referencia lengua scvc mer[1]Marco comun europeo referencia lengua scvc mer[1]
Marco comun europeo referencia lengua scvc mer[1]
Maria Hernandez
 
Cvc mer
Cvc merCvc mer
Common European Framework
Common European FrameworkCommon European Framework
Common European Framework
adrarios1
 
Common European Framework
Common European FrameworkCommon European Framework
Common European Framework
GMMMC
 
Marco Común Europeo de Referencia para las Lenguas: Aprendizaje, Enseñanza, E...
Marco Común Europeo de Referencia para las Lenguas: Aprendizaje, Enseñanza, E...Marco Común Europeo de Referencia para las Lenguas: Aprendizaje, Enseñanza, E...
Marco Común Europeo de Referencia para las Lenguas: Aprendizaje, Enseñanza, E...
Language Center UFPS Ocaña
 
Marco comun europeo referencia lengua scvc mer[1]
Marco comun europeo referencia lengua scvc mer[1]Marco comun europeo referencia lengua scvc mer[1]
Marco comun europeo referencia lengua scvc mer[1]
Maria Hernandez
 
Apuntes electrónica digital
Apuntes electrónica digitalApuntes electrónica digital
Apuntes electrónica digital
jose66ma
 
Apuntes digital
Apuntes digitalApuntes digital
Apuntes digital
chichiga
 
Apuntes electronica digital
Apuntes electronica digitalApuntes electronica digital
Apuntes electronica digital
artorius1968
 
Electronicadigital
ElectronicadigitalElectronicadigital
Electronicadigital
jvlarrosa
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
Robinson Garcia
 
Libro logica
Libro logicaLibro logica
Libro logica
Javier Ochoa
 

Similar a Unidad 1 lenguajes regulares (20)

Autómatas
AutómatasAutómatas
Autómatas
 
PLC y Electroneumática: Automatismos industriales
PLC y Electroneumática: Automatismos industrialesPLC y Electroneumática: Automatismos industriales
PLC y Electroneumática: Automatismos industriales
 
Memoria dinámica en el lenguaje de programación c
Memoria dinámica en el lenguaje de programación cMemoria dinámica en el lenguaje de programación c
Memoria dinámica en el lenguaje de programación c
 
metrologia.pdf
metrologia.pdfmetrologia.pdf
metrologia.pdf
 
Metrologia
MetrologiaMetrologia
Metrologia
 
2733 metrologia
2733 metrologia2733 metrologia
2733 metrologia
 
Manual de multímetro egatronik
Manual de multímetro egatronikManual de multímetro egatronik
Manual de multímetro egatronik
 
Marco común europeo de referencia para las lenguas. aprendizaje, enseñanza, e...
Marco común europeo de referencia para las lenguas. aprendizaje, enseñanza, e...Marco común europeo de referencia para las lenguas. aprendizaje, enseñanza, e...
Marco común europeo de referencia para las lenguas. aprendizaje, enseñanza, e...
 
Marco comun europeo referencia lengua scvc mer[1]
Marco comun europeo referencia lengua scvc mer[1]Marco comun europeo referencia lengua scvc mer[1]
Marco comun europeo referencia lengua scvc mer[1]
 
Cvc mer
Cvc merCvc mer
Cvc mer
 
Common European Framework
Common European FrameworkCommon European Framework
Common European Framework
 
Common European Framework
Common European FrameworkCommon European Framework
Common European Framework
 
Marco Común Europeo de Referencia para las Lenguas: Aprendizaje, Enseñanza, E...
Marco Común Europeo de Referencia para las Lenguas: Aprendizaje, Enseñanza, E...Marco Común Europeo de Referencia para las Lenguas: Aprendizaje, Enseñanza, E...
Marco Común Europeo de Referencia para las Lenguas: Aprendizaje, Enseñanza, E...
 
Marco comun europeo referencia lengua scvc mer[1]
Marco comun europeo referencia lengua scvc mer[1]Marco comun europeo referencia lengua scvc mer[1]
Marco comun europeo referencia lengua scvc mer[1]
 
Apuntes electrónica digital
Apuntes electrónica digitalApuntes electrónica digital
Apuntes electrónica digital
 
Apuntes digital
Apuntes digitalApuntes digital
Apuntes digital
 
Apuntes electronica digital
Apuntes electronica digitalApuntes electronica digital
Apuntes electronica digital
 
Electronicadigital
ElectronicadigitalElectronicadigital
Electronicadigital
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Libro logica
Libro logicaLibro logica
Libro logica
 

Último

USOS_Y_TIPOS_DE_APLICACIONES_MOVILES_removed.pdf
USOS_Y_TIPOS_DE_APLICACIONES_MOVILES_removed.pdfUSOS_Y_TIPOS_DE_APLICACIONES_MOVILES_removed.pdf
USOS_Y_TIPOS_DE_APLICACIONES_MOVILES_removed.pdf
politamazznaa
 
Encuentra ese factor X que te haga mejorar como SEO #SOB24
Encuentra ese factor X que te haga mejorar como SEO  #SOB24Encuentra ese factor X que te haga mejorar como SEO  #SOB24
Encuentra ese factor X que te haga mejorar como SEO #SOB24
ssuser82c1d6
 
Documento A4 formas curvas Hoja de papel multicolor_20240615_213856_0000.pdf
Documento A4 formas curvas Hoja de papel multicolor_20240615_213856_0000.pdfDocumento A4 formas curvas Hoja de papel multicolor_20240615_213856_0000.pdf
Documento A4 formas curvas Hoja de papel multicolor_20240615_213856_0000.pdf
sthefannydelgado765
 
cáncer a la próstata ( Contreras Vivanco Juan David).pptx
cáncer a la próstata ( Contreras Vivanco Juan David).pptxcáncer a la próstata ( Contreras Vivanco Juan David).pptx
cáncer a la próstata ( Contreras Vivanco Juan David).pptx
contrerasvivancoj
 
extraccion-de-alcaloides-de-la-planta-de-coca.pdf
extraccion-de-alcaloides-de-la-planta-de-coca.pdfextraccion-de-alcaloides-de-la-planta-de-coca.pdf
extraccion-de-alcaloides-de-la-planta-de-coca.pdf
JENNYMARITZAHUILLCAR
 
APLICACIONES DE INTERNET-INFORMATICA.pptx
APLICACIONES DE INTERNET-INFORMATICA.pptxAPLICACIONES DE INTERNET-INFORMATICA.pptx
APLICACIONES DE INTERNET-INFORMATICA.pptx
cpadua713
 
Actividad integradora 6 curso multimedia
Actividad integradora 6 curso multimediaActividad integradora 6 curso multimedia
Actividad integradora 6 curso multimedia
AliiIxh
 
MONOGRAFRIA GOOGLE (grupo 1ro de google).pdf
MONOGRAFRIA GOOGLE (grupo 1ro de google).pdfMONOGRAFRIA GOOGLE (grupo 1ro de google).pdf
MONOGRAFRIA GOOGLE (grupo 1ro de google).pdf
darilpisco021
 
COMO EVOLUCIONO LAS WEB EN PLENO 2024.docx
COMO EVOLUCIONO LAS WEB EN PLENO 2024.docxCOMO EVOLUCIONO LAS WEB EN PLENO 2024.docx
COMO EVOLUCIONO LAS WEB EN PLENO 2024.docx
Jean Apellidos
 
TEMA 1. DESTILACION [Autoguardado]_copia.pptx
TEMA 1. DESTILACION [Autoguardado]_copia.pptxTEMA 1. DESTILACION [Autoguardado]_copia.pptx
TEMA 1. DESTILACION [Autoguardado]_copia.pptx
ArmandoCastro93
 
Copia de LaHoja_20240527_200357_0000.pptx
Copia de LaHoja_20240527_200357_0000.pptxCopia de LaHoja_20240527_200357_0000.pptx
Copia de LaHoja_20240527_200357_0000.pptx
jcoloniapu
 
LA NUBE YULIANA GABRIELA CORI NINARAQUE.pdf
LA NUBE YULIANA GABRIELA CORI NINARAQUE.pdfLA NUBE YULIANA GABRIELA CORI NINARAQUE.pdf
LA NUBE YULIANA GABRIELA CORI NINARAQUE.pdf
YulianaCori
 
aplicaciones de internet Google.20240pdf
aplicaciones de internet Google.20240pdfaplicaciones de internet Google.20240pdf
aplicaciones de internet Google.20240pdf
jordanovillacorta09
 
Herramientas de la web 2.0.pptx
Herramientas    de     la    web    2.0.pptxHerramientas    de     la    web    2.0.pptx
Herramientas de la web 2.0.pptx
anittaeunice
 
El uso de las tics en la vida cotidiana y en otros hábitos
El uso de las tics en la vida cotidiana y en otros  hábitosEl uso de las tics en la vida cotidiana y en otros  hábitos
El uso de las tics en la vida cotidiana y en otros hábitos
241560435
 
Sesión N°10 / Monografía sobre la inteligencia artifical
Sesión N°10 / Monografía sobre la inteligencia artificalSesión N°10 / Monografía sobre la inteligencia artifical
Sesión N°10 / Monografía sobre la inteligencia artifical
Angeles del Rosario Escobar Mendoza
 
importancia de la organizacion moderna jjj
importancia de la organizacion moderna jjjimportancia de la organizacion moderna jjj
importancia de la organizacion moderna jjj
gallegoscarneronelso
 
- El Cerebro Femenino como se desarrolla
- El Cerebro Femenino como se desarrolla- El Cerebro Femenino como se desarrolla
- El Cerebro Femenino como se desarrolla
BERTILAARTEAGATOLENT1
 
MONOGRAFRIA GOOGLE (grupo 1ro de google)1.pdf
MONOGRAFRIA GOOGLE (grupo 1ro de google)1.pdfMONOGRAFRIA GOOGLE (grupo 1ro de google)1.pdf
MONOGRAFRIA GOOGLE (grupo 1ro de google)1.pdf
darilpisco021
 
Encuentra ese factor X que te haga mejorar como SEO #SOB24
Encuentra ese factor X que te haga mejorar como SEO  #SOB24Encuentra ese factor X que te haga mejorar como SEO  #SOB24
Encuentra ese factor X que te haga mejorar como SEO #SOB24
MJ Cachón Yáñez
 

Último (20)

USOS_Y_TIPOS_DE_APLICACIONES_MOVILES_removed.pdf
USOS_Y_TIPOS_DE_APLICACIONES_MOVILES_removed.pdfUSOS_Y_TIPOS_DE_APLICACIONES_MOVILES_removed.pdf
USOS_Y_TIPOS_DE_APLICACIONES_MOVILES_removed.pdf
 
Encuentra ese factor X que te haga mejorar como SEO #SOB24
Encuentra ese factor X que te haga mejorar como SEO  #SOB24Encuentra ese factor X que te haga mejorar como SEO  #SOB24
Encuentra ese factor X que te haga mejorar como SEO #SOB24
 
Documento A4 formas curvas Hoja de papel multicolor_20240615_213856_0000.pdf
Documento A4 formas curvas Hoja de papel multicolor_20240615_213856_0000.pdfDocumento A4 formas curvas Hoja de papel multicolor_20240615_213856_0000.pdf
Documento A4 formas curvas Hoja de papel multicolor_20240615_213856_0000.pdf
 
cáncer a la próstata ( Contreras Vivanco Juan David).pptx
cáncer a la próstata ( Contreras Vivanco Juan David).pptxcáncer a la próstata ( Contreras Vivanco Juan David).pptx
cáncer a la próstata ( Contreras Vivanco Juan David).pptx
 
extraccion-de-alcaloides-de-la-planta-de-coca.pdf
extraccion-de-alcaloides-de-la-planta-de-coca.pdfextraccion-de-alcaloides-de-la-planta-de-coca.pdf
extraccion-de-alcaloides-de-la-planta-de-coca.pdf
 
APLICACIONES DE INTERNET-INFORMATICA.pptx
APLICACIONES DE INTERNET-INFORMATICA.pptxAPLICACIONES DE INTERNET-INFORMATICA.pptx
APLICACIONES DE INTERNET-INFORMATICA.pptx
 
Actividad integradora 6 curso multimedia
Actividad integradora 6 curso multimediaActividad integradora 6 curso multimedia
Actividad integradora 6 curso multimedia
 
MONOGRAFRIA GOOGLE (grupo 1ro de google).pdf
MONOGRAFRIA GOOGLE (grupo 1ro de google).pdfMONOGRAFRIA GOOGLE (grupo 1ro de google).pdf
MONOGRAFRIA GOOGLE (grupo 1ro de google).pdf
 
COMO EVOLUCIONO LAS WEB EN PLENO 2024.docx
COMO EVOLUCIONO LAS WEB EN PLENO 2024.docxCOMO EVOLUCIONO LAS WEB EN PLENO 2024.docx
COMO EVOLUCIONO LAS WEB EN PLENO 2024.docx
 
TEMA 1. DESTILACION [Autoguardado]_copia.pptx
TEMA 1. DESTILACION [Autoguardado]_copia.pptxTEMA 1. DESTILACION [Autoguardado]_copia.pptx
TEMA 1. DESTILACION [Autoguardado]_copia.pptx
 
Copia de LaHoja_20240527_200357_0000.pptx
Copia de LaHoja_20240527_200357_0000.pptxCopia de LaHoja_20240527_200357_0000.pptx
Copia de LaHoja_20240527_200357_0000.pptx
 
LA NUBE YULIANA GABRIELA CORI NINARAQUE.pdf
LA NUBE YULIANA GABRIELA CORI NINARAQUE.pdfLA NUBE YULIANA GABRIELA CORI NINARAQUE.pdf
LA NUBE YULIANA GABRIELA CORI NINARAQUE.pdf
 
aplicaciones de internet Google.20240pdf
aplicaciones de internet Google.20240pdfaplicaciones de internet Google.20240pdf
aplicaciones de internet Google.20240pdf
 
Herramientas de la web 2.0.pptx
Herramientas    de     la    web    2.0.pptxHerramientas    de     la    web    2.0.pptx
Herramientas de la web 2.0.pptx
 
El uso de las tics en la vida cotidiana y en otros hábitos
El uso de las tics en la vida cotidiana y en otros  hábitosEl uso de las tics en la vida cotidiana y en otros  hábitos
El uso de las tics en la vida cotidiana y en otros hábitos
 
Sesión N°10 / Monografía sobre la inteligencia artifical
Sesión N°10 / Monografía sobre la inteligencia artificalSesión N°10 / Monografía sobre la inteligencia artifical
Sesión N°10 / Monografía sobre la inteligencia artifical
 
importancia de la organizacion moderna jjj
importancia de la organizacion moderna jjjimportancia de la organizacion moderna jjj
importancia de la organizacion moderna jjj
 
- El Cerebro Femenino como se desarrolla
- El Cerebro Femenino como se desarrolla- El Cerebro Femenino como se desarrolla
- El Cerebro Femenino como se desarrolla
 
MONOGRAFRIA GOOGLE (grupo 1ro de google)1.pdf
MONOGRAFRIA GOOGLE (grupo 1ro de google)1.pdfMONOGRAFRIA GOOGLE (grupo 1ro de google)1.pdf
MONOGRAFRIA GOOGLE (grupo 1ro de google)1.pdf
 
Encuentra ese factor X que te haga mejorar como SEO #SOB24
Encuentra ese factor X que te haga mejorar como SEO  #SOB24Encuentra ese factor X que te haga mejorar como SEO  #SOB24
Encuentra ese factor X que te haga mejorar como SEO #SOB24
 

Unidad 1 lenguajes regulares

  • 1.
  • 2. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA PROGRAMA DE INGENIERÍA DE SISTEMAS 301405 – AUTÓMATAS Y LENGUAJES FORMALES AUTOR: CARLOS ALBERTO AMAYA TARAZONA (Director Nacional) http://www.camayat.com Duitama (ZCBOY) Versión 4 – 2014.
  • 3. CONTENIDO Primera Unidad Capítulos Lecciones I. LENGUAJES REGULARES 1. Conceptos Básicos 1. Introducción e Historia. 2. Alfabetos, Cadenas y Lenguajes 3. Autómatas y Lenguajes. 4. Lenguajes Regulares 5. Autómata 2. Autómatas Finitos 6. Definición Formal de Autómatas Finitos 7. Autómatas Finitos Determinísticos (AFD) 8. Autómatas Finitos no Determinísticos (AFND) 9. Autómatas Finitos con Transacciones 10. Lenguaje Aceptado por Autómata Finito 3. Expresiones Regulares 11.Lenguajes Regulares y Expresiones Regulares 12. Significado de las Expresiones Regulares 13. Autómatas Finitos y Expresiones Regulares 14 Equivalencia de Autómatas Finitos Determinísticos y Autómatas Finitos no Determinísticos 15 Minimización de Autómatas Segunda Unidad Capítulos Lecciones II. LENGUAJES INDEPENDIENTES DEL CONTEXTO 4. Conceptos Generales 16. Gramáticas Regulares 17. Lenguajes libres de contexto y sus máquinas 18. Arboles de derivación 19. Transformación de las GLC y Formas Normales 20.Limitacioes de los LLC 5. Autómatas a Pila 21. Definición de Autómata con Pila 22. Funcionamiento de Autómata con Pila 23. Diseño de Autómata con Pila. 24. Funciones que se aplican sobre los stacks (Pilas) 25. Combinación modular de los autómatas con Pila 6. Propiedades de Lenguajes Independientes de Contexto 26. Lenguaje aceptado por un AP 27. Relación entre los AP y los LLC 28. Propiedades de clausura de los Lenguajes Libres de Contexto 29. Algoritmos de decisión para los LLC 30.Problemas Indecibles para Lenguajes Libres de Contexto Tercera Unidad Capítulos III. LENGUAJES ESTRUCTURADOS POR FRASES 7. Máquinas de Turing. 31. Formalización de las MT 32. Funcionamiento de la Máquina de Turing. 33. Diferencias entre un Computador y una Máquina de Turing 34. La Máquina Universal de Turing
  • 4. 4 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 35. Lenguajes aceptados por la MT 8. Máquina de Turing y Computación 36. Tesis de Church/Turing 37.Variantes de Una Máquina de Turing 38. Problemas de Hilbert 39. Problemas Insolubles para la Teoría de Lenguajes 40. Lenguajes Decidibles 9. Funciones Recursivas 41. Problemas de Halting 42. Decibilidad de Teorías Lógicas 43. Reducibilidad de Turing 44. Algoritmo de Trellis 45. Algoritmo de Viteri
  • 5. 5 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Tabla de contenido LISTA DE FIGURAS................................................................................................................................ 8 LISTA DE TABLAS................................................................................................................................ 10 INTRODUCCIÓN ................................................................................................................................. 11 ANEXO 1: LISTADO DE SÍMBOLOS USADOS....................................................................................... 14 ANEXO 2: PRESABERES: TEORÍA 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 BÁSICOS ............................................................................................... 25 LECCIÓN 1: INTRODUCCIÓN E HISTORIA: .................................................................................. 26 LECCIÓN 2. - ALFABETOS, CADENAS Y LENGUAJES ................................................................. 28 LECCIÓN 3. AUTÓMATAS Y LENGUAJES ................................................................................... 32 LECCIÓN 4. LENGUAJES REGULARES ........................................................................................ 33 LECCIÓN 5. AUTÓMATA ............................................................................................................ 36 CAPITULO 2. AUTÓMATAS FINITOS ............................................................................................... 39 LECCIÓN 6. DEFINICIÓN FORMAL DE AUTÓMATAS FINITOS .................................................... 39 LECCIÓN 7. AUTÓMATAS FINITOS DETERMINÍSTICOS (AFD) .................................................... 42 LECCIÓN 8. AUTÓMATAS FINITOS NO DETERMINÍSTICOS (AFND)............................................ 45 LECCIÓN 9. AUTÓMATA FINITO CON  TRANSICIONES ........................................................... 47
  • 6. 6 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona LECCIÓN 10. LENGUAJE ACEPTADO POR UN AF........................................................................ 48 CAPITULO 3: EXPRESIONES Y LENGUAJES REGULARES ................................................................. 51 LECCIÓN 11. LENGUAJES REGULARES Y EXPRESIONES REGULARES ......................................... 51 LECCIÓN 12. SIGNIFICADO DE LAS EXPRESIONES REGULARES .................................................. 51 LECCIÓN 13. AUTÓMATAS FINITOS Y EXPRESIONES REGULARES ............................................. 54 LECCIÓN 14. EQUIVALENCIA DE AFD Y AFND ............................................................................ 60 LECCIÓN 15. MINIMIZACIÓN DE AUTÓMATAS ......................................................................... 63 UNIDAD 2. LENGUAJES INDEPENDIENTES DEL CONTEXTO ............................................................... 69 CAPÍTULO 4 CONCEPTOS GENERALES ........................................................................................... 69 LECCIÓN 16. – GRAMÁTICAS REGULARES ................................................................................. 70 LECCIÓN 17. LENGUAJES LIBRES DE CONTEXTO Y SUS MÁQUINAS. ........................................ 76 LECCIÓN 18. ARBOLES DE DERIVACIÓN .................................................................................... 78 LECCIÓN 19. TRANSFORMACIÓN DE LAS GLC Y FORMAS NORMALES ...................................... 84 LECCIÓN 20. LIMITACIONES DE LOS LLC .................................................................................... 90 CAPITULO 5. AUTÓMATAS DE PILA ............................................................................................... 91 LECCIÓN 21. DEFINICIÓN DE AUTÓMATA CON PILA ................................................................. 92 LECCIÓN 22. FUNCIONAMIENTO DE LOS AUTÓMATAS DE PILA ............................................... 93 LECCIÓN 23. DISEÑO DE AUTÓMATAS DE PILA ......................................................................... 95 LECCIÓN 24. FUNCIONES QUE SE APLICAN SOBRE LOS STACKS. (PILAS). ................................ 98 LECCIÓN 25. COMBINACIÓN MODULAR DE AUTÓMATAS DE PILA ........................................ 100 CAPITULO 6: PROPIEDADES DE LOS LENGUAJES INDEPENDIENTES DE CONTEXTO.................... 101 LECCIÓN 26. LENGUAJE ACEPTADO POR UN AP ..................................................................... 101
  • 7. 7 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona LECCIÓN 27. RELACIÓN ENTRE LOS AUTÓMATAS DE PILA Y LENGUAJES LIBRES DE CONTEXTO ................................................................................................................................................. 102 LECCIÓN 28. PROPIEDADES DE CLAUSURA DE LOS LENGUAJES LIBRES DE CONTEXTO .......... 105 LECCIÓN 29. ALGORITMOS DE DECISIÓN PARA LOS LENGUAJES LIBRES DE CONTEXTO. ....... 106 LECCIÓN 30. PROBLEMAS INDECIDIBLES PARA LENGUAJES LIBRES DE CONTEXTO. .............. 108 UNIDAD 3 LENGUAJES ESTRUCTURADOS POR FRASES. ................................................................. 109 CAPITULO 7 MAQUINAS DE TURING. .......................................................................................... 109 LECCIÓN 31. FORMALIZACIÓN DE LAS MT. ............................................................................. 110 LECCIÓN 32. FUNCIONAMIENTO DE LA MÁQUINA DE TURING. ............................................. 113 LECCIÓN 33. DIFERENCIAS ENTRE LAS COMPUTADORAS Y LAS MÁQUINAS DE TURING ..... 116 LECCIÓN 34. LA MAQUINA UNIVERSAL DE TURING. ............................................................... 117 LECCIÓN 35. LENGUAJES ACEPTADOS POR LA MAQUINA DE TURING. .................................. 118 CAPITULO 8: MAQUINAS DE TURING Y COMPUTACIÓN. ............................................................ 120 LECCIÓN 36. TESIS DE CHURCH /TURING. ............................................................................... 120 LECCIÓN 37. VARIANTES DE UNA MAQUINA DE TURING. ...................................................... 123 LECCIÓN 38. PROBLEMAS DE HILBERT. ................................................................................... 124 LECCIÓN 39. PROBLEMAS INSOLUBLES PARA LA TEORÍA DE LENGUAJES.............................. 128 CAPITULO 9. FUNCIONES RECURSIVAS ....................................................................................... 129 LECCIÓN 40. LENGUAJES DECIDIBLES ...................................................................................... 129 LECCIÓN 41. PROBLEMAS DE HALTING .................................................................................. 131 LECCIÓN 42. DECIBILIDAD DE TEORÍAS LÓGICAS .................................................................... 132 LECCIÓN 43. REDUCIBILIDAD DE TURING ................................................................................ 134 LECCIÓN 44. APLICACIONES DE LAS MAQUINAS DE ESTADOS. ALGORITMO DE TRELLIS. ..... 135
  • 8. 8 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona LECCIÓN 45: ALGORITMO DE VITERBI ..................................................................................... 149 SIMULADORES: ................................................................................................................................ 155 ANEXO: EJERCICIOS DE REPASO ...................................................................................................... 156 BIBLIOGRAFIA .................................................................................................................................. 186 LISTA DE FIGURAS Pág Figura 1: Grafo relación binaria 21 Figura 2: Una Relación Reflexiva 22 Figura 3: Una Relación Antireflexiva. 23 Figura 4: Una Relación Simétrica 23 Figura 5: Una Relación Antisimétrica 23 Figura 6: Una Relación Transitiva 24 Figura 7: Una Relación Transitiva (otra forma de representarla). 24 Figura 8: Proceso de traducción realizado por un compilador 33 Figura 9: Clasificación de los Lenguajes. Jerarquía de Chomsky. N 34 Figura 10: Máquina de estados. Estructura 38 Figura 11: Tabla de transición de un Autómata Finito. 41 Figura 12: Diagrama de Moore para un Autómata Finito. 41 Figura 13: Tabla de transición para un Autómata 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 máquina de estados 53 Figura 20: Gráfica de transición (GT) 55 Figura 21: Operadores básicos de conversión de AF a ER 55 Figura 22: Transformación de Er a AF. 56 Figura 23: Obtención de una ER a partir de un AF 57 Figura 24: Obtención de una ER a partir de un AF PASO 1 58 Figura 25: Obtención de una ER a partir de un AF PASO 2 58 Figura 26: Obtención de una ER a partir de un AF PASO 3. Eliminación de nodo. 59 Figura 27: Obtención de una ER a partir de un AF PASO 4. Eliminación de nodo q0. 59 Figura 28: Obtención de una ER a partir de un AF PASO 5. Fusión de expresiones 59
  • 9. 9 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS 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 comparación de AF. 62 Figura 32: Autómata a minimizar 64 Figura 33: Eliminación de estados en un autómata AF 66 Figura 34: Eliminación de otros estados en un autómata AF 66 Figura 35: Eliminación de otros estados en un autómata AF 67 Figura 36: Tabla de estados distinguibles 68 Figura 37: Autómata obtenido de la Gramática 1. 73 Figura 38: Autómata obtenido de la Gramática 1 generado con un simulador. 73 Figura 39: Autómata obtenido de la Gramática 2. 74 Figura 40: Autómata obtenido de la Gramática 2 generado con un simulador. 75 Figura 41: AFD y su gramática. 76 Figura 42: Árbol de derivación para una secuencia de paréntesis bien balanceados. 80 Figura 43: Árbol de derivación para la cadena aabbaa 80 Figura 44: Árbol de derivación para la cadena aabbaa generado en JFLAP 81 Figura 45: Derivaciones por la izquierda, generadas en JFLAP 81 Figura 46: Arboles de derivación para la gramática G3 82 Figura 47: Arboles de derivación para una gramática ambigua 83 Figura 48: Arboles de derivación para una gramática ambigua para a5 84 Figura 49: Arboles de derivación para a5 84 Figura 50: Arboles de derivación para paréntesis balanceados 87 Figura 51: Arboles de derivación para paréntesis balanceados 89 Figura 52: Arboles de derivación en el lema de bombeo 91 Figura 53: Formalización de un PDA 93 Figura 54: Transición de un PDA 95 Figura 55: Estructura de un PDA para  =aabb 97 Figura 56: Diseño de un PDA para  =aabb 97 Figura 57: Funciones de la Pilas. 99 Figura 58: Unión de AP. 100 Figura 59: Autómata AFPD. 101 Figura 60: Grafo para L finito y L infinito. 107 Figura 61: Componentes de una MT 111 Figura 62: Máquina de Turing simulada en JFLAP 115 Figura 63: Modelo de un sistema de comunicaciones digitales 139 Figura 64: Código secuencial 140 Figura 65: Codificador convolucional de m etapas 141 Figura 66: Máquina de estados. Registro de desplazamiento convolucional de ratio ½ y una etapa 142 Figura 67: Máquina de estados. Registro de desplazamiento convolucional (datos 000 y 100) 142 Figura 68: Máquina 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. 10 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS 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 (transición de estados). 145 Figura 73: Diagrama de Trellis completo (transición 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: Solución final Trellis y Viterbi. Datos de entrada 11010011. 153 LISTA DE TABLAS Pág Tabla 1: Símbolos usados 14 Tabla 2: Propiedades comunes de las relaciones binarias 22 Tabla 3: Evolución Histórica de la Teoría de la Computación 26 Tabla 4: Recursos web referentes a la historia de la temática 28 Tabla 5: Recursos web para alfabetos, cadenas y lenguajes 29 Tabla 6: Asociación de gramáticas, lenguaje y máquinas. 36 Tabla 7: Recursos web para construcción de autómatas. 39 Tabla 8: Recursos web para diagramas de Moore. 41 Tabla 9: Recursos web para AFND 47 Tabla 10: Recursos web para cadenas válidas 50 Tabla 11: Recursos web para cadenas válidas 59 Tabla 12: Recursos web para minimización de autómatas 69 Tabla 13: Recursos web para PDA 76 Tabla 14: Traza de ejecución del AP 98 Tabla 15: Recursos web para PDA 99 Tabla 16: Recursos web para MT 116 Tabla 17: Relación 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 autómata finito 175 Tabla 21: Desarrollo de ejercicios de expresiones Regulares (ER). 176 Tabla 22: Desarrollo de un ejercicio de minimización 178 Tabla 23: Desarrollo de ejercicio de un APD 179 Tabla 24: Código Convolucional. Codificación y decodificación. Ejercicio. 180 Tabla 25: Cálculo de un dato de entrada a partir de uno codificado. 182 Tabla 26: Cómo leer una Expresión Regular (ER) 185
  • 11. 11 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona INTRODUCCIÓN El presente material académico y de investigación que he consolidado, pretende ser una guía general e introductoria, al basto y grande contenido que abarca la Teoría de Autómatas y lenguajes Formales, recorriendo las temáticas, de una manera simple objetiva y efectiva, dado el alto contenido analítico, matemático y de comprensión que tiene las temáticas a las que hace referencia la tabla de contenido que se presenta. El material académico que a continuación se presenta, es producto de la recopilación analítica objetiva y crítica de experiencias en la formación profesional en el área de la computación, matemáticas, ingeniería, transmisión de redes de datos, y para el caso el de la teoría de Autómatas y lenguajes Formales, que ya por varios años y en diferentes capos de acción se ha tenido que aplicar. Los contenidos que s e documentan y explican, llevan al lector a que asimile dos temáticas básicas para esta área de conocimiento:  Que pueda comprender los conceptos y mecanismos fundamentales para la definición de lenguajes: mecanismos como (expresiones regulares, gramáticas independientes del contexto y gramáticas generales),  Junto al anterior bloque, el lector comprenderá y abordará los tres tipos de máquinas correspondientes para el reconocimiento de esos lenguajes como son: (autómatas finitos, autómatas a pila y máquinas de Turing) y las propiedades fundamentales de las familias de lenguajes por ellos definidas, también realiza el estudio de las condiciones necesarias para que un lenguaje sea de un tipo determinado. La necesidad objetiva de comprender las temáticas, sumada a las dificultades que muchos lectores presentan para comprender y asociar la automatización a la solución de problemas reales mediante máquinas abstractas o a la identificación de problemas solubles, insolubles e indecidibles, me ha llevado a hacer uso de raciocinios sencillos sin necesidad llegara demostraciones matemáticas, jugando un papel secundario la implementación de algoritmos.
  • 12. 12 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Se presentan temáticas que son base para comprender los lenguajes de programación de alto y bajo nivel y que propician la distinción entre lenguajes formales con reglas sintácticas y semánticas rígidas, concretas y bien definidas, de los lenguajes naturales como el inglés o el español, donde la sintaxis y la semántica no se pueden controlar fácilmente. Los intentos de formalizar los lenguajes naturales, lleva a la construcción de gramáticas, como una forma de describir estos lenguajes, utilizando para ello reglas de producción para construir las frases del lenguaje. Se puede entonces caracterizar un lenguaje mediante las reglas de una gramática adecuada. Los temas sobre autómatas, computabilidad, e incluso la complejidad algorítmica fueron incluidos de forma referencial y básica en cada unidad, ya que como la historia lo dice y de manifiesto propio, las ciencias de la computación han usado gran cantidad de ideas de muy diferentes campos para su desarrollo, y que la investigación sobre aspectos básicos podía cooperar y aumentar los avances de la computación. Como elemento determinante para que el lector de manera progresiva y jerárquica comprende la lógica de este tipo de análisis matemático, están los conceptos previos y claros que se deben reconocer en el área de la matemática y la teoría de conjuntos, funciones, relaciones y principios fundamentales de la lógica, ya que estos temas no son tratados como temáticas en el libro, pero que tienen gran importancia en los fines para los que se creé este documento. Muchos autores referenciados en las fuentes bibliográficos y de los cuales se han tomado análisis y ejercicios clave para poder comprender la temática, usan diferentes tipos de nomenclaturas, fórmulas y símbolos, ya que como tal, los lenguajes, expresiones regulares, funciones entre otros deben representarse matemáticamente. Para estandarizar de manera sencilla, se presenta como Anexo a este libro, la lista de símbolos usados y su significado. La Metodología 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 máquinas abstractas en simuladores sin necesidad de documentar demasiados conceptos inicialmente o sin hacer uso de demostraciones matemáticas de teoremas, fórmulas o teorías, que quedan para que el lector luego de ver el funcionamiento de la lógica matemática aplicada, y a manera de ingeniería inversa, resuelva nudos analíticos en este tipo de conceptos y análisis matemáticos.
  • 13. 13 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Como complemento a una aplicabilidad que tienen las Teoría de lenguajes y autómatas, se explica el funcionamiento del algoritmo de la modulación codificada de Trellis y la Decodificación de Viterbi (algoritmos creados para el aumento de velocidad y para la mejora de la veracidad) codificaciones de canal y de fuente en transmisión de datos como técnicas de detección y corrección de errores. Este algoritmos se explica mediante los diagramas de árbol y grafos para códigos 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 autoría propia y que están a disposición para su descarga o visualización.
  • 14. 14 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona ANEXO 1: LISTADO DE SÍMBOLOS USADOS Los siguientes son los símbolos usados en el presente libro y son la base para todos los ejercicios y temáticas expuestas. Muchos autores difieren en el tipo de simbología usada, pero se ha procurado consolidar y usar los más comunes acorde a su significado y aplicabilidad. Tabla 1: Símbolos usados Símbolo Nombre Significado /Ejemplo AZUL NARANJA NEGRO ROJO Estados Transiciones Símbolos y cadenas Estado inicial Estado final (doble círculo) Para efectos de representar diagramas de Moore, tablas de transición: El libro representa los componentes diferenciando colores: Ejemplo: Σ Sigma Alfabeto L Letra Ele mayúscula Lenguaje sobre un determinado alfabeto Σ M Eme Máquina de estados Finitos A A Autómata K Ka Suele denotar el conjunto de estados de un autómata F Efe Suele denotar el conjunto de estados finales de un autómata S Ese Suele denotar el estado inicial de un autómata  Sigma Denota una función.  Ro Función de transición de un autómata   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 Expresión Regular (ER)  Beta Otras cadenas. Muy usado en denotar cadenas en gramáticas.  Lambda Representa una cadena vacía Δ 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 gramática  Unión  Intersección ≤ Comparación Menor o igual que ≥ Comparación Mayor o igual que < Comparación Menor que
  • 15. 15 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona > Comparación Mayor que = igualdad | mid * estrella  Pertenece  No pertenece  Incluye Ejemplo: A  B A está incluido en B  Subconjunto propio  vacío Conjunto vacío |A| Indica cantidad Tamaño de un conjunto. Ejemplo para el conjunto A. c A Complemento Complemento de un conjunto. Ejemplo para el conjunto A. R Relación Para denotar una relación binaria 1 R Inverso Inverso de una Relación R  Negación lógica (neg) Una barra colocada sobre otro operador es equivalente a un ¬ colocado a la izquierda.     Implicación en un solo sentido Lógica proposional “entonces….” } Con la flecha sencilla a la derecha en gramáticas, indica las producciones que se pueden tener. ↔ Doble implicación Lógica proposional “Si A es verdadera entonces B también….”  Forall Se lee: “Para todo…”  Exists Se lee “Existe…” │ Mid Separa producciones en una gramática. En algunas expresiones se lee “tal que…” Fuente: El Autor
  • 16. 16 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona ANEXO 2: PRESABERES: TEORÍA DE CONJUNTOS I. GENERALIDADES: Las nociones básicas de la Teoría de conjuntos, son necesarias para el inicio del estudio de la Teoría de la Computación. Un conjunto es una colección de objetos llamados elementos del conjunto. Si definimos un conjunto como A y a es un elemento de ese conjunto A, se usa la notación aA (se lee “a es un elemento de A”). Por lo contrario bAindica 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 característica de un conjunto es dada por sus elementos más 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 autómatas 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 válido 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 a  {a}. E conjunto {{a,b}} tiene un único elemento: {a,b} Si A y B son conjuntos y todos los elementos de A son también elementos de B, se escribe A  B y se dice que A es un subconjunto de B. También 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 A  B y es válido afirmar que B no es un subconjunto de A porque los elementos 0,4,5,6,7 no lo son del conjunto A. Una explicación 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 A  B y B  A simultánameamente, entonces todos los elementos de A están en B y todos los elementos de B están en A. Por lo tanto: Si A  B y B  A, tenemos que A=B Teorema 2. Si A  B y B  C , entonces A  C
  • 17. 17 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Conjunto Vacío: Es llamado también nulo y es aquel que no tiene elementos. Se denota como  . El conjunto vacío es un subconjunto de todos los conjuntos; por lo cual es válido denotar:   A para todo conjunto A. Tamaño de un conjunto: El tamaño de un conjunto es el número de elementos que contiene, y se representa como: |A| para un conjunto A. Ejemplo 2 El tamaño de {1,2,3,4,5} es 5 E tamaño 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 Descripción matemática 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 definición por extensión. muchas veces y para el caso de la Teoría de Autómatas que trata este libro, no es posible especificar elementos de un conjunto o alfabeto porque el conjunto es infinito y entonces se usa una definición por comprensión, es decir, haciendo referencia a otros conjuntos (conjuntos referenciales) y a propiedades que los elementos puedan tener. A través de desarrollo de la temática, y específicamente para poder describir autómatas, lenguajes y leer expresiones regulares, tendremos que aprender a leer funciones de transición, 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 proposición sobre x. La notación {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 proposición verdadera. Ejemplo 4: {x | x  y x  7} hace referencia al conjunto {0,1,2,3,4,5,6} I.I OPERACIONES CON CONJUNTOS: En aritmética básica se pueden trabajar tres operaciones: sumar restar y multiplicar dos números. E la teoría de conjuntos existen tres operaciones que son análogas a la suma, resta y multiplicación.
  • 18. 18 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Unión de Conjuntos: La unión de conjuntos A y B se denota por A B y es un conjunto formado por los elementos que aparecen en A, en B o en ambos: AB {x | xa V x B} Ejemplo 5: {1,2,3}  {3,4} = {1, 2, 3, 4}. La unión de conjuntos es conmutativa y asociativa. Intersección de conjuntos: x aparece simultáneamente en A y B AB {x | xa  x B} La intersección 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 intersección es el conjunto vacío. Diferencia de conjuntos: A - B, que contiene los elementos de A que no están en B, esto es: A  B  {x | xa  x  B} 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: AXB  {(x, y) | x A  y  B} Ejemplo 9: {1,2}x{3,4,5} {(1,3), (1,4), (1,5), (2,3), (2,4), (2,5)}
  • 19. 19 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona El tamaño de un producto cartesiano A×B 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: Básicamente consiste y son útiles para reemplazar expresiones pro otras equivalentes o que tengan el mismo resultado. Teorema 3.    A  A    A   Si A  B , entonces A B  A  Si A  B , entonces A B  B 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 operación que les preceda. Algunas propiedades derivadas de etas operaciones son:  Idempotencia: A A  A ; A A  A  Conmutatividad: A B  B  A ; A B  B  A  Asociatividad: (AB)C  A(BC) (AB)C  A(BC)  Distributividad: A(BC)  (AB)(AC) A(BC)  (AB)(AC)  Absorción: A(AB)  A ; A(AB)  A  Leyes de Morgan: A B  A B se suele denotar también como: C C C (AB)  A B A B  A B se suele denotar también como: C C C (AB)  A B  Doble complemento. A A C C ( )  Ejemplo 10 del uso de estas equivalencias: Usando la unión y el complemento, se puede expresar una intersección de conjuntos. C C C C C (AB)  ((AB) )  (A B )
  • 20. 20 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Conjunto Potencia: Se denota como A 2 . La colección de todos los subconjuntos de A es a su vez un conjunto llamado conjunto potencia. Al conjunto potencia de A también se le suele llamar conjunto de las partes de A y se nota como P(A). O de igual forma: 2 {x | x A} A   Ejemplo 11: 2 { ,{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}} {1,2,3}   El conjunto vacío siempre forma parte de todo conjunto potencia. La notación A 2 recuerda que el tamaño del conjunto potencia de A es 2 elevado a la potencia del tamaño de A, esto es, | A 2 | = | | 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 c A contiene los elementos del universo que no están en A. Ejemplo 12: Sea U   (El Universo de los números naturales), el complemento de los números múltiplos de tres (3) c {3,6,9,12,15,...} = {1,2,4,5,7,8,10,11,13,14, ….}. Se concluye que A A U c   para todo conjunto A; además   c A A I.III RELACIONES: Se derivan del producto cartesiano de conjuntos. Precisamente se llama relación a todo subconjunto de un producto cartesiano. En esencia combinaciones de objetos de un determinado tipo que están relacionados de alguna forma. Relación Binaria: La relación 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 relación binaria definida en A, puesto que los pares (c,a), (b,a) (b,b) constituyen un subconjunto de A x A.
  • 21. 21 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Figura 1: Grafo relación binaria Fuente:<El autor> Se dice que dos elementos a y b están relacionados, y se escribe a R b, “a está relacionado con b mediante la relación binaria R”, cuando el par ordenado (a,b) pertenece al subconjunto del producto cartesiano que define la relación. Ejemplo 14: La relación “≤” contiene los pares de los números naturales tales que el primer componente es menor o igual al segundo, esto es, ≤ = {(1,1),(1,2),(1,3),(1,4),(2,3)…} Téngase en cuenta que se llama par ordenado a una pareja de objetos escritos entre paréntesis 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: (a,b)  {a,b} (a,b)  (b,a) Sin embargo: {a,b}  {b, a} El orden si influye, sin embargo, no todos los subconjuntos del producto cartesiano, pueden ser aceptados como la relación de la condición que exprese. Algunas características de estas relaciones son: Inverso de una Relación: Se llama inverso de una relación R, denotado por 1 R , a aquella en donde se invierte el orden de los pares ordenados, esto es:
  • 22. 22 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona {( , ) | ( , ) } 1 R  y x x y R  Ejemplo 15: El inverso de la relación {(1,2),(2,3),(1,3)} es {(2,1),(3,2),(3,1)} Propiedades más comunes de las Relaciones Binarias. No se citan olas que se derivan de las básicas que se relacionan a continuación. Tabla 2: Propiedades comunes de las relaciones binarias Propiedad Condición Reflexiva R es reflexiva si aA: aRa Antireflexiva R es antireflexiva si a A:(aRa) ó aRa Simétrica R es simétrica si a,b A: (aRb)(bRa) Antisimétrica R es antisimétrica si a,b A: (aRb)(bRa) Transitiva R es transitiva si a,b,c A: (aRb)  (bRc)(aRc) Fuente: El Autor La “Relación” es una característica que se debe aplicar Reflexiva: Cada elemento tiene un bucle. Ejemplo 16 Si A = {a,b,cd} y R es una relación “ser igual que” o de la forma (x,x) se tiene: R={(a,a),(b,b),(c,c),(d,d)}. Figura 2: Una Relación Reflexiva Fuente:<El autor> Antireflexiva: Ningún elemento tiene un bucle. Ejemplo 17 Si A={1,2,3,4} y R es la relación “menor que”, se tiene: R={(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)}
  • 23. 23 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Figura 3: Una Relación Antireflexiva. Fuente:<El autor> Simétrica: Cada relación 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 Relación Simétrica Fuente:<El autor> Antisimétrica: Ninguna flecha de ida tiene otra de vuelta, salvo en el caso de los bucles, que están permitidos. Ejemplo 19 Si A = {1, 2, 3, 4} y R es la relación “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 Relación Antisimétrica Fuente:<El autor> 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 relación “ser mayor que”, se tiene: R = {(3, 2),(2, 1), (3, 1), (4, 1), (4, 2), (4, 3)}
  • 24. 24 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Figura 6: Una Relación Transitiva Fuente:<El autor> Otra forma de interpretar esta relación dice que siempre que contiene los pares (x,y) y (y, z) también contiene (x, z). Por ejemplo, la relación {(1,2), (2,3), (1,1), (1,3)} es transitiva, pero {(2,3), (1,2), (1,1)} no lo es. Figura 7: Una Relación Transitiva (otra forma de representarla). Fuente:<El autor> Un caso especial de estas relaciones y equivalencias se da cuando se encuentra una relación binaria R definida en un determinado conjunto y que cumple las propiedades reflexiva, simétrica y transitiva. Entonces es una “relación 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 relación {(1,2), (2,3), (1,3)} no es una función, pero {(1,2), (2,3), (3,3)} sí lo es. En conjuntos, la notación 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 función). En Autómatas. La función suele denotarse con el símbolo 
  • 25. 25 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Para la teoría de autómatas. Las funciones son vistas desde la perspectiva de lenguajes aceptados, por eso la temática que aborda as funciones en conjuntos como las funciones totales, inyectivas y sobreyectivas, pueden referenciarse en: PRIMERA UNIDAD: LENGUAJES REGULARES CAPITULO 1: CONCEPTOS BÁSICOS Se da inicio a un concepto: Máquinas secuenciales, que hacen parte también del estudio de la teoría de autómatas y que tienen sus inicios en el campo de la Ingeniería Electrónica. El fin de los modelos no es la de describir detalles de los componentes de hardware de un computador, sino de determinar características poco visibles o intangibles de estas máquinas como por ejemplo capacidad de proceso, memoria, procesamiento de datos e información. Es por ello que se han dividido en diferentes áreas de conocimiento este tipo de estudio como por ejemplo: Arquitectura de computadores, Sistemas de información, sistemas Distribuidos lógica Matemática, Ensamble de máquinas, entre otros. Iniciamos el estudio de estas maquis abstractas identificando componentes básicos 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 más sencillos mediante operaciones de conjuntos. Los Lenguajes más sencillos son los considerados lenguajes regulares, es decir, los que se pueden generar a partir de lenguajes de un elemento con la aplicación de ciertas operaciones estándar realizadas un número finito de veces. Estos son pues los lenguajes que pueden reconocer los dispositivos llamados Autómatas finitos (AF) que son máquinas de cómputo con memoria muy restringida. En esta unidad se considera como segundo aspecto la idea de que un lenguaje no sea regular, además de proporcionar un modelo sencillo de computación 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 descripción de un lenguaje a otra descripción de un tipo distinto; se acumula experiencia en el uso de métodos formales para describir lenguajes y se intenta responder a preguntas acerca de ellos, son preguntas y ejercicios
  • 26. 26 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona sencillos con sus respuestas y que permiten determinar la utilidad de los lenguajes regulares en aplicaciones del mundo real. LECCIÓN 1: INTRODUCCIÓN E HISTORIA: Teoría de la computación: Trata con modelos de cálculo abstractos (máquinas computacionales abstractas). En Teoría de la Computación, a diferencia de las otras materias, (Arquitectura de Computadores, Teoría 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 Teoría de la Computación es bastante interesante. Se ha desarrollado gracias a confluencia, por afortunadas coincidencias, de distintos campos de conocimiento y descubrimientos (fundamentalmente matemáticos) realizados a principios del siglo XX. Bajo el nombre Teoría de la Computación se recogen una serie de materias que constituyen hoy en día los fundamentos teóricos de la Informática: Teoría de Autómatas, Teoría de los Lenguajes Formales, Computabilidad y Complejidad Algorítmica.”1 Se presenta una concreta evolución histórica de la Teoría de la Computación: Tabla 3: Evolución Histórica de la Teoría de la Computación EPOCA PRECURSORES 1845 -1918 COMPUTABILIDAD Iniciada por Godel, Church, Post, Turing y Kleene, tiene sus raíces en la Lógica Matemática. Ya se había inventado la Teoría de Conjuntos David Hilbert (1845-1918) formuló en 1928, durante el transcurso de un congreso internacional: Si las Matemáticas son completas, consistentes y decidibles. 1936 Tesis de Church Una de las cuestiones más estudiadas en la Teoría de la Compatibilidad ha sido la posibilidad de construir programas que decidan si un determinado algoritmo posee o no una determinada propiedad. 1 <NAVARRETE,Isabel. Teoría de Autómatas y lenguajes Formales. Departamento Ingeniería. Universidad de Murcia. P 133. Sept 2008>
  • 27. 27 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Turing >Calculan los algoritmos A y B la misma función? (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 función f? (Problema de la verificación) 1967 Complejidad Algorítmica Trata la dificultad computacional de las funciones computables. Qué quiere decir que una función f sea más difícil de computar que otra función g? Rabin sugirió una axiomática que fue la base para el desarrollo del estudio de medidas de complejidad abstracta de Blum y otros 1954 - 1969 Máquinas secuenciales y Autómatas finitos. El matemático norteamericano Shanon (que luego se haría famoso por su Teoría de la Información) vino a establecer las bases para la aplicación de la Lógica Matemática a los circuitos combinatorios y posteriormente Huffman en 1954 los amplio a circuitos secuenciales y utiliza conceptos como estado de un autómata y tabla de transición. A lo largo de las décadas siguientes, las ideas de Shanon se desarrollaron considerablemente, dando lugar a la formalización de una Teoría de las Maquinas Secuenciales y de los Autómatas 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 Teoría de la Información. 1956 en adelante Noam Chomsky propone varios modelos para clasificar: Gramáticas y Lenguajes formales. Noam Chomsky propone en 1956 tres modelos para la descripción de lenguajes, que son la base de su futura jerarquía de los tipos de lenguajes (1959), que ayudo también en el desarrollo de los lenguajes de programación. Chomsky estableció una clasificacion de gramáticas de acuerdo con el formato de sus producciones y distinguió cuatro clases fundamentales de lenguajes y relaciones de inclusión entre ellas. Fuente: El Autor Los siguientes recursos web, lo contextualizan en la historia de la temática. Ver estos recursos, resulta digerible a historia que un cúmulo de texto repleto de fechas y estadísticas que se tornan poco comprensibles. Les motivo que los revisen para ubicarse en la medida y alcance de la temática que estaos abordando.
  • 28. 28 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Tabla 4: Recursos web referentes a la historia de la temática. DESCRIPCIÓN DE VIDEO CANAL Tras las huellas de la mente de Alan Turing. La polémica historia de esta brillante mente. Un reto complejo para quienes quieran entender y seguir sus pasos. "Un genio trágico". Solo escúchenla y quedarán sorprendidos del legado que Alan Turing ha dejado. Historia de Alan Turing. (23 de Junio de 1912 - 7 de Junio de 1954). Matemático inglés. Historia contada al estilo de Diana Uribe. (Historiadora Colombiana a quién admiro y le expreso mi más sentido agradecimiento por contarnos todas las historias que han marcado el rumbo de la humanidad). Le reconozco sus derechos intelectuales por esta narración que comparto a quienes me siguen en este reto de comprender como funcionan las máquinas computacionales. http://youtu.be/tO-WgRXKcAo Cuéntame una historia. Alan Turing http://youtu.be/01LBHqKrVvg Charla “El legado de Alan Turing” http://youtu.be/nSZZRzj6zPI Película que cuenta la historia de un genio controvertido "Alan Turing". Con subtítulos en español. http://youtu.be/uoKLtu2Am6k DANGEROUS KNOWLEDGE. “Conocimientos peligrosos”. El documental, narrado por David Malone, se centra en la vida de cuatro brillantes matemáticos - Georg Cantor, Ludwig Boltzmann, Kurt Gödel y Alan Turing -, lo que rodeó sus descubrimientos y las reacciones de la comunidad científica hacia ellos, así como la evolución de sus personas hasta el declive. Sus trabajos han llegado a influir enormemente incluso en ámbitos no científicos, o en la perspectiva de como observamos el mundo en general y nuestro pequeño 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 código Eigma”. El trabajo de los criptógrafos. http://youtu.be/EVQNosg6wEQ Fuente: <El autor> LECCIÓN 2. - ALFABETOS, CADENAS Y LENGUAJES Procedamos a definir componentes de un lenguaje, independiente de la jerarquía o estructura a que pertenezcan, como lo veremos más adelante: Definición1. Un Alfabeto es un conjunto finito A. Sus elementos se llamaran símbolos o letras. Para denotar el alfabeto se usara el símbolo Σ o en algunos casos se especificaran con las primeras letras mayúsculas del abecedario, dependiendo como se formule el
  • 29. 29 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona problema. Los símbolos de un alfabeto pueden ser números, letras, entre otros y suelen estar escritos en minúsculas. Ejemplo: Sea A = {0,1} indica el Alfabeto A compuesto por los símbolos 0,1 No hay que confundir los símbolos del alfabeto B con los símbolos del lenguaje (o más precisamente meta-lenguaje) que usamos para expresarnos todos los días. Son dos cosas totalmente distintas. Nosotros para comunicarnos usamos un lenguaje que tiene unos símbolos que son las letras del alfabeto latino, los números, las letras del alfabeto griego, y una serie de símbolos especiales propios del lenguaje matemático (el meta-lenguaje). Con este lenguaje también definimos los conceptos de alfabeto y símbolo. Definición2. Una palabra o cadena sobre un alfabeto Σ es una sucesión finita de elementos de Σ. Se suele denotar con la letra omega  Se concluye que  es una palabra sobre Σ, si y solo si U a ....an 1  donde a i n i , 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 *  Definición3. Si *   entonces la longitud de la palabra  es el número de símbolos de Σ que contiene. La longitud de  se denota | |. Es decir si n a ....a 1   entonces | | = n Definición4. La palabra vacía es la palabra de longitud cero. Es la misma para todos los alfabetos y se denota como  Definición5. Al conjunto de todas las palabras o cadenas sobre el alfabeto Σ en las que se excluya la cadena vacía  se denota como:   Tabla 5: Recursos web para alfabetos, cadenas y lenguajes. DESCRIPCIÓN DE VIDEO CANAL CANAL Descripción de Lenguaje, Alfabeto y expresión regular. http://youtu.be/DnNT1dF4keQ http://www.veoh.com/watch/v616083236Thn5HJn Fuente: <El autor>
  • 30. 30 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS 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 concatenación: Ejemplo 22 Para definir la concatenación: Dada las siguientes cadenas , formadas desde el alfabeto Σ : Concatenación: Si n n , , a .....a , b .....b 1 1 *        , se llama concatenación de  y  a la cadena . (o simplemente  ) dada por n m a .....a b .....b 1 1 . Nótese que la concatenación puede denotarse por un punto en medio de las dos cadenas. Propiedades de la concatenación: Algunas de ellas son:  * |. || |  | |,,   Asociativa: * .(. )  (.). ,,,   Elemento neutro: * . . ,  Otras propiedades derivadas de la concatenación se referencian así: Si *   entonces    0 y . , 1    i i   para todo i  0 Se define una cadena inversa así: Si * 1 ...  n  a a entonces la cadena inversa de  es la cadena * 1 1  ...   a a n  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 jerarquía que se verá en la siguiente lección) sobre el alfabeto Σ Ejemplo 23 Lenguajes: la forma de describir un lenguaje se muestra en los siguientes ejemplos: { , , , } 1 L  a b c  Lenguaje uno compuesto por los símbolos a,b,c de un determinado alfabeto incluyendo la cadena vacía.
  • 31. 31 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona { | 0,1,2...} 2 L  a b i  i i Lenguaje dos compuesto por las palabras formadas de una sucesión de símbolos a, seguida de la misma cantidad de símbolos b. { | } 1 * 3     L    Lenguaje tres compuesto por las palabras formadas con símbolos 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 unión e intersección de lenguajes, dada la condición de conjuntos que tienen estos lenguajes, entonces aplica también las operaciones de concatenación. La concatenación de dos lenguajes está dada por la siguiente expresión: dados L1 y L2 (dos lenguajes sobre el alfabeto Σ) { | , } 1 2 1 2 1 1 2 2 L L    L  L Algunas propiedades se definen como.  Asociativa: 1 2 3 1 2 3 L (L L )  (L L )L  Elemento Neutro: {}L  L{}  L  L =  L =  (Lenguaje que contiene cero palabras o cadenas)  { } 0 L    L L L i i  1  i i L L 0 *   Clausura o estrella de Kleene de un lenguaje L es el lenguaje obtenido de acuerdo a esa expresión.  i i L L 1   Obtención de un lenguaje con la operación L+  L  L si L   *  L  L  si L  {}  *
  • 32. 32 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona LECCIÓN 3. AUTÓMATAS Y LENGUAJES Un aspecto a definir y diferenciar cuando se inicia el estudio de Lenguajes y Gramáticas, es la diferencia que existe entre los lenguajes naturales (LN) y los lenguajes de programación (LP). Los (LP) se rigen por reglas de sintaxis y semántica más complejas y definidas y que finalmente son manejadas por los computadores. En los lenguajes naturales (LN), estos no están tan definidos ni delimitados, ya que están controlados por reglas gramaticales que evolucionan y derivan nuevos lenguajes. Gracias a las estructuras definidas de los lenguajes de programación (LP) (las reglas gramaticales (sintaxicas y semánticas) han posibilitados la construcción de traductores automáticos para estos lenguajes. Algunas definiciones que contextualizan estas temáticas referencian a los Compiladores como software que traduce un programa escrito en un determinado lenguaje de programación a otro lenguaje de programación, con el objeto de generar u programa equivalente que una máquina computacional pueda interpretar para podérselo mostrar al usuario. “En ciencias de la computación, intérprete o interpretador es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.”2 El proceso de traducción 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 traducción. 2 Tomado de https://es.wikipedia.org/wiki/Int%C3%A9rprete_%28inform%C3%A1tica%29 con acceso Julio de 2013
  • 33. 33 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Figura 8: Proceso de traducción realizado por un compilador Fuente:<El autor> LECCIÓN 4. LENGUAJES REGULARES Entramos a clasificar los lenguajes. Ya que los lenguajes en sí son conjuntos de secuencias de símbolos y cada uno comparte una cierta propiedad. La clasificación de estos lenguajes se dio en 1959, cuando N. Chomsky propuso una jerarquía de lenguajes, donde las clases más complejas incluyen a las más simples. En realidad lo que clasificó Chomsky en cuatro familias, fueron gramáticas (téngase en cuenta que de acuerdo a las reglas de producción de estas gramáticas, estas generan determinados lenguajes). Si se tiene una gramática G = VN, VT, S, P) se clasifican las gramáticas y los lenguajes generados ´por ellas de la siguiente forma:
  • 34. 34 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Figura 9: Clasificación de los Lenguajes. Jerarquía de Chomsky. N Fuente:<El autor> TIPO 3: (Gramáticas regulares). Los Lenguajes generados por estas gramáticas se llaman “Lenguajes Regulares”, y el conjunto de todos estos lenguajes es la clase L3, que es la clase más pequeña, e incluye a los lenguajes más simples. Un ejemplo de lenguaje regular es el conjunto de todos los números pares enteros positivos. Estas gramáticas 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 →  dónde: A,C  VN y b  VT  Lineales por la Izquierda: Todas las producciones son de la forma: A → Cb A → b A →  Para cada Gramática lineal por la derecha existe una Gramática lineal izquierda que genera el mismo lenguaje y viceversa. Los Lenguajes Regulares son lenguajes formales que tienen estas características:
  • 35. 35 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona  Puede ser descrito mediante una expresión regular (expresar de forma compacta cómo son todas las cadenas de símbolos que le pertenecen).  Puede ser generado mediante una gramática regular (obtener todas las cadenas de símbolos que le pertenecen).  Puede ser reconocido mediante un autómata finito (saber si una cadena de símbolos pertenece a él o no) TIPO 2: (Gramáticas libres del contexto). Las producciones son de la forma: A →  donde: A  VN y   (VN U VT)* Los lenguajes generados por este tipo de gramáticas se llaman lenguajes libres del contexto y la clase es L2, que incluyen a los Lenguajes Regulares. Por ejemplo, la mayoría de los lenguajes de programación son Lenguajes Libres de Contexto. TIPO 1: (Gramáticas 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 gramáticas de tipo 1 se llaman lenguajes sensibles al Contexto y su clase es L1: TIPO 0: (Gramáticas con estructura de frase) Son las gramáticas más generales, que por ello también se llaman gramáticas 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 vacío Los lenguajes generados por estas gramáticas son los lenguajes con estructura de frase, que se agrupan en la clase L0: Estos lenguajes también se conocen en el campo de la Teoría de la Compatibilidad como lenguajes recursivamente enumerarles.
  • 36. 36 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona La siguiente tabla muestra la asociación de las gramáticas con el lenguaje que genera y el tipo de máquina abstracta que la trabaja: Tabla 6: Asociación de gramáticas, lenguaje y máquinas. GRAMÁTICAS LENGUAJES MAQUINAS Regular o de Tipo 3 Regular o de Tipo 3 Autómatas Finitos Libre de contexto o de Tipo 2 Libre de contexto o de Tipo 2 Autómatas de Pila Sensible al contexto o de Tipo 1 Sensible al contexto o de Tipo 1 Autómatas linealmente acotados Sin Restricciones o de Tipo 0 Sin Restricciones o de Tipo 0 Máquinas de Turing (MT). Fuente:<El autor> Cuanto menor es el tipo, mayor es el poder expresivo del lenguaje generado y más complejidad tiene su tratamiento por parte de una máquina. Finalmente se define un Teorema 4: (Jerarquía 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 gramática de tipo i. La clase o familia de lenguajes de tipo i se denota por Li. LECCIÓN 5. AUTÓMATA La palabra autómata evoca algo que pretende imitar las funciones propias de los seres vivos, especialmente relacionadas con el movimiento, por ejemplo el típico robot antropomorfo. Un ejemplo de una “maquina real” que automatiza un proceso puede ser una máquina empacadora de algún producto que se fabrique en serie y con una serie de instrucciones, pasos y características definidas e iguales para cada salida (producto final).
  • 37. 37 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona En el campo de los Traductores, Procesadores, Compiladores e Intérpretes, lo fundamental no es la simulación del movimiento, sino la simulación de procesos para tratar información. Este es el enfoque dado a la temática de este curso. Las maquinas que se estudiarán son abstracciones matemáticas 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 analogía). La información se codifica en cadenas de símbolos, y un autómata es un dispositivo que manipula cadenas de símbolos que se le presentan a su entrada, produciendo otras tiras o cadenas de símbolos a su salida. El autómata recibe los símbolos de entrada, uno detrás de otro, es decir secuencialmente. El símbolo de salida que en un instante determinado produce un autómata, no sólo depende del último símbolo recibido a la entrada, sino de toda la secuencia o cadena, que ha recibido hasta ese instante. En esta parte estudiaremos las maquinas abstractas más simples, los autómatas finitos, las cuales están en relación con los lenguajes regulares Todo lo anterior conduce a definir un concepto fundamental: estado de un autómata que trata la temática de “modelado de sistemas discretos”. La noción más básica de los modelos de eventos discretos es la de estado. Un estado es una situación en la que se permanece un cierto lapso de tiempo. Se expresan los modelos de estados y eventos de manera gráfica. (En la Tabla 1: Símbolos usados encontrará una descripción gráfica 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 triángulo o flecha y un estado final o de aceptación (halt) mediante doble círculo. 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 diseño de los modelos que estamos estudiando, pues “recuerdan” las situaciones básicas por las que pasa el proceso. Algunas características de diseño 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 simultáneamente.
  • 38. 38 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona  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 más 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. MÁQUINA DE ESTADOS FINITOS: Describimos ahora las ”maquinas abstractas” de acá en adelante para el curso y les identificamos los siguientes componentes: Figura 10: Máquina de estados. Estructura Fuente:<El autor>  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 símbolo lo “lee” y manda esta
  • 39. 39 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona información al control (digámoslo así controlado por unas reglas o producciones). El recorrido puede ser a izquierda o derecha según el diseño de la máquina. La “aguja” del control puede estar cambiando de posición, (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 construcción de autómatas. DESCRIPCIÓN DE VIDEO CANAL CANAL Construcción, diseño e interpretación de los componentes de un autómata (tuplas) http://youtu.be/HF9-e28TWb0 http://www.veoh.com/watch/v61609207mprr4pFS Fuente: <El autor> CAPITULO 2. AUTÓMATAS FINITOS Los autómatas finitos son capaces de reconocer solamente, un determinado tipo de lenguajes, llamados Lenguajes Regulares, que pueden ser caracterizados también, mediante un tipo de gramáticas llamadas también 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 gramáticas y sus reglas de producción. 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 capítulo, identificamos los componentes de los autómatas, antes de llegar a caracterizar los lenguajes que estos puedan generar. LECCIÓN 6. DEFINICIÓN FORMAL DE AUTÓMATAS FINITOS La definición formal implica presentar en un formato matemático (no en gráficos o ilustraciones) los componentes de un autómata y la información de un diagrama de estados. “Los símbolos y notaciones matemáticas usados, serán los que durante todo el desarrollo del contenido se aplicarán para describir matemáticamente estas máquinas. Otros autores usan otra
  • 40. 40 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona simbología, que solo difiere en la forma mas no en la interpretación de las definiciones formales de estas máquinas. Se ha estandarizado las simbología más sencilla para efectos de didáctica e interpretación” Definición 6: Una máquina de estados finitos M es un quíntuplo ( 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 función de transición, que a partir de un estado y un símbolo del alfabeto obtiene un nuevo estado. REPRESENTACIÓN DE AUTÓMATAS: Los autómatas 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á más adelante en la lección de Expresiones Regulares). Ejemplo 24 Se puede representar el autómata 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 función δ : {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
  • 41. 41 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona La tabla de transición correspondiente a este autómata será: Figura 11: Tabla de transición de un Autómata Finito. Diagramas de Moore: Los diagramas de Moore son otra forma de representar las funciones de transición y salida de un autómata. 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 estaría definido así: Figura 12: Diagrama de Moore para un Autómata Finito. Tabla 8: Recursos web para diagramas de Moore. DESCRIPCIÓN DE VIDEO CANAL CANAL Construcción y diseño de autómatas, Diagramas de Moore, tablas de transición. http://youtu.be/3kWdHOLw-AQ http://www.veoh.com/watch/v6168933229Fx8G4A Fuente: <El autor>
  • 42. 42 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona FUNCIONAMIENTO DE LOS AUTÓMATAS 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 fácilmente en los diagramas de estados. Simplemente hay que pasar de estado a estado siguiendo las flechas de las transiciones, para cada carácter de la palabra de entrada, empezando por el estado inicial. Para el ejemplo de la Figura 12 y la palabra de entrada 101 el autómata inicia su operación en el estado q0 (estado inicial) y al recibir el primer símbolo el 1 , pasa al estado final q2 (podría decirse que allí finalizaría pero faltan por evaluar dos símbolos más de la cadena o palabra ) luego del estado q2 regresa al estado q1 cuando entra el símbolo 0 y para el siguiente símbolo 1 se cambia de estado al q2 llegando a un estado de aceptación 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 demás estados no hayan intervenido, no quiere decir un diseño errado en la Máquina M (autómata). 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 leído hasta el momento); esto quiere decir que son máquinas de memoria limitada. En última instancia, las computadoras digitales son máquinas de memoria limitada, aunque la cantidad de estados posibles de su memoria podría ser enorme. LECCIÓN 7. AUTÓMATAS FINITOS DETERMINÍSTICOS (AFD) La definición dada en la Lección 6, corresponde a los autómatas finitos deterministas, abreviado “AFD”. Es importante definir el porqué del “determinismo” y para ello enfoquémonos en el papel o cómo se interpreta la función de transición  : La función de transición indica a qué estado se va a pasar sabiendo cuál es el estado actual y el símbolo que se está leyendo. No es simplemente una “relación” lo que implica que para un estado y un símbolo del alfabeto dados, habrá un y solo un estado siguiente. En otras palabras la característica de “determinismo” es la que perite saber siempre y después de una transición, cuál será el siguiente estado.
  • 43. 43 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 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. Cómo es inicializado el autómata: En la figura 10 podemos verificar como se inicializa: 1.  se coloca en la cinta de entrada, con un símbolo en cada celda. (en este caso  es aaabab ) 2. el cabezal de lectura se apunta al símbolo más a la izquierda de  . En este caso el símbolo a 3. el estado actual pasa a ser q0 Ciclo de ejecución básico del autómata: Como cualquier computador, una vez se ha inicializado, comienza la ejecución desde la palabra de entrada  . 1. se lee el símbolo actual, que es el apuntado por el cabezal de lectura. Si el cabezal apunta a una celda vacía entonces el AFD termina su ejecución, aceptando la palabra en caso de que el estado actual sea final y rechazando la palabra en caso contrario. Esto ocurre cuando se ha leído toda la palabra de entrada, y se produce una situación similar a tener una condición “fin de chero" en la ejecución de un programa 2. se calcula el estado siguiente a partir del estado actual y del símbolo actual según la función de transición, esto es,  (estado actual; símbolo 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 Autómata M Finito determinista: M =(K, Σ, q0, δ, F) donde: K = {q0, q1, q2, q3} Σ = {x,z} q0 Es el estado Inicial F = q3 donde la función de transición 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 δ (q3 , z ) = q2 δ (q3 , x ) = q1
  • 44. 44 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona La tabla de transición correspondiente a este autómata será: (tabla generada en el simulador Visual Autómata Simulator VAS 3) Figura 13: Tabla de transición para un Autómata Finito generado con software simulador VAS. y el diagrama de transición (moore) correspondiente será: Figura 14: Diagrama de Moore asociado a un AFD. El diagrama de transición de un AFD tiene por cada nodo un solo arco etiquetado con cada uno de los símbolos del alfabeto. Algunas condiciones para que estos autómatas sean válidos son:  el diagrama de transición de un AFD tiene por cada nodo un sólo arco etiquetado con cada uno de los símbolos del alfabeto. 33 VAS. Visual Autómata Simulator. Disponible en internet <http://www.vas.org>
  • 45. 45 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona  Otra condición es que debe haber exactamente un estado inicial.  la cantidad de estados finales puede ser cualquiera, inclusive cero (para algunos modelos), hasta un máximo de |K| (la cantidad de estados). De manera general, si un AFD se encuentra en un estado q y recibe un símbolo  pasa al estado q" si  (q,  ) = q" , esto es, si ((q,  ), q" ) Algunas definiciones matemáticas relacionadas a los AFD son: Definición 7: Si M = (K, Σ,  , s, F) es un autómata de estado finito, entonces una configuración es un elemento del producto cartesiano K x Σ* Entiéndase por configuración un par (q, ) donde q es un estado y  una palabra. En este orden q será el estado en el que se encuentra el autómata y  lo que queda por leer en un momento dado. Definición 8: Si M = (K, Σ,  , s, F) es un autómata finito determinista y   Σ* es una palabra, entonces se llama configuración inicial asociada a es apalabra a la configuración (q0,  ). Esto se explica indicando que la configuración inicial indica que estamos en el estado inicial y nos queda por leer toda la palabra  . Definición 9: Esta definición hace referencia a definir la relación o el paso que se da en un autómata entre dos configuraciones: Si M = (K, Σ,  , s, F) es un autómata finito determinista y (p,  ) , (q,  ) son dos configuraciones, decimos que puede pasar de (p,  ) a (q,  ) en una secuencia de cálculo, lo que se denota como (p,  ) ├ (q,  ) si y solo si  = a , donde a  Σ y  (p,a) = q. LECCIÓN 8. AUTÓMATAS FINITOS NO DETERMINÍSTICOS (AFND) Una extensión a los autómatas finitos deterministas es la de permitir que de cada nodo del diagrama de estados salga un número de flechas mayor o menor que Así, se puede permitir que falte la flecha correspondiente a alguno de los símbolos 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
  • 46. 46 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona palabra vacía. A estos autómatas finitos se les llama no Determinísticos o no deterministas (abreviado AFND). Al retirar algunas de las restricciones que tienen los autómatas finitos Determinísticos, su diseño para un lenguaje dado puede volverse más 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 autómatas finitos no Determinísticos (AFND) aceptan exactamente los mismos lenguajes que los autómatas determinísticos. Sin embargo, serán importantes para demostrar teoremas y por su más 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 determinístico. Una versión en principio más potente es un AFND, donde frente a un estado actual y un siguiente caracter, es posible tener cero, uno o más estados siguientes. La configuración en quíntupla de elementos es la misma que las de un AFD (Lección 6), excepto la función de transición 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 símbolo 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 también se representan mediante tablas o diagramas de transición. En el diagrama de transición, el no determinismo se descubre porque hay algún nodo del que parten dos o más arcos etiquetados con el mismo símbolo del alfabeto, o falta algún arco para algún símbolo del alfabeto. En la Figura 15 podemos ver un ejemplo de tabla y diagrama de transición de un Autómata Finito No Determinista (AFND). El AFND de la figura 15 se describe formalmente como: M = (Σ, K,  , q1 , F) donde Σ = {a,b}, F = {q 4 } s = {q1} y K = {q1 , q 2 , q3 , q 4 }, y la función (que también se puede describir así) está dada por:
  • 47. 47 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona  = {(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 DESCRIPCIÓN DE VIDEO CANAL CANAL Lenguaje aceptado por un Autómata. Tablas de transición y descripción de autómata finito. http://youtu.be/eWUfPJD9A_0 http://www.veoh.com/watch/v61683101FNRSfxSP Fuente:<El autor> LECCIÓN 9. AUTÓMATA FINITO CON  TRANSICIONES (AFND- ) básicamente es un AFND al que s ele permite cambiar de un estado sin necesidad de consumir o leer un símbolo de la entrada. La función de transición está definida como:  : K x (Σ U { }) →  (K) La tabla de transición de un AFND-  es como la de un AFND excepto que se le añade una columna correspondiente a  , de forma que en la posición T[(q,  )] estará el conjunto de estados que determine  (q,  ).
  • 48. 48 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Si se tiene un AFND- representado en su diagrama de transición en la figura 16, si se evalúa el estado q6 y el símbolo actual que guarda en memoria ese estado es cero (0), el autómata puede decidir en forma “no determinista” entre leer la cadena vacía y llegar al estado q7 conservando el símbolo 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 -  LECCIÓN 10. LENGUAJE ACEPTADO POR UN AF Los AF reconocen cierto tipo de lenguajes, pero esto depende de la configuración del autómata. Esta configuración viene dada por el instante del autómata en un momento dado y la porción de cadena de entrada que le queda por leer (no la cadena completa). La configuración de un autómata finito (AF) es un elemento (q,  ) (K x Σ*) está dada por:  Configuración inicial: (q0,  ) donde q0 es el estado inicial y  la palabra de entrada.  Configuración de parada: cualquier configuración en la que el autómata puede parar su ejecución, bien porque se haya procesado toda la entrada o bien porque se haya llegado a una situación donde no es aplicable ninguna transición.
  • 49. 49 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona  Configuración de aceptación: (qF,  ) donde qF, es un estado final del autómata. Una vez alcanzada esta configuración el autómata 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 autómata (los que tienen doble círculo en los diagramas, o que son parte del conjunto F en la representación 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. 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 autómata 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 Autómata”, se está haciendo referencia a describir de manera general, matemática y explícitamente en texto combinado, que palabras o cadena se pude aceptar esa máquina: L(M) = {  │alguna propiedad de  } Ejemplo 28 ; Dado el siguiente AFD M = (Σ, K,  , q0, F) donde
  • 50. 50 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Σ = {a,b}, F = {q2} s = {q0} y K = {q0, q1 , q 2 } y representado en el diagrama de estados de la figura 17. Figura 17: Lenguaje asociado a un AFD El autómata reconoce el lenguaje: L = {  {a,b}* │ = abia, i ≥ 0 } Y se interpreta así: El autómata 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 más b´s y que finalizan con una a. Tabla 10: Recursos web para cadenas válidas DESCRIPCIÓN DE VIDEO CANAL CANAL Lenguaje aceptado por un Autómata (AF). Como se debe describir el lenguaje que representa. Cadenas o palabras que acepta un autómata. http://youtu.be/QdRlbzVsvLQ http://youtu.be/ASg_ZUXgvZk http://www.veoh.com/watch/v61610759jHdGRr59 http://www.veoh.com/watch/v61698636anxKfprR Fuente:<El autor>
  • 51. 51 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona CAPITULO 3: EXPRESIONES Y LENGUAJES REGULARES LECCIÓN 11. LENGUAJES REGULARES Y EXPRESIONES REGULARES Los Lenguajes regulares son los más simples y restringidos dentro de la jerarquía de Chomsky. Estos lenguajes pueden además ser descritos mediante dos representaciones que veremos: las Expresiones Regulares y las Gramáticas Regulares que serán los temas a tratar en las siguientes lecciones. También 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, también se obtiene un lenguaje regular. L1 U L2 = L3 Definición 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 unión o la concatenación de otros lenguajes regulares R1 y R2, L = R1 U R2 o L = R1R2 respectivamente  L es la cerradura de Kleene de algún lenguaje regular, L = R*. LECCIÓN 12. SIGNIFICADO DE LAS EXPRESIONES REGULARES Una expresión regular (ER) es una notación normalizada para representar lenguajes regulares, es decir, lenguajes generados por gramáticas de tipo 3. Las expresiones regulares permiten describir con exactitud y sencillez cualquier lenguaje regular. Para definir una ER se pueden utilizar todos los símbolos del alfabeto Σ y, además  y  . Los operadores que también se pueden utilizar son: + representa la unión.  representa la concatenación (este símbolo no se suele escribir). * representa el cierre de Kleene ( ) modifican las propiedades de los demás operadores.
  • 52. 52 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Una ER también se define bajo los siguientes criterios: (Se muestran también los lenguajes que describen estas ER) 1.  es una ER que representa el lenguaje vacío (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  +  también lo es y representa al lenguaje L +  = L U L 5. Si  y  son ER entonces   también lo es y representa al lenguaje L  = L L 6. Si  es una ER entonces  * también 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 paréntesis, de forma análoga a como se hace con las expresiones aritméticas. Ejemplo 29 aa+b*a es una ER sobre el alfabeto Σ={a,b} (nótese que por simplicidad se ha omitido el operador ▪ ) Esta Er es distinta de la ER (aa + b*)a. Un ejemplo de una ER no válida: La cadena (+a*ba) no es una ER. Ejemplo 30 Dado Σ = {0,1} y la ER  = 0*10* analizando las propiedades de concatenación 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 continuación enumeramos una serie de propiedades que cumplen las expresiones regulares, derivadas de las propiedades de las operaciones con lenguajes:
  • 53. 53 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Figura 18: Propiedades de las ER Fuente: <NAVARRETE, I; Teoría de Autómatas y Lenguajes Formales> Una propiedad de inclusión 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 combinación 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 (ac│b)* es representada en la figura 19: (Nótese que acepta la cadena  Figura 19: ER representada en una máquina de estados (ac│b)* 4. 00 es una ER con el Lenguaje asociado {00} 5. 01* + 0 es una ER que denota el Lenguaje L = {01i : i ≥ 0 }
  • 54. 54 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona 6. (1 + 10)* representa el lenguaje de las cadenas que comienzan por 1 y no tienen dos ceros consecutivos. 7. (0 + 1 )* 011 representa el lenguaje de las cadenas que terminan en 011 8. 0* 1* representa el lenguaje de las cadenas que no tienen un 1 antes de un 0 9. Si Σ = {a,b,c} y si (a +  ) b* es una ER que denota el Lenguaje L = {ai bj : i = 0,1 : j ≥ 0 } LECCIÓN 13. AUTÓMATAS FINITOS Y EXPRESIONES REGULARES Hasta ahora, la relación entre los autómatas finitos y las expresiones regulares se ha tratado de una manera intuitiva. Ahora formalizaremos dicha relación probando que para cualquier expresión regular exista un autómata finito equivalente. Lo que se establece ahora con un teorema fundamental en el estudio de los Autómatas: Teorema5 de Kleene: Un lenguaje es regular si y sólo si es aceptado por algún autómata finito. Hasta ahora hemos confirmado como las, ERs, AFDs y AFNDs son mecanismos equivalentes para denotar los lenguajes regulares. CONVERSIÓN DE ER a AF: Vamos a establecer unas condiciones útiles para transformar una expresión regular en autómata finito y viceversa. El objetivo es hacer una transformación gradual que vaya convirtiendo la ER en AF. Para hacer la transformación gradual de ER a AFN se requiere utilizar alguna representación de los lenguajes regulares que sea intermedia entre las ER y los AFN. Para ello se usan las gráficas de transición (GT). Estas últimas son esencialmente AFND en que las etiquetas de las flechas tienen expresiones regulares, en lugar de palabras. Entonces se definen las gráficas de transición (GT) así: son por lo tanto quíntuplos M = (Σ, K,  , q1 , F) donde  K x ER x K La figura 20 ilustra un ejemplo de GT.
  • 55. 55 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA MODULO CURSO: 301405 – AUTÓMATAS Y LENGUAJES FORMALES. Ing. (Msc). Carlos Alberto Amaya Tarazona Figura 20: Gráfica de transición (GT) En este ejemplo en particular se evidencia que se debe aceptar palabras que tienen primero una sucesión de a‟s, luego repeticiones de ab, y finalmente repeticiones de b‟s. La función completa estaría dada por: ({q0, q1}, {a, b}, {(q0, a, q0), (q0, (ab)*, q1), (q1, b, q1)}, q0, {q1}) Los AFN son un subconjunto propio de las GT, puesto que las palabras en las etiquetas de un AFN pueden ser vistas como expresiones regulares que se representan a sí mismas. Figura 21: Operadores básicos de conversión de AF a ER