301405 automatas y lenguajes formales 2013-ii

176

Upload: dexterdexter123

Post on 25-Oct-2015

275 views

Category:

Documents


21 download

TRANSCRIPT

Page 1: 301405 Automatas y Lenguajes Formales 2013-II
Page 2: 301405 Automatas y Lenguajes Formales 2013-II

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)

Duitama (ZCBOY)

Versión 2 – 2013.

Page 3: 301405 Automatas y Lenguajes Formales 2013-II

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 derivacón

19. Transformación de las GLC y Formas Normales

20.Liitacioes 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

Page 4: 301405 Automatas y Lenguajes Formales 2013-II

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

Page 5: 301405 Automatas y Lenguajes Formales 2013-II

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

LECCIÓN 4. LENGUAJES REGULARES ........................................................................................ 32

LECCIÓN 5. AUTÓMATA ............................................................................................................ 35

CAPITULO 2. AUTÓMATAS FINITOS ............................................................................................... 38

LECCIÓN 6. DEFINICIÓN FORMAL DE AUTÓMATAS FINITOS .................................................... 38

LECCIÓN 7. AUTÓMATAS FINITOS DETERMINÍSTICOS (AFD) .................................................... 41

LECCIÓN 8. AUTÓMATAS FINITOS NO DETERMINÍSTICOS (AFND)............................................ 44

LECCIÓN 9. AUTÓMATA FINITO CON TRANSICIONES ........................................................... 46

Page 6: 301405 Automatas y Lenguajes Formales 2013-II

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

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

LECCIÓN 11. LENGUAJES REGULARES Y EXPRESIONES REGULARES ......................................... 50

LECCIÓN 12. SIGNIFICADO DE LAS EXPRESIONES REGULARES .................................................. 50

LECCIÓN 13. AUTÓMATAS FINITOS Y EXPRESIONES REGULARES ............................................. 53

LECCIÓN 14. EQUIVALENCIA DE AFD Y AFND ............................................................................ 59

LECCIÓN 15. MINIMIZACIÓN DE AUTÓMATAS ......................................................................... 62

UNIDAD 2. LENGUAJES INDEPENDIENTES DEL CONTEXTO ............................................................... 68

CAPÍTULO 4 CONCEPTOS GENERALES ........................................................................................... 68

LECCIÓN 16. – GRAMÁTICAS REGULARES ................................................................................. 69

LECCIÓN 17. LENGUAJES LIBRES DE CONTEXTO Y SUS MÁQUINAS. ........................................ 75

LECCIÓN 18. ARBOLES DE DERIVACIÓN .................................................................................... 77

LECCIÓN 19. TRANSFORMACIÓN DE LAS GLC Y FORMAS NORMALES ...................................... 84

LECCIÓN 20. LIMITACIONES DE LOS LLC .................................................................................... 89

CAPITULO 5. AUTÓMATAS DE PILA ............................................................................................... 91

LECCIÓN 21. DEFINICIÓN DE AUTÓMATA CON PILA ................................................................. 91

LECCIÓN 22. FUNCIONAMIENTO DE LOS AUTÓMATAS DE PILA ............................................... 92

LECCIÓN 23. DISEÑO DE AUTÓMATAS DE PILA ......................................................................... 94

LECCIÓN 24. FUNCIONES QUE SE APLICAN SOBRE LOS STACKS. (PILAS). ................................ 97

LECCIÓN 25. COMBINACIÓN MODULAR DE AUTÓMATAS DE PILA .......................................... 99

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

LECCIÓN 26. LENGUAJE ACEPTADO POR UN AP ..................................................................... 100

Page 7: 301405 Automatas y Lenguajes Formales 2013-II

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

................................................................................................................................................. 101

LECCIÓN 28. PROPIEDADES DE CLAUSURA DE LOS LENGUAJES LIBRES DE CONTEXTO .......... 104

LECCIÓN 29. ALGORITMOS DE DECISIÓN PARA LOS LENGUAJES LIBRES DE CONTEXTO. ....... 105

LECCIÓN 30. PROBLEMAS INDECIDIBLES PARA LENGUAJES LIBRES DE CONTEXTO. .............. 107

UNIDAD 3 LENGUAJES ESTRUCTURADOS POR FRASES. ................................................................. 108

CAPITULO 7 MAQUINAS DE TURING. .......................................................................................... 108

LECCIÓN 31. FORMALIZACIÓN DE LAS MT. ............................................................................. 109

LECCIÓN 32. FUNCIONAMIENTO DE LA MÁQUINA DE TURING. ............................................. 112

LECCIÓN 33. DIFERENCIAS ENTRE LAS COMPUTADORAS Y LAS MÁQUINAS DE TURING ..... 115

LECCIÓN 34. LA MAQUINA UNIVERSAL DE TURING. ............................................................... 116

LECCIÓN 35. LENGUAJES ACEPTADOS POR LA MAQUINA DE TURING. .................................. 117

CAPITULO 8: MAQUINAS DE TURING Y COMPUTACIÓN. ............................................................ 119

LECCIÓN 36. TESIS DE CHURCH /TURING. ............................................................................... 119

LECCIÓN 37. VARIANTES DE UNA MAQUINA DE TURING. ...................................................... 122

LECCIÓN 38. PROBLEMAS DE HILBERT. ................................................................................... 123

LECCIÓN 39. PROBLEMAS INSOLUBLES PARA LA TEORÍA DE LENGUAJES.............................. 127

CAPITULO 9. FUNCIONES RECURSIVAS ....................................................................................... 128

LECCIÓN 40. LENGUAJES DECIDIBLES ...................................................................................... 128

LECCIÓN 41. PROBLEMAS DE HALTING .................................................................................. 130

LECCIÓN 42. DECIBILIDAD DE TEORÍAS LÓGICAS .................................................................... 131

LECCIÓN 43. REDUCIBILIDAD DE TURING ................................................................................ 133

LECCIÓN 44. APLICACIONES DE LAS MAQUINAS DE ESTADOS. ALGORITMO DE TRELLIS. ..... 134

Page 8: 301405 Automatas y Lenguajes Formales 2013-II

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

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

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

BIBLIOGRAFIA .................................................................................................................................. 175

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 32 Figura 9: Clasificación de los Lenguajes. Jerarquía de Chomsky. N 33 Figura 10: Máquina de estados. Estructura 37 Figura 11: Tabla de transición de un Autómata Finito. 40 Figura 12: Diagrama de Moore para un Autómata Finito. 40 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. 43 Figura 15: Diagrama de Moore asociado a un AFND. 46 Figura 16: Diagrama de Moore asociado a un AFND - 47 Figura 17: Lenguaje asociado a un AFD 49 Figura 18: Propiedades de las ER 52 Figura 19: ER representada en una máquina de estados 52 Figura 20: Gráfica de transición (GT) 54 Figura 21: Operadores básicos de conversión de AF a ER 54 Figura 22: Transformación de Er a AF. 55 Figura 23: Obtención de una ER a partir de un AF 56 Figura 24: Obtención de una ER a partir de un AF PASO 1 57 Figura 25: Obtención de una ER a partir de un AF PASO 2 57 Figura 26: Obtención de una ER a partir de un AF PASO 3. Eliminación de nodo. 58 Figura 27: Obtención de una ER a partir de un AF PASO 4. Eliminación de nodo q0. 58 Figura 28: Obtención de una ER a partir de un AF PASO 5. Fusión de expresiones 58

Page 9: 301405 Automatas y Lenguajes Formales 2013-II

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 59 Figura 30: AF distintos que aceptan un miso lenguaje. 60 Figura 31: Árbol de comparación de AF. 61 Figura 32: Autómata a minimizar 63 Figura 33: Eliminación de estados en un autómata AF 65 Figura 34: Eliminación de otros estados en un autómata AF 65 Figura 35: Eliminación de otros estados en un autómata AF 66 Figura 36: Tabla de estados distinguibles 67 Figura 37: Autómata obtenido de la Gramática 1. 72 Figura 38: Autómata obtenido de la Gramática 1 generado con un simulador. 72 Figura 39: Autómata obtenido de la Gramática 2. 73 Figura 40: Autómata obtenido de la Gramática 2 generado con un simulador. 74 Figura 41: AFD y su gramática. 75 Figura 42: Árbol de derivación para una secuencia de paréntesis bien balanceados. 79 Figura 43: Árbol de derivación para la cadena aabbaa 79 Figura 44: Árbol de derivación para la cadena aabbaa generado en JFLAP 80 Figura 45: Derivaciones por la izquierda, generadas en JFLAP 80 Figura 46: Arboles de derivación para la gramática G3 81 Figura 47: Arboles de derivación para una gramática ambigua 82 Figura 48: Arboles de derivación para una gramática ambigua para a5 83 Figura 49: Arboles de derivación para a5 83 Figura 50: Arboles de derivación para paréntesis balanceados 86 Figura 51: Arboles de derivación para paréntesis balanceados 88 Figura 52: Arboles de derivación en el lema de bombeo 90 Figura 53: Formalización de un PDA 93 Figura 54: Transición de un PDA 94 Figura 55: Estructura de un PDA para =aabb 95

Figura 56: Diseño de un PDA para =aabb 96

Figura 57: Funciones de la Pilas. 98 Figura 58: Unión de AP. 99 Figura 59: Autómata AFPD. 100 Figura 60: Grafo para L finito y L infinito. 106 Figura 61: Componentes de una MT 110 Figura 62: Máquina de Turing simulada en JFLAP 114 Figura 63: Modelo de un sistema de comunicaciones digitales 138 Figura 64: Código secuencial 139 Figura 65: Codificador convolucional de m etapas 140 Figura 66: Máquina de estados. Registro de desplazamiento convolucional de ratio ½ y una etapa 141 Figura 67: Máquina de estados. Registro de desplazamiento convolucional (datos 000 y 100) 141 Figura 68: Máquina de estados. Registro de desplazamiento convolucional (datos 010 y 110) 142 Figura 69: Diagrama de estados para el codificador convolucional de ratio 1/2 142

Page 10: 301405 Automatas y Lenguajes Formales 2013-II

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 143 Figura 71: Árbol para un codificador convolucional de ratio 1/2 143 Figura 72: Diagrama de Trellis (transición de estados). 144 Figura 73: Diagrama de Trellis completo (transición de estados). 145 Figura 74: Datos correctos codificados 147 Figura 75: Distancia de Hamming 149 Figura 76: Distancia de Hamming Nivel 1. 149 Figura 77: Distancia de Hamming Nivel 2. 150 Figura 78: Distancia de Hamming Nivel 3. 150 Figura 79: Diagrama de Viterbi.. Trayecto de recorrido óptimo. 151 Figura 80: Solución final Trellis y Viterbi. Datos de entrada 11010011. 152

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 para alfabetos, cadenas y lenguajes 29 Tabla 5: Asociación de gramáticas, lenguaje y máquinas. 35 Tabla 6: Recursos web para construcción de autómatas. 38 Tabla 7: Recursos web para diagramas de Moore. 40 Tabla 8: Recursos web para AFND 46 Tabla 9: Recursos web para cadenas válidas 49 Tabla 10: Recursos web para cadenas válidas 58 Tabla 11: Recursos web para minimización de autómatas 68 Tabla 12: Recursos web para PDA 75 Tabla 13: Traza de ejecución del AP 97 Tabla 14: Recursos web para PDA 98 Tabla 15: Recursos web para MT 115 Tabla 16: Relación de bits y estados 148 Tabla 17: Recursos web para el algoritmo de Trellis y Viterbi 152 Tabla 18: Recursos web para descarga de simuladores. 153

Page 11: 301405 Automatas y Lenguajes Formales 2013-II

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.

Page 12: 301405 Automatas y Lenguajes Formales 2013-II

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.

Page 13: 301405 Automatas y Lenguajes Formales 2013-II

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.

Page 14: 301405 Automatas y Lenguajes Formales 2013-II

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

Page 15: 301405 Automatas y Lenguajes Formales 2013-II

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

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

R Relación Para denotar una relación binaria

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

Page 16: 301405 Automatas y Lenguajes Formales 2013-II

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 Aa (se

lee “a es un elemento de A”). Por lo contrario Ab indica que b no es un elemento de A.

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

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

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 BA 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 BA 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 BA y AB 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 BA y AB , tenemos que A=B

Page 17: 301405 Automatas y Lenguajes Formales 2013-II

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

Teorema 2. Si BA y CB , entonces CA

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:

xx |{ y }7x 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.

Page 18: 301405 Automatas y Lenguajes Formales 2013-II

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 BA y es un conjunto

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

axxBA |{ V }Bx

Ejemplo 5: {1,2,3} {3,4} = {1, 2, 3, 4}. La unión de conjuntos es conmutativa y

asociativa.

Intersección de conjuntos: x aparece simultáneamente en A y B

axxBA |{ }Bx

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:

axxBA |{ }Bx

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

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

de conjuntos no es ni asociativa ni conmutativa.

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

AxyxAXB |),{( }By

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

Page 19: 301405 Automatas y Lenguajes Formales 2013-II

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.

AA

A

Si BA , entonces ABA

Si BA , entonces BBA

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

Idempotencia: AAA ; AAA

Conmutatividad: ABBA ; ABBA

Asociatividad: )()( CBACBA

)()( CBACBA

Distributividad: )()()( CABACBA

)()()( CABACBA

Absorción: ABAA )( ; ABAA )(

Leyes de Morgan:

BABA se suele denotar también como: CCC BABA )(

BABA se suele denotar también como: CCC BABA )(

Doble complemento. AA CC )(

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

expresar una intersección de conjuntos. CCCCC BABABA )())(()(

Page 20: 301405 Automatas y Lenguajes Formales 2013-II

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 A2 . 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 AxxA

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

El conjunto vacío siempre forma parte de todo conjunto potencia. La notación A2 recuerda

que el tamaño del conjunto potencia de A es 2 elevado a la potencia del tamaño de A, esto

es, |A2 | =

||2 A .

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

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

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

denotada por cA contiene los elementos del universo que no 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,...}15,12,9,6,3{ = {1,2,4,5,7,8,10,11,13,14, ….}.

Se concluye que UAA c para todo conjunto A; además cAA

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.

Page 21: 301405 Automatas y Lenguajes Formales 2013-II

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:

},{),( baba

),(),( abba

Sin embargo: },{},{ abba

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 1R , a

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

Page 22: 301405 Automatas y Lenguajes Formales 2013-II

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 RyxxyR

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

Antireflexiva R es antireflexiva si )(: aRaAa ó aRa

Simétrica R es simétrica si )()(:, bRaaRbAba

Antisimétrica R es antisimétrica si )()(:, bRaaRbAba

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

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

Page 23: 301405 Automatas y Lenguajes Formales 2013-II

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

Page 24: 301405 Automatas y Lenguajes Formales 2013-II

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

Page 25: 301405 Automatas y Lenguajes Formales 2013-II

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

Page 26: 301405 Automatas y Lenguajes Formales 2013-II

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>

Page 27: 301405 Automatas y Lenguajes Formales 2013-II

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

Page 28: 301405 Automatas y Lenguajes Formales 2013-II

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

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

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 naaU ....1 donde

niai ,......1,

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

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

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

Page 29: 301405 Automatas y Lenguajes Formales 2013-II

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

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

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 nn bbaa .....,.....,, 11

* , se llama concatenación de y

a la cadena . (o simplemente ) dada por mn bbaa .......... 11 . 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 ii para todo 0i

Se define una cadena inversa así:

Si *

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

1

1 ... aan

Page 30: 301405 Automatas y Lenguajes Formales 2013-II

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

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 cbaL Lenguaje uno compuesto por los símbolos a,b,c de un determinado

alfabeto incluyendo la cadena vacía.

...}2,1,0|{2 ibaL ii 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 ∑)

},|{ 22112121 LLLL

Algunas propiedades se definen como.

Asociativa: 321321 )()( LLLLLL

Elemento Neutro: LLL }{}{

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

}{0 L

LLL ii 1

Page 31: 301405 Automatas y Lenguajes Formales 2013-II

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

i

i

LL 0

*

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

de acuerdo a esa expresión.

i

i

LL 1

Obtención de un lenguaje con la operación L+

LsiLL *

LsiLL }{*

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

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

de 2013

Page 32: 301405 Automatas y Lenguajes Formales 2013-II

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

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.

Figura 8: Proceso de traducción realizado por un compilador

Fuente:<El autor>

LECCIÓN 4. LENGUAJES REGULARES Entramos a clasificar os lenguajes. Ya que los lenguajes en sí son conjuntos de

secuencias de símbolos y cada uno comparte ua 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:

Page 33: 301405 Automatas y Lenguajes Formales 2013-II

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

Page 34: 301405 Automatas y Lenguajes Formales 2013-II

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

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.

Page 35: 301405 Automatas y Lenguajes Formales 2013-II

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

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

Page 36: 301405 Automatas y Lenguajes Formales 2013-II

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

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 maten á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.

Page 37: 301405 Automatas y Lenguajes Formales 2013-II

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

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

Page 38: 301405 Automatas y Lenguajes Formales 2013-II

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

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

Page 39: 301405 Automatas y Lenguajes Formales 2013-II

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

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

Page 40: 301405 Automatas y Lenguajes Formales 2013-II

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

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

Page 41: 301405 Automatas y Lenguajes Formales 2013-II

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

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 por que 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 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.

Page 42: 301405 Automatas y Lenguajes Formales 2013-II

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

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 δ (q 3, z ) = q2 δ (q 3

, x ) = q1

Page 43: 301405 Automatas y Lenguajes Formales 2013-II

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

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>

Page 44: 301405 Automatas y Lenguajes Formales 2013-II

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

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

Page 45: 301405 Automatas y Lenguajes Formales 2013-II

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

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 = {q 1 , q 2 , q 3 , q 4 }, y la función (que también se puede

describir así) está dada por:

Page 46: 301405 Automatas y Lenguajes Formales 2013-II

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

= {(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 8: 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, ).

Page 47: 301405 Automatas y Lenguajes Formales 2013-II

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

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.

Page 48: 301405 Automatas y Lenguajes Formales 2013-II

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

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

Page 49: 301405 Automatas y Lenguajes Formales 2013-II

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

∑ = {a,b}, F = {q2} s = {q0} y K = {q0, q 1 , q 2 } y representado en el diagrama de estados

de la figura 17.

Figura 17: Lenguaje asociado a un AFD

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

Page 50: 301405 Automatas y Lenguajes Formales 2013-II

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

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.

Page 51: 301405 Automatas y Lenguajes Formales 2013-II

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

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:

Page 52: 301405 Automatas y Lenguajes Formales 2013-II

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

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 }

Page 53: 301405 Automatas y Lenguajes Formales 2013-II

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

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.

Page 54: 301405 Automatas y Lenguajes Formales 2013-II

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

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

Page 55: 301405 Automatas y Lenguajes Formales 2013-II

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

La figura 21 muestra un proceso de eliminación gradual de los operadores de las ER en

donde Gn AFND con las operaciones elementales y necesarias. Para eliminar los

operadores de las ER en Gi, aplicamos reemplazamientos de ciertas transiciones por

otras, hasta que no sea posible aplicar ninguno de estos reemplazamientos.

Ejemplo 32: Tomado de:4 Dada la ER= (a + ba)* bb, obtener el AFN que acepta el

lenguaje de dicha ER.

La solución está definida en aplicar las transformaciones como se muestran en la figura

22 (aplicando las transformaciones básicas de la figura 20).

Figura 22: Transformación de Er a AF.

4 <BRENA,R; Autómatas y lenguajes, un enfoque de diseño. 2003. Monterey. 214p>

Page 56: 301405 Automatas y Lenguajes Formales 2013-II

56

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

CONVERSIÓN DE AF a ER: El procedimiento indica que se deben ir eliminado

gradualmente nodos de una GT que inicialmente es el AFN que se quiere transformar,

hasta que únicamente queden un nodo inicial y un nodo final.

El procedimiento aplica los siguientes pasos: Para ello se ilustra el siguiente ejemplo:

Ejemplo 33: Tomado de5 Dado el siguiente AF M = (∑, K, , q0, F) donde

∑ = {a,b}, F = {q1, q2} s = {q0} y K = {q0, q 1 , q 2 } y representado en el diagrama de

estados de la figura 23. Se requiere obtener la ER correspondiente y que represente el

lenguaje que acepta el autómata M.

Figura 23: Obtención de una ER a partir de un AF

PASO 1: El primer paso en este procedimiento consiste en añadir al autómata finito un

nuevo estado inicial i, mientras que el antiguo estado inicial q0 deja de ser inicial, y un

nuevo estado final f, mientras que los antiguos estados finales qi F dejan de ser finales;

además se añade una transición vacía del nuevo estado inicial al antiguo, (i, , q0), y

varias transiciones de los antiguos estados finales al nuevo: {(qi, , f) | qi F}.

Esta transformación tiene por objeto que haya un estado inicial al que no llegue ninguna

transición, y un solo estado final, del que no salga ninguna transición. Esta condición se

requiere para llevar a cabo el siguiente paso. Hay muchos autómatas que ya cumplen

estas condiciones sin necesidad de añadir un nuevo estado inicial o un nuevo estado final.

La figura 24 muestra estas acciones realizadas (se adiciona un nuevo estado inicial y

final) para este primer paso para el ejercicio 33 propuesto.

5 Bis(4).

Page 57: 301405 Automatas y Lenguajes Formales 2013-II

57

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 24: Obtención de una ER a partir de un AF PASO1

PASO 2: Eliminación de nodos intermedios. Eliminamos primero el nodo q1. Para ello,

consideramos que trayectorias o “rutas” pasan por el nodo a eliminar. Por ejemplo, en la

figura 23 vemos solamente una trayectoria que pasa por q1, la cual va de q0 a f.

Ahora nos proponemos eliminar el nodo q1, pero sin modificar “lo que se gasta” para

pasar de q0 a f. Es fácil ver que para pasar de q0 a f se gasta primero una a y luego algún

número de repeticiones de a o b (para llegar de q1 a f no se gasta nada). Esto

corresponde a la ER a(a + b)*, que sería la etiqueta de la nueva “ruta directa” de q0 a f,

sin pasar, por q1, como se evidencia en a figura 25.

Figura 25: Obtención de una ER a partir de un AF PASO2

PASO 3: Eliminación de nodos. La figura 26 muestra el proceso de eliminación del nodo

q2.

Page 58: 301405 Automatas y Lenguajes Formales 2013-II

58

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 26: Obtención de una ER a partir de un AF PASO3. Eliminación de nodo.

PASO 4: Eliminación de nodos. La figura 27 muestra el proceso de eliminación del nodo

q0.

Figura 27: Obtención de una ER a partir de un AF PASO4. Eliminación de nodo q0.

PASO 5: Fusión de expresiones (paralelas). Como se muestra en la figura 28.

Figura 28: Obtención de una ER a partir de un AF PASO5. Fusión de expresiones

Finalmente la Er obtenida corresponde a: (bb*a)*a(a+b)* + (bb*a)*bb

Tabla 10: Recursos web para cadenas válidas

DESCRIPCIÓN DE VIDEO

CANAL

CANAL

Expresión Regular (ER) que representa el lenguaje que puede aceptar un autómata.

http://youtu.be/z7vmzu9078Y http://www.veoh.com/watch/v61691189ZDE5K4wH

Fuente:<El autor>

Page 59: 301405 Automatas y Lenguajes Formales 2013-II

59

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 14. EQUIVALENCIA DE AFD Y AFND

Se pretende construir a partir de un autómata finito no-determinístico otro determinístico

que acepte el mismo lenguaje:

Ejemplo 34: Dado el siguiente AFND

M = (∑, K, , q0, F). Se llama autómata determinístico asociado a M, al autómata:

M

= (∑, K

,

, 0q

, F

) dado por (obsérvese que lo único que no cambia es el

alfabeto):

K

= P(K)

0q

= {q0}

= (∑,a) = * (∑,a)

El ejemplo de la figura 29 muestra

Figura 29: Equivalencia de una AFND con un AFD

Page 60: 301405 Automatas y Lenguajes Formales 2013-II

60

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 que se concluye: Teorema 6: Un AFND M y su correspondiente Autómata

determinístico M

aceptan el mismo lenguaje.

De igual forma y a manera inversa para el teorema: dado un autómata finito determinístico

AFD M = (∑, K, , q0, F). se puede construir uno no-determinista: M

= (∑, K,

, q0, F).

que acepta el mismo lenguaje. Solo se debe considerar:

(q0,a) = { (q0,q)}: en el que en cada situación solo hay un camino posible que es el que

determine la función de transición .

Para los autómatas de la figura 28; Reconocen el lenguaje formado por todas las cadenas

que empiezan por 1 excepto las terminadas en dos ceros consecutivas, Además se debe

incluir la cadena vacía. Ambos autómatas reconocen el mismo lenguaje.

Teorema 7: Dos autómatas M1 y M2 son equivalentes, M1 M2, cuando aceptan

exactamente el mismo lenguaje.

Ejemplo 35: Tomado de: 6El siguiente ejemplo muestra cómo puede darse el caso en el que

varios AF distintos acepten un mismo lenguaje.

La figura 30 muestra los autómatas (a) y (b) que aceptan el lenguaje a*. Lo que se indaga

ahora es si estos son equivalentes. Lo que se concluye también que para comprobar la

equivalencia se debe realizar una demostración de igualdad de lenguajes (operación que

suele ser compleja si son lenguajes infinitos).

Figura 30: AF distintos que aceptan un miso lenguaje.

6 Bis (4)

Page 61: 301405 Automatas y Lenguajes Formales 2013-II

61

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

Método usado para probar los AF y determinar equivalencia: Son muchos y de

diversas formas de aplicación. El que se propone acá es basado en el teorema:

Teorema 8: Teorema de Moore: Existe un algoritmo para decidir si dos autómatas finitos

son equivalentes o no. Este algoritmo consiste en la construcción de un árbol de

comparación de autómatas. Este árbol permite convertir el problema de la comparación

de los lenguajes aceptados en un problema de comparación de estados de los autómatas.

Definición 11: dos estados q y q´ son compatibles si ambos son finales o ninguno de los

dos es final. En caso contrario, son estados incompatibles.

La idea del algoritmo de comparación de AFD1 y AFD2 de la figura 29 consiste en

averiguar si existe alguna secuencia de caracteres tal que siguiéndola

simultáneamente en AFD1 y AFD2 se llega a estados incompatibles. Si dicha secuencia no

existe, entonces los autómatas son equivalentes.

El único problema con esta idea estriba en que hay que garantizar que sean cubiertas

todas las posibles cadenas de caracteres w, las cuales son infinitas en general. Por ello

se pensó en explorar todas las posibles combinaciones de estados mediante un árbol.

Dicho árbol de comparación se construye de la manera siguiente, para dos autómatas:7

M = (∑, K, , s, F) y M´ = (∑´, K´, ´, s´, F´).

La figura 31 muestra el árbol de comparación en el que se evalúa el diseño y

comportamiento de los estados no sin antes definir:

Figura 31: Árbol de comparación de AF.

7 Bis (4)

Page 62: 301405 Automatas y Lenguajes Formales 2013-II

62

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 explicación del árbol es la que se describe así:

1. Inicialmente la raíz del árbol es el par ordenado (s, s´) que contiene los estados

iniciales de M y M´ respectivamente.

2. Si en el árbol hay un par (r, r´), para cada caracter en ∑ se añaden como hijos

suyos los pares )´,( rr donde r = ),( r , )´,(´ rr en caso de que no

estén.

3. Si aparece en el árbol un par (r, r´) de estados incompatibles, se interrumpe la

construcción del mismo, concluyendo que los dos autómatas no son equivalentes.

En caso contrario se continúa a partir del paso 2. Si no aparecen nuevos pares

)´,( rr ) que no estén ya en el ´árbol, se termina el proceso, concluyendo que los

dos autómatas son equivalentes.

Se concluye que los autómatas iniciales de M y M´ respectivamente de la figura 29 son

equivalentes.

LECCIÓN 15. MINIMIZACIÓN DE AUTÓMATAS

Se llama minimización a la obtención de un autómata con el menor número posible de estados. Una de las mejores cualidades de los AFD es que existen métodos mecánicos para simplificarlos, hasta poder llegar al AFD más sencillo posible para un lenguaje dado. En el caso de los AFD, vamos a entender por simplificación la reducción en el número de estados, pero aceptando el mismo lenguaje que antes de la simplificación.

Ejemplo 36: Dado el siguiente AFD M = (∑, K, , q0, F) donde

∑ = {0,1}, F = {q2} s = {q0} y K = {q0, q 1 , q 2 ,q3, q4, q5, q6, q7 } y representado en el

diagrama de estados de la figura 32. Se requiere obtener el autómata mínimo

correspondiente.

Page 63: 301405 Automatas y Lenguajes Formales 2013-II

63

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 32: Autómata a minimizar

Concepto de “estados redundantes” se define así:

Dos estados son equivalentes, q1 q2 si al intercambiar uno por otro en cualquier

configuración no altera la aceptación o rechazo de toda palabra. En el ejemplo 36 los

estados q1 y q6 son excluyentes, (ya que ambos cumplen la misma función) y al eliminar

uno u otro no altera la aceptación o no de una cadena: Si se observa:

Del estado q1 sale el símbolo 0 y llega al estado q5

Del estado q6 sale el símbolo 0 y llega al estado q5 Del estado q1 sale el símbolo 1 y llega al estado q2

Del estado q6 sale el símbolo 0 y llega al estado q2

Esta definición quiere decir que, si q1 q6, al cambiar q1 por q6 en la configuración, la

palabra va a ser aceptada (se acaba en el estado final) si y sólo si de todos modos iba a

ser aceptada sin cambiar q1 por q6 (se acaba en el estado final).

De manera general: El único problema con esta definición es que, para verificar si dos

estados dados p y q (para el ejercicio sería q1 y q6) son equivalentes, habría que examinar,

Page 64: 301405 Automatas y Lenguajes Formales 2013-II

64

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 cada palabra posible de entrada, si intercambiarlos en las configuraciones altera o no

la aceptación de esa palabra. Esto es evidentemente imposible para un lenguaje infinito.

La definición nos dice qué son los estados equivalentes, pero no cómo saber si dos

estados son equivalentes.

Cómo se soluciona: Recordemos el teorema 7: Dos autómatas M1 y M2 son

equivalentes, M1 M2, cuando aceptan exactamente el mismo lenguaje

Para saber si dos estados q1 y q6 son equivalentes, se les pone a ambos como estado

inicial de sendos autómatas M1 y M2 , y se procede a comparar dichos autómatas. Si éstos

últimos son equivalentes, quiere decir que los estados q1 y q6 son equivalentes.

Si dicha comparación de AFDs da un resultado de equivalencia, se concluye que los

estados son redundantes.

Una vez que se sabe que dos estados son equivalentes, se puede pensar en eliminar uno

de ellos, para evitar redundancias y hacer más eficiente a AFD. Sin embargo, la

eliminación de un estado en el AFD plantea el problema de qué hacer con las flechas que

conectan al estado eliminado con el resto del autómata. Esta cuestión se resuelve con los

siguientes criterios:

Las flechas que salen del estado eliminado son eliminadas. Las flechas que llegan al estado eliminado son redirigidas hacia su estado

equivalente.

MÉTODOS PARA LOCALIZAR ESTADOS REDUNDANTES Y MINIMIZAR AFDs

1. DEFINIMOS EL AUTÓMATA E IDENTIFICAMOS LO QUE VA A CAMBIAR:

Entrada: (el autómata inicial sin minimizar) : Un AFD M = (∑, K, , q0, F) donde

∑ = {0,1}, F = {q2} s = {q0} y K = {q0, q1 , q 2 ,q3, q4, q5, q6, q7 }.

Salida: (un AFD mínimo como resultado): M = (∑, K”, ”, q0 “, F”) (nótese que el

alfabeto no cambia)

2. ELIMINAR ESTADOS INACCESIBLES DE M;

En la figura 33 se han identificado los estados q6 y q1 como candidatos a ser comparados

para eliminar (en este caso q6).

Page 65: 301405 Automatas y Lenguajes Formales 2013-II

65

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 33: Eliminación de estados en un autómata AF

En la figura 34 se han identificado los estados q3 y q0 como candidatos a ser comparados

para eliminar (en este caso q3).

Figura 34: Eliminación de otros estados en un autómata AF

Page 66: 301405 Automatas y Lenguajes Formales 2013-II

66

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

Claramente se ve que el estado q7 es inaccesible, (o le llegan transiciones además) por

tanto, se puede eliminar este estado y sus transiciones. El autómata ya minimizado y

concluido se observa en la figura 35

Figura 35: Eliminación de otros estados en un autómata AF

3. IDENTIFICAR ESTADOS DISTINGUIBLES:

Vamos a definir la noción de estados distinguibles, que intuitivamente quiere decir que si

dos estados son distinguibles, ya no pueden ser equivalentes. La definición es inductiva:

Los estados p y q son distinguibles si son incompatibles (es decir, uno es final y el otro no

final). Esta es la base de la inducción. Se puede verificar el ejercicio.

Teorema 9: Dos estados son equivalentes (o “redundantes”) si no son distinguibles. Es

relativamente sencillo verificar si dos estados son distinguibles.

4. CONSTRUCCIÓN DE TABLA:

Construir tabla T con filas desde q1 hasta qn y columnas desde q0 hasta qn-1

Obsérvese que en la tabla Figura 36 se omite la diagonal principal, pues no tiene caso

confrontar cada estado contra sí mismo.

Page 67: 301405 Automatas y Lenguajes Formales 2013-II

67

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 36: Tabla de estados distinguibles.

Fuente: <El autor. CAAT>

Empezamos en la parte inferior (eje horizontal) de menor a mayor desde q0 hasta qn-1 Luego el eje vertical de arriba hacia abajo: q1 hasta qn

Se aprecian signos “ ” en las celdas, que se obtienen directamente del hecho de que

son pares de estados incompatibles – por lo tanto distinguibles. En otras palabras lo que hemos hecho es: marcar (par (qi , qj)) donde un estado del par es final y el otro no. Una manera de organizar el trabajo de verificar qué pares de estados de un AFD son distinguibles, consiste en construir una tabla en que los renglones y las columnas son los

nombres de los estados, y en cada cruce de renglón con columna se indica con una

cuando son distinguibles. Resultado final: Al final quedan sin marcar PAR (q3,q0) y PAR (q6,q1) y por lo tanto:

q0 q3 y q1 q6 Y el autómata cociente (mínimo) es:

M ( { [q0] , [q1] , [q2] , [q4] , [q5] } , {0,1} , ” , [q0] , [q2] } )

Note que se han eliminado los estados q3, q6, q7 Se conservó el mismo estado inicial q0 y el estado final q2

Page 68: 301405 Automatas y Lenguajes Formales 2013-II

68

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

Todo el proceso de minimización además de otras características las puede visualizar en: Tabla 11: Recursos web para minimización de autómatas

DESCRIPCIÓN DE VIDEO

CANAL

CANAL

PARTE 1: Identificación quíntupla de un autómata. Tablas de transición. Recorrido de una cadena válida. Leguaje aceptado pro un autómata. Gramática

http://youtu.be/z19KDUC1oh0 http://www.veoh.com/watch/v61603854nW9bZSZW

PARTE 2: Graticas, Arboles de derivación. Expresiones Regulares

http://youtu.be/LThVITEsLiA

http://www.veoh.com/watch/v61604786EcAYA94H

PARTE 3: Minimización de autómatas

http://youtu.be/Sto4KosrUX8

http://www.veoh.com/watch/v616060295QNDkm6W

PARTE 4: Minimización de autómatas (uso de simuladores). JFLAP

http://youtu.be/d0-Nkk3Y1DU

http://www.veoh.com/watch/v61606962CRp6fnXP

Fuente: <El autor. CAAT>

UNIDAD 2. LENGUAJES INDEPENDIENTES DEL CONTEXTO

Los lenguajes independientes del contexto que también se conocen con el nombre de

gramáticas de contexto libre son un método recursivo sencillo de especificación de reglas

gramaticales con las que se pueden generar cadenas de un lenguaje.

Es factible producir de esta manera todos los lenguajes regulares, además de que existen

ejemplos sencillos de gramáticas de contexto libre que generan lenguajes no regulares.

Las reglas gramaticales de este tipo permiten que la sintaxis tenga variedad y

refinamientos mayores que los realizados con lenguajes regulares, en gran medida

sirven para especificar la sintaxis de lenguajes de alto nivel y otros lenguajes

formales.

CAPÍTULO 4 CONCEPTOS GENERALES Hasta ahora, se han visto dos formas de definir lenguajes: a través de autómatas finitos, y por medio de expresiones regulares. Ahora veremos otra forma, usando el concepto de gramáticas.

Page 69: 301405 Automatas y Lenguajes Formales 2013-II

69

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

Basamos el estudio siguiente en el concepto básico de gramática formal como un conjunto de reglas para formar correctamente las frases de un lenguaje (ejemplo la gramática del español, inglés, francés, etc). Las características y notación específica de gramática fue dada por Chomsky,N, quién basó esta descripción en las denominadas “Reglas Gramaticales”. Definición 12: Reglas Gramaticales: Son específicamente, reglas de reemplazo. Una regla es un expresión de la forma en donde tanto como son cadenas de símbolos en donde

pueden aparecer tanto elementos del alfabeto ∑ como unos nuevos símbolos, llamados variables. Los símbolos que no son variables son constantes. Por ejemplo una regla gramatical es dada como:

X → aX . Otro ejemplo: Aplicar la regla a la palabra da como resultado (operación

de reemplazo) . Otro ejemplo: Si se tienen los símbolos bbXa y se le aplica la regla X → aX

da como resultado la nueva cadena bbaXa. LECCIÓN 16. – GRAMÁTICAS REGULARES

Definición 13: Definimos o caracterizamos una gramática regular como:

Un cuádruplo (V, ∑, R, S) en donde:

V = Es el alfabeto de variables

∑ = Es el alfabeto de constantes

R = Es el conjunto de reglas, es un subconjunto finito de V x (∑V U ∑ )

S= Es el símbolo inicial y es un elemento de V

Estas gramáticas regulares son de la forma:

Lineales por la derecha.- Cuando todas las producciones tienen la forma

A → aB o bien A → a

Lineales por la izquierda.- Cuando todas las producciones tienen la forma

A → Ba o bien A → a

En donde A y B son las variables que pertenecen a V y a es un carácter terminal o

constante que pertenece a ∑.

Page 70: 301405 Automatas y Lenguajes Formales 2013-II

70

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

Ejemplo 37: La gramática G dada por V = {S,A} y ∑ ={0,1} y las producciones:

Producciones por la derecha: Producciones por la izquierda (lineal por la derecha) (lineal por la izquierda).

1. S → 0A 1. S → S10

2. A → 10A 2. S → 0

3. A →

Genera el mismo lenguaje: L(G) = 0(01)*

Ejemplo 38: Dada la siguiente gramática con sus reglas:

4. S → aA

5. S → bA

6. A → aB

7. A → bB

8. A → a

9. B → aA

10. B → bA

La idea para aplicar una gran ática es que se parte de

una variable, llamada símbolo inicial (que en este caso es

S), y se aplican repetidamente las reglas gramaticales,

(en este ejemplo hay 7 reglas gramaticales) hasta que ya

no haya variables en la palabra (las dos variables para

este ejemplo son a y b). En ese momento se dice que la

palabra resultante es generada por la gramática, o en

forma equivalente, que la palabra resultante es parte del

lenguaje de esa gramática.

Las constantes de esta gramática son A y B.

Al analizar la gramática, partiendo de S podemos se puede producir bA (por la segunda

regla), luego de bA podemos pasar a ba (por la quinta regla). Como ba tiene sólo

constantes, podemos concluir que la palabra ba es parte del lenguaje generado por la

gramática dada. De hecho el lenguaje generado por esta gramática es:

L = { (a,b)* │ ∑ (que acepta las palabras en {a, b} de longitud par terminadas en a}

Se pueden derivar muchas otras palabras como bababa L(G) y que pertenecen también

al lenguaje generado por la gramática. Formalmente esta gramática se representaría

como:

({S, A,B}, {a, b}, {(S, aA), (S, bA), (A, aB), (A, bB), (A, a), (B, aA), (B, bA)}, S)

Page 71: 301405 Automatas y Lenguajes Formales 2013-II

71

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 cadena ∑ (esto es, formada exclusivamente por constantes) es derivable a partir

de una gramática G si existe una secuencia de pasos de derivación:

S 1 2 …

A una secuencia de pasos de derivación le llamamos simplemente derivación.

Definición 14: El lenguaje generado por una gramática G, L(G), es igual al conjunto de

las palabras derivables a partir de su símbolo inicial. Es decir:

L (G) = { ∑* │ S * }

AUTÓMATAS FINITOS Y GRAMÁTICAS REGULARES: Se establece la equivalencia

entre las gramáticas regulares y los lenguajes regulares -y por ende los autómatas finitos.

Teorema 10: Si L es un lenguaje generado por una gramática regular, entonces existe un

autómata finito determinístico que lo reconoce.

Teorema 11: La clase de los lenguajes generados por alguna gramática regular es

exactamente la de los lenguajes regulares.

La prueba de estos teoremas consiste en proponer un procedimiento para, a partir de una

gramática dada, construir un autómata finito, y viceversa.

OBTENCIÓN DE UN AUTÓMATA FINITO A PARTIR DE UNA GRAMÁTICA DADA:

Procedimiento 1: Consiste en asociar a los símbolos no terminales de la gramática (las

variables) los estados de un autómata. Así, para cada regla A → bC en la gramática

tenemos una transición (A, b,C) en el autómata.

Para el caso de las reglas A → b, se tienen transiciones (A, b,Z), donde Z es un nuevo

estado para el que no hay un no terminal asociado; Z es el ´único estado final del

autómata.

Ejemplo 39: Obtener un autómata finito para la gramática regular G1 siguiente: (V, ∑, R, S).

Se denota la gramática en un formato comprimido: (en fila):

S → aA │ S → bA │ A → aB │ A → bB │A → a │ B → aA │ B →bA

Es lo mismo que:

S → aA │ bA │, A → aB │ bB │ a │ , B → aA │ bA

Page 72: 301405 Automatas y Lenguajes Formales 2013-II

72

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 37: Autómata obtenido de la Gramática 1.

En la Figura 38, haciendo uso del simulador JFLAP8 , que dentro de sus opciones nos

permite introducir una gramática y generar el AF, se muestra el resultado de la conversión

automática de G → AF (de Gramática a Autómata Finito).

Figura 38: Autómata obtenido de la Gramática 1 generado con un simulador.

Fuente: <Generado con JFLAP – El Autor>

8 JFLAP Version 7.0 RELEASED August 28, 2009. Last update May 15, 2011. Disponible en internet.

<http://www.jflap.org/>

Page 73: 301405 Automatas y Lenguajes Formales 2013-II

73

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

Procedimiento 2: Ejemplo 40: Dado el Lenguaje L generado por la gramática G2 = (V, ∑, R,

S) (definida lineal por la derecha para el ejemplo) así: S → 0A │ A → 10A │ A → se

desea construir un autómata finito no determinístico AFND que acepte el lenguaje L.

El autómata resultante será: M = (∑, K, , s, F) donde:

)}.,,()(:]{[ RAtalesqueVASK

q0 = [S]

F = {[ ]}

Viene definida por:

Si A es una variable RAA )(:]{[)],([

Si a Ʃ y )*( V , entonces ][)],([ aa

La aceptación de una palabra en este autómata simula la aplicación de reglas de

derivación en la gramática original. Al construir el autómata no determinístico

correspondiente se puede transformar en uno equivalente con un solo estado final así:

Basta con añadir un nuevo estado final

Pasar a no-finales los estados finales originales y unir estos mediante una

transición nula con el nuevo estado final.

Figura 39: Autómata obtenido de la Gramática 2.

Page 74: 301405 Automatas y Lenguajes Formales 2013-II

74

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 40: Autómata obtenido de la Gramática 2 generado con un simulador.

Fuente: <Generado con JFLAP – El Autor>

OBTENCIÓN DE LA GRAMÁTICA A PARTIR DE UN AUTÓMATA FINITO:

A partir de un AFD M = (∑, K, , s, F) obtener la gramática regular correspondiente. El

procedimiento sigue la siguiente secuencia:

1. Para cada transición de la forma )),,(( q habrá en la gramática una regla

qXX , donde Xi es la variable en la gramática que corresponde al estado i

del AFD.

2. La forma X permite terminar una derivación.

3. La aplicación de este tipo de reglas debe corresponder al consumo del ultimo

caractér de una palabra aceptada en el AFD.

4. Al terminar una palabra aceptada en un AFD, necesariamente nos encontraremos

en un estado final o de aceptación “halt”.

5. Hay que incorporar a la gramática, por cada transición )),,(( q donde q F

una regla adicional X además de la regla qXX .

Ejemplo 41: Dado el AFD de la Figura 41, determinar las reglas de producción que

determinan la gramática regular.

Page 75: 301405 Automatas y Lenguajes Formales 2013-II

75

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 41: AFD y su gramática.

Finalmente la gramática regular generada con sus respectivas reglas es la mostrada en la

Figura 40 y que se generó con software de simulación JFLAP.

Tabla 12: Recursos web para PDA

DESCRIPCIÓN DE VIDEO

CANAL

CANAL

Autómatas y Gramáticas, representación y descripción.

http://youtu.be/FcsxGEFF5RI http://www.veoh.com/watch/v61736035WqpFzqBM

Fuente. <El autor>

LECCIÓN 17. LENGUAJES LIBRES DE CONTEXTO Y SUS MÁQUINAS.

Gramáticas y lenguajes libres de contexto: Los Lenguajes Libres de Contexto

(abreviado LLC) forman una clase de lenguajes más amplia que los Lenguajes Regulares,

de acuerdo con la Jerarquía de Chomsky. Estos LLC relacionan las Gramáticas libres de

contexto (GLC) con los Autómatas de Pila.

Dentro de la jerarquía de Chomsky las gramáticas se clasificaron de acuerdo a la

propuesta de definir formas estandartes de reglas que se asocian a varias clases de

lenguajes, que ordenó de manera tal que forman una jerarquía, es decir, los lenguajes

más primitivos están incluidos en los más complejos. Casi todos los lenguajes de

programación están basados en los LLC

Page 76: 301405 Automatas y Lenguajes Formales 2013-II

76

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 clases de gramáticas que se pueden asociar a familias de leguajes, de acuerdo a

Chomsky son:

1. Gramáticas regulares, o de tipo 3: Las reglas son de la forma A→ aB o bien A→ a,

donde A y B son variables y a es constante. Estas gramáticas son capaces de

describir los lenguajes regulares.

2. Gramáticas Libres de Contacto (GLC), o de tipo 2: Las reglas son de la forma X→

donde X es una variable y es una cadena que puede contener variables y

constantes. Estas gramáticas producen los Lenguajes Libres de Contexto (LLC).

3. Gramáticas sensitivas al contexto o de tipo 1: Las reglas son de la forma

A → , donde A es una variable y y son cadenas cualesquiera

que pueden variables y constantes.

4. Gramáticas no restringidas o de tipo 0: Con reglas de la forma → donde

no puede ser vacío, que generan los lenguajes “recursivamente enumerables”.

Los lenguajes de tipo 0 incluyen a los de tipo 1, estos a los de tipo 2, etc.

LENGUAJES Y GRAMÁTICAS LIBRES DE CONTEXTO (LLC Y GLC):

Las GLC tienen reglas menos rígidas que las gramáticas regulares. Así toda gramática

regular es GLC pero no viceversa

Para introducirnos en este estudio, aplicamos la misma filosofía de representación de las

gramáticas regulares en donde las reglas son técnicas de reemplazo: Aplicar una regla

como X → de una gramática, consiste en reemplazar X por en una palabra. Por

ejemplo dado la regla S → aSb se puede aplicar a una palabra como abSab, en donde si

se reemplaza S por aSb se tiene abaSbab.

Algunos autores “ Brena R.” 9definen: Al proceso de aplicar una regla se le conoce como

“paso de derivación”, y se denota usando una flecha de dirección: . Una secuencia de

pasos de derivación a partir de una variable especial de la gramática llamada “símbolo

inicial” se llama simplemente “derivación”.

Formalización de las GLC: Una gramática libre de contexto es una cuádrupla:

(V, ∑, R, S) en donde:

9 Bis (6)

Page 77: 301405 Automatas y Lenguajes Formales 2013-II

77

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

V = Es el alfabeto de variables

∑ = Es el alfabeto de constantes, también llamadas terminales. En el que V y ∑ son

disyuntos, es decir: V ∩ ∑ = Φ

R = Es el conjunto de reglas, es un subconjunto finito de V x (∑V U ∑ )*

S= Es el símbolo inicial y es un elemento de V

Y donde las producciones tiene la forma A → siendo A V y ( V U ∑ )*

Una cadena ( V U ∑ )* es derivable a partir de una gramática (V, ∑, R, S) si hay al

menos una secuencia de pasos de derivación que la produce a partir del símbolo inicial S,

así:

...S

El lenguaje L(G) generado por una gramática (V, ∑, R, S) es el conjunto de palabras

hechas exclusivamente de constantes, que son derivables a partir del símbolo inicial:

}...|*{ SL

LECCIÓN 18. ARBOLES DE DERIVACIÓN

Las GLC tienen la propiedad de que las derivaciones pueden ser representadas en forma

de árbol ramificado o arboles de derivación, o también arboles de compilación por usarse

extensivamente en los compiladores y son de vital importancia para la teoría de los

compiladores de los lenguajes de programación.

Se puede considerar que un árbol de derivación es más abstracto que una derivación

“lineal” es decir, una sucesión S ... en el sentido de que para un solo árbol de

derivación puede haber varias derivaciones lineales, según el orden en que se decida

“expandir” los no terminales.

La definición formal de estos árboles de derivación está dada por:

Definición15: Sea: G = (V, ∑, R, S) una GLC. Entonces el árbol de derivación cumple las

siguientes propiedades:

Page 78: 301405 Automatas y Lenguajes Formales 2013-II

78

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. Cada nodo tiene una etiqueta.

2. La raíz tiene etiqueta S.

3. La etiqueta de los nodos que no son hojas debe estar en V, y las de las hojas en:

∑ U

4. Si un nodo n tiene etiqueta A, y los nodos n1, …., nm son sus hijos (de izquierda a

derecha), con etiquetas respectivamente A1, .., Am, entonces A → A1, …., Am R.

Definición 16: La cadena de caracteres que resulta de concatenar los caracteres

terminales encontrados en las etiquetas de los nodos hoja, en un recorrido en orden del

árbol de derivación, se llama el producto del árbol.

Es decir, al efectuar un recorrido en orden del árbol de derivación recuperamos la cadena

a partir de la cual se construyó dicho árbol. Así, el problema de “compilar” una cadena de

caracteres consiste en construir el árbol de derivación a partir del producto de éste.

Ejemplo 42: Para explicar como un árbol de derivación ilustra diferentes derivaciones para

una misma cadena, es típico ejemplificar el caso de describir las secuencias de unos

paréntesis bien balanceados, en el que se presenta el caso ideal que nunca se han

cerrado más paréntesis de los que se han abierto y en el que al final los números

coinciden.

Una GLC simple que describiría este caso sería:

S → Ss

S →

Y que formalmente se escribiría como:

V = {S}, ∑ = {(,)}, R = {(S, (S) S), (S, )}

Una derivación de la cadena = (())() a partir de S podría ser:

S (S)S ((S)S)S (()S)S (())S (())(S)S (())()S (())()

Y otra podría ser:

S (S)S (S)(S)S (S)()S (S)() ((S)S)() (()S)() (())()

Page 79: 301405 Automatas y Lenguajes Formales 2013-II

79

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 árbol de derivación para este ejemplo estaría dado en la figura 42 (las distintas órdenes

de derivación no son los únicos responsables de que existan distintas formas de derivar

una misma cadena. Es posible que una misma cadena tenga dos árboles de derivación

distintos.)

Figura 42: Árbol de derivación para una secuencia de paréntesis bien balanceados.

Ejemplo 43: Para la siguiente gramática: S → aAS, S → a, A → SbA , A → SS, A → ba

Analizamos la cadena o palabra = aabbaa que genera un árbol y que puede provenir

de varias cadenas de derivaciones distintas así:

Derivación por la izquierda: Cuando en cada paso siempre se sustituye primero la primera

variable (más a la izquierda) de la palabra que tenemos.

Derivación por la derecha. Cuando en cada paso siempre se sustituye primero la última

variable (más a la derecha) de la palabra que tenemos

El árbol de derivación se muestra en la figura 43:

Figura 43: Árbol de derivación para la cadena aabbaa

Page 80: 301405 Automatas y Lenguajes Formales 2013-II

80

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

Haciendo uso de software de simulación JFLAP se puede recrear el ejercicio como se

videncia en la Figura 44.

Figura 44: Árbol de derivación para la cadena aabbaa generado en JFLAP

Fuente: <Generado con JFLAP – El Autor>

Al mismo árbol dado en las figuras 42 y 43 de la Gramática, le corresponden las

siguientes derivaciones:

Derivación por la izquierda:

S aAS aSbAS aabAS aabbaS aabbaa

Las derivaciones por la izquierda son mostradas en la figura 45. Fueron generadas con

software simulador JFLAP.

Figura 45: Derivaciones por la izquierda, generadas en JFLAP

Fuente: <Generado con JFLAP – El Autor>

Page 81: 301405 Automatas y Lenguajes Formales 2013-II

81

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

Derivación por la derecha:

S aAS aAa aSbAa aSbbaa aabbaa

Ejemplo 44: Para la Gramática G3 = S → aSbS │ bSaS │ Sus árboles de derivación

son los mostrados en la figura 46.

Figura 46: Arboles de derivación para la gramática G3

AMBIGÜEDAD EN GLC: La existencia en una gramática de varias derivaciones para una

misma palabra no produce ningún problema, siempre que den lugar al mismo árbol. Sin

embargo, existe otro problema que si puede ser más grave: la ambigüedad. Una

gramática se dice ambigua si existen dos árboles de derivación distintos para una misma

palabra. Esto es un problema, ya que la gramática no determina la estructura sintáctica de

los elementos de la palabra, no determina como se agrupan los distintos elementos para

formar la palabra completa.10

Se concluye: En efecto, hay GLC en las cuales para ciertas palabras hay más de un árbol

de derivación.

Definición 17: Una GLC G es ambigua si existen dos árboles de derivación distintos para

G que generan una misma cadena L(G).

Definición 18: Todo lenguaje Regular es Libre del Contexto. El conjunto de los lenguajes

LC incluye al de los regulares.

10

MORAL, S. Modelos de Computación. p. 92

Page 82: 301405 Automatas y Lenguajes Formales 2013-II

82

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 L ∑* es un lenguaje regular, entonces L es LC

Ejemplo 45: Dada la siguiente GLC para las expresiones aritméticas de las variables:

1. E → E + E

2. E → E * E

3. E → x

4. E → y

Con esta gramática, para la expresión x+y * x existen dos árboles de derivación (Figura 47). El hecho de que existan dos árboles de derivación para una misma expresión es indeseable, pues cada árbol indica una manera distinta de estructurar la expresión. En efecto, en el árbol de la izquierda, al resultado de la suma (x + y) se multiplica con x, mientras que en el de la derecha sumamos x al resultado de multiplicar x con y; por lo tanto el significado que se asocia a ambas expresiones puede ser distinto.11

La ambigüedad es una propiedad de la gramática mas no del lenguaje generado.

Figura 47: Arboles de derivación para una gramática ambigua

Cómo eliminar la ambigüedad de una GLC: Consiste en introducir nuevos estados no-

terminales de modo que se eliminen los árboles de derivación no deseados. Para el

anterior ejemplo es típica la solución introduciendo variables (T) y factores (F). La

gramática resultante es:

E → E + T │T │ ; T → T * F │ F │ ; F → (E) │ x │ y

Con esta nueva GLC, el árbol de derivación de la figura 46 (a) se elimina, quedando

finalmente una adaptación del árbol de la figura 46 (b) a la GLC con términos y factores.

11

(Bis)4

Page 83: 301405 Automatas y Lenguajes Formales 2013-II

83

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

Ejemplo 46: 12La gramática S → aa, A → aSa, A →a representada en la figura 48 es

ambigua: la palabra a5 tiene dos árboles de derivación distintos.

Figura 48: Arboles de derivación para una gramática ambigua para a5

Es suficiente que haya una palabra con dos árboles de derivación distintos para que la

gramática sea ambigua. Esto quiere decir que existe otra gramática de tipo 2 no ambigua

y que genera el mismo lenguaje. El lenguaje generado es }0:{ 32 ia i y otra

gramática no ambigua que también genera este lenguaje es:

S → aa, S → aaU, U → aaaU , U → aaa Aquí a solo tiene un árbol de derivación

asociado que se muestra en la figura 49.

Figura 49: Arboles de derivación para a5

12

MORAL, S; Modelos de computación. 130 p.

Page 84: 301405 Automatas y Lenguajes Formales 2013-II

84

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 19. TRANSFORMACIÓN DE LAS GLC Y FORMAS NORMALES Se trata de “modificar las reglas de la gramática” para que cumplan ciertas propiedades o

por simple estandarización o facilidad de implementación computacional; pero sin

modificar el lenguaje aceptado.

Eliminación de símbolos y producciones inútiles: Un símbolo x (V U ∑) se dice que

es útil si y solo si existe una cadena de derivaciones en G tal que:

xS

es decir si interviene en la derivación de alguna palabra del lenguaje generado por la

gramática. Una producción se dice útil si y solo si todos sus símbolos son útiles. Esto es

equivalente a que pueda usarse en la derivación de alguna palabra del lenguaje asociado

a la gramática. Está claro que eliminando todos los símbolos y producciones inútiles el

lenguaje generado por la gramática no cambia.

El algoritmo para eliminar los símbolos y producciones inútiles consta de dos pasos

fundamentales:

1. Eliminar las variables desde las que no se puede llegar a una palabra de ∑ y las

producciones en las que aparezcan.

2. Eliminar aquellos símbolos que no sean alcanzables desde el estado inicial, S, y las

producciones en las que estos aparezcan.

El primer paso se realiza con el siguiente algoritmo (V' es un conjunto de variables):

1. V´ = 0

2. Para cada producción de la forma A → A se introduce en V´.

3. Mientras V´ cambie

4. Para cada producción B →

5. Si todas las variables de pertenecen a V´,

B se introduce en V´

6. Eliminar las variables que estén en V y no en V'

Page 85: 301405 Automatas y Lenguajes Formales 2013-II

85

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

7. Eliminar todas las producciones donde aparezca una variable de las eliminadas en el

paso anterior

El segundo paso se realiza con el siguiente algoritmo:

V” y J son conjuntos de variables. J son las variables por analizar.

∑´ es un conjunto de símbolos terminales

1. J = {S}

V” = {S}

∑‟ = Φ

2. Mientras J ≠ Φ

3. Extraer un elemento de J : A, (J = J – {A}).

4. Para cada producción de la forma A →

5.Para cada variable B en

6. Si B no está en V” añadir B a J y a V”

7. Poner todos los símbolos terminales de a en ∑´

8. Eliminar todas las variables que no estén en V” y todos los símbolos terminales que no estén en ∑´.

9. Eliminar todas las producciones donde aparezca un símbolo o variable de los eliminado

Ejemplo 47 El objetivo es eliminar todos los símbolos y variables inútiles. Dada la

gramática:

S → AB, S → a, A → a

En el primer algoritmo se elimina B y la producción S → AB. Entonces en el segundo se elimina la variable A y la producción A → a.

Page 86: 301405 Automatas y Lenguajes Formales 2013-II

86

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

Sin embargo, si aplicamos primero el segundo algoritmo, entonces no se elimina nada. Al aplicar después el primero de los algoritmos se elimina B y la producción S → AB. En definitiva, nos queda la gramática

S → a, A → a

Producciones Nulas: Son de la forma A → . El objetivo sigue siendo el que no se

modifique el lenguaje ni la estructura de los árboles de derivación. La idea que permite

eliminar las reglas A → es la de irse un paso atrás para examinar de dónde provino el

no-terminal A que se quiere eliminar, y por cada regla B → A de la gramática

agregar una regla B → , en que directamente ya se reemplazó A por . Una vez

hecho esto, se pueden suprimir todas las reglas de la forma A → , pues resultan

redundantes.

El hecho que gramática GLC contenga reglas de la forma A → no significa que el

lenguaje contenga forzosamente a la palabra vacía. Ejemplo de ello es la siguiente

gramática cuyo lenguaje no contiene la palabra vacía.

S → (A), A → (A), A → AA, A →

En caso de que el lenguaje en cuestión realmente contenga a la palabra vacía, no es

posible estrictamente eliminar todas las producciones vacías sin alterar el significado de la

gramática. En estos casos vamos a expresar el lenguaje como la unión { } U L G‟ donde

G´ es la gramática transformada.

Producciones unitarias: Son las que tienen la forma A → B donde A,B V

Ejemplo 48 Dada la gramática GLC con las reglas siguientes:

S → (S), S → BB, S → (), B → S

Su árbol de derivación fue simulado en JFLAP. Admite paréntesis balanceados como

cadenas válidas. En la figura 50 se evaluó la cadena = { ( ( ( ) ) ) }

Page 87: 301405 Automatas y Lenguajes Formales 2013-II

87

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 50: Arboles de derivación para paréntesis balanceados

Fuente: <Generado con JFLAP – El Autor>

Se tiene una regla S → BB, y luego B se transforma en S por la regla B → S. Se evidencia

acá que no es necesario usar estas reglas intermediarias cuando es posible generar

directamente SS a partir de S. La idea de eliminar las reglas de la forma A → B viene de

observar que dichas reglas no producen nada útil, simplemente introducen símbolos

intermediarios, que es posible eliminar.

Si en una gramática hay las reglas A → B y B → i entonces es posible añadir reglas

A → i sin modificar el lenguaje. Ahora bien, si hacemos esto siempre que sea posible,

las reglas de la forma A → B se vuelven inútiles, pues toda derivación:

. . . iBA . . . y que puede transformarse en:

. . . iA . . . sin modificar el lenguaje. Esto prueba que la gramática

equivalente es original.

Si se aplica este tipo de transformaciones al ejemplo 48 la regla “inútil”, que tratamos de

eliminar, es B → S. Se producen las nuevas reglas siguientes:

1. B → (S), al combinar B → S con S → (S)

2. B → BB, al combinar B → S con S → BB

3. B → (), al combinar B → S con S → ()

La gramática final queda determinada por las reglas:

Page 88: 301405 Automatas y Lenguajes Formales 2013-II

88

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

S → (S), S → BB, S → (), B → (S), B → BB, B → ()

Su árbol de derivación fue simulado en JFLAP. Admite paréntesis balanceados como

cadenas válidas. En la figura 51 se evaluó la cadena = { ( ( ( ) ) ) } al igual que se hizo

en la figura 50. El lenguaje no se modificó lego de eliminar producciones unitarias.

Figura 51: Arboles de derivación para paréntesis balanceados

Fuente: <Generado con JFLAP – El Autor>

Eliminación de reglas inaccesibles: Dada la gramática GLC con las siguientes reglas:

S → aXbb, X → bSa, Y → SX

La tercera regla es inútil, porque no hay nadie que produzca la Y necesaria para que

dicha regla se aplique. A reglas como éstas se les llama inaccesibles.

Definición 19: 13Una regla X → de una gramática (V, ∑, R, S) es inaccesible si no hay

una derivación S 1 X 2 donde 1 , 2 (V U ∑)*.

En términos prácticos, si vemos que una variable X no aparece en el lado derecho de

ninguna regla de la gramática, podemos asegurar sin arriesgarnos que la regla X → es

inaccesible.

Para eliminar una regla inaccesible no se necesita hacer ninguna otra modificación a la

gramática más que simplemente borrarla. La equivalencia de la gramática sin la regla

13

BREANA, R; Autómatas y Lenguajes un enfoque de diseño. 214 p.

Page 89: 301405 Automatas y Lenguajes Formales 2013-II

89

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

inaccesible y la original está garantizada por el hecho de que dicha regla no participa en

ninguna derivación.

Formas Normales: 14Cuando es necesario expresar una GLC siguiendo formatos más

preciso de las reglas que la simple forma A → . Estos estándares reciben el nombre de

formas normales. Y una de estas formas formales más conocidas es la forma normal de

Chomsky (FNCH). La FNCH consiste en que las reglas pueden tener dos formas:

1. A → a, con a

2. A → BC, con B,C V

Esta forma normal tiene por objeto facilitar el análisis sintáctico de una palabra de

entrada, siguiendo las siguientes estrategias:

Se trata de construir un árbol de derivación de de arriba hacia abajo (llamado

“top-down”).

Inicialmente el símbolo inicial S puede producir la palabra .

Se procede a dividir la palabra de entrada en dos pedazos, , para luego

tomar una regla S → AB, y tratar de verificar si se puede derivar a a partir de A y b

a partir de B, es decir: S . . . si:

1. , hay una regla S → .

2. , hay una regla S → AB, con A . . . , y B . . .

LECCIÓN 20. LIMITACIONES DE LOS LLC

El objetivo es verificar que dado un lenguaje L no cumple que sea LLC. El “teorema de bombeo” permite verificar esta condición. Este lema de bombeo también puede verse como una condición necesaria que deben de cumplir todos los lenguajes libres de contexto.

Lema de Bombeo para lenguajes libres de contexto: Sea L un lenguaje libre de

contexto. Entonces, existe una constante n, que depende solo de L, tal que si z L y

│z│ ≥ n , entonces z se puede escribir de la forma uvwxy de forma que:

14

Bis (13)

Page 90: 301405 Automatas y Lenguajes Formales 2013-II

90

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. │ vx │ ≥ 1

2. │vwx│≤ n, y

3. Lywxuvi ii ,0

Demostración. Sólo vamos a indicar una idea de cómo es la demostración. Supongamos

que la gramática no tiene producciones nulas ni unitarias (si existieses siempre se podrían

eliminar).

Asumamos un árbol de derivación de una palabra generada por la gramática. Es fácil

ver que si la longitud de es suficientemente grande, en su árbol de derivación debe de

existir un camino de longitud mayor que el número de variables. Sea N un número que

garantice que se verifica esta propiedad. En dicho camino, al menos debe de haber una

variable repetida.

Supongamos que esta variable es A, y que la figura 52 representa el árbol de derivación y

dos apariciones consecutivas de A.

Figura 52: Arboles de derivación en el lema de bombeo

Fuente: <MORAL, S; Modelos de computación>

Page 91: 301405 Automatas y Lenguajes Formales 2013-II

91

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 5. AUTÓMATAS DE PILA

Un Autómata de depila (AP) ó PushDown Automata (PDA) no es más que un AF con un poder adicional de cálculo (memoria). Dado que los AF no son tan poderosos para ciertas operaciones ni para aceptar los LLC, los AP si lo son Si para las expresiones regulares se tenían ciertas maquinas abstractas, autómatas finitos, que las reconocían, para las CFG (Gramáticas fuera de contexto) vamos a usar otro tipo de maquina reconocedora denominada autómata de pila. Estas se diferencian de los autómatas finitos en que se ayudan para sus transiciones de una memoria con estructura de pila. Como en los anteriores, la transición entre estados depende del símbolo leído y del estado actual. Cada transición implica la modificación de la pila.

LECCIÓN 21. DEFINICIÓN DE AUTÓMATA CON PILA

A continuación daremos la definición formal de autómata con pila no determinístico (APND). Al contrario que en los autómatas finitos, los autómatas con pila no determinísticos y determinísticos no aceptan las mismas familias de lenguajes. Precisamente son los no determinísticos los asociados con los lenguajes libres de contexto. Los determinísticos aceptan una familia más restringida de lenguajes.

Definición 20: La formalización de un autómata de pila es un séptuplo ),,,,,( FsK en

donde:

K es el conjunto de estados

∑ es el alfabeto de entrada

es el alfabeto de la pila

S K es el estado inicial

Z0 es el símbolo inicial de la pila (o también se denota como Z simplemente)

F K es un conjunto de estados finales.

∆ ( K x ∑* x *) x ( K x *) es la relación (función) de transición.

Observar que el autómata es no determinista ya que dado un estado, un símbolo del alfabeto de entrada y otro del alfabeto de la pila, puede pasar a distintos estados y

reemplazar el tope de la pila por distintas cadenas i , avanzando o no la cabeza lectora

una posición:

Page 92: 301405 Automatas y Lenguajes Formales 2013-II

92

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

∆ : K x (∑ U { }) x → 2 K x *

La figura 53 muestra la estructura de un Autómata de Pila (PDA) Figura 53: Formalización de un PDA

La función de transición aplica cada estado, cada símbolo de entrada (incluyendo la cadena vacía) y cada símbolo tope de la pila en un conjunto de posibles movimientos. Cada movimiento parte de un estado, un símbolo de la cinta de entrada y un símbolo tope de la pila. El movimiento en sí consiste en un cambio de estado, en la lectura del símbolo de entrada y en la sustitución del símbolo tope de la pila por una cadena de símbolos.

LECCIÓN 22. FUNCIONAMIENTO DE LOS AUTÓMATAS DE PILA La pila funciona de manera que el ultimo caractér que se almacena en ella es el primero

en salir (“LIFO” por las siglas en ingles), como si se apilaran platos uno encima de otro, y

naturalmente el primero que quitaremos es el ´último que hemos colocado. Un aspecto

Page 93: 301405 Automatas y Lenguajes Formales 2013-II

93

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

crucial de la pila es que solo podemos modificar su “tope”, que es el extremo por donde

entran o salen los caracteres. Los caracteres a la mitad de la pila no son accesibles sin

quitar antes los que están encima de ellos.

La pila tendrá un alfabeto propio, que puede o no coincidir con el alfabeto de la palabra de

entrada. Esto se justifica porque puede ser necesario introducir en la pila caracteres

especiales usados como separadores, según las necesidades de diseño del autómata.

Al iniciar la operación de un AP, la pila se encuentra vacía. Durante la operación del AP,

la pila puede ir recibiendo (y almacenando) caracteres, según lo indiquen las transiciones

ejecutadas. Al final de su operación, para aceptar una palabra, la pila debe estar

nuevamente vacía.

En los AP las transiciones de un estado a otro indican, además de los caracteres que se

consumen de la entrada, también lo que se saca del tope de la pila, así como también lo

que se mete a la pila.

Se entiende por configuración de un autómata con pila a su situación en un instante

considerado expresada formalmente por medio de una tripla.

(q, , ) ( K x ∑* x *) en donde:

q K es el estado actual del autómata.

∑* es la subcadena de entrada que aún no se ha analizado.

* es el contenido actual de la pila

Se presenta un caso en el que:

Si = no queda nada por analizar

Si = se ha reconocido la cadena

La Notación gráfica que se asemeja a la de los autómatas finitos (AF) es la dada así:

Para las transacciones se usa: “ / / ” en donde:

= es la entrada (secuencia de caracteres) que se consume.

= es lo que se saca de la pila.

= es lo que se mete en la pila

Ejemplo 49 Dada la siguiente transición: “ a / / A “ Indica que se consume de la entrada

un caractér a, no se saca nada de la pila y se mete A a la pila.

Page 94: 301405 Automatas y Lenguajes Formales 2013-II

94

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 función de transición de estados de un AP puede ser representada por un diagrama

donde los nodos representan los estados y los arcos transiciones. Si se da la transición, el

arco queda rotulado de la siguiente manera: Figura 54.

Figura 54: Transición de un PDA

Si el estado actual es q0 y la cabeza lectora apunta un símbolo a, y el tope de la pila es X,

entonces cambiar al nuevo estado q0, avanzar la cabeza lectora, y sustituir el símbolo del

tope X en la pila por la cadena

LECCIÓN 23. DISEÑO DE AUTÓMATAS DE PILA

Al igual que los AF, los AP tienen estados finales, que permiten distinguir cuando una

palabra de entrada es aceptada. De hecho para que una palabra de entrada sea aceptada

en un AP se deben cumplir todas las condiciones siguientes:

La palabra de entrada se debe haber agotado (consumido totalmente).

Al AP se debe encontrar en un estado final.

La pila debe estar vacía.

Transiciones de un PDA: Las posibles operaciones con la cinta y la pila son:

La cinta se desplaza en un solo sentido y su cabeza solo puede leer.

La pila, está limitada en un extremo por definición, cuando se lee un elemento de

la pila, este desaparece o se saca y cuando se escribe en la pila se introduce un

elemento.

En cualquier caso, si se vacía la pila, entonces el autómata se detiene.

El problema de diseño de los AP consiste en obtener un AP M que acepte exactamente

un lenguaje L dado. Por exactamente queremos decir, como en el caso de los autómatas

finitos, que, por una parte, todas las palabras que acepta efectivamente pertenecen a L, y

por otra parte, que M es capaz de aceptar todas las palabras de L.

Aunque en el caso de los AP no hay metodologías tan generalmente aplicables como era

el caso de los autómatas finitos, siguen siendo válidas las ideas básicas del diseño

Page 95: 301405 Automatas y Lenguajes Formales 2013-II

95

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

sistemático, en particular establecer claramente qué es lo que “recuerda” cada estado del

AP antes de ponerse a trazar transiciones a diestra y siniestra. Para los AP,

adicionalmente tenemos que establecer una estrategia clara para el manejo de la pila.

En resumen, a la hora de diseñar un AP tenemos que repartir lo que requiere ser

“recordado” entre los estados y la pila. Distintos diseños para un mismo problema pueden

tomar decisiones diferentes en cuanto a qué recuerda cada cual.

Definición 21: Un movimiento de un AP es una transición entre configuraciones

Ejemplo 50 El movimiento (q, a , Z ) ├ (q´, , ) es un movimiento válido siempre

y cuando (q´, ) (q, a, Z) con q´ K, a (∑ U ) , ∑*, , *.

Se recuerda que un AP no puede realizar ningún movimiento si la pila está vacía. Por lo

que un AP reconocerá una cadena de entrada por estado final si partiendo de su

configuración inicial (q0, t, Z0), llega a una configuración final (qf, , ) empleando

movimientos válidos y se expresa como:

(q0, t, Z0) ├* (qf, , ), qf F, *

La cadena será aceptada por vaciado de pila si después de leerse toda la cadena se llega

a un estado con la pila vacía, independientemente del tipo de estado en el que se

encuentre el AP.

RESUMEN DE LAS TRANSICIONES DE UN PDA:

Leer un símbolo de entrada

Extraer un símbolo de la pila

Insertar un símbolo en la pila

Pasar a un estado nuevo

Ejemplo 51 Diseñar un AP que acepte exactamente el lenguaje con palabras de la forma

anbn, para cualquier número natural n.

La figura 55 muestra el diseño inicial para este ejercicio:

Page 96: 301405 Automatas y Lenguajes Formales 2013-II

96

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 55: Estructura de un PDA para w=aabb

La construcción en diseño indica utilizar la pila como “contador” para recordar la cantidad

de a´s que se consumen, y luego confrontar la cantidad de b´s. Una primera versión de

este diseño utiliza un solo estado q, con transiciones a/ /a y b / a / de q así mismo.

El diseño del autómata se ve en la figura 56.

Figura 56: Diseño de un PDA para w=aabb

Page 97: 301405 Automatas y Lenguajes Formales 2013-II

97

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 verificar el funcionamiento del autómata, podemos simular su ejecución, listando las

situaciones sucesivas en que se encuentra, mediante una tabla que llamaremos “traza de

ejecución”. Las columnas de una traza de ejecución para un AP son: el estado en que se

encuentra el autómata, lo que falta por leer de la palabra de entrada, y el contenido de la

pila.

Por ejemplo, la traza de ejecución del AP del último ejemplo, para la palabra aabb, se

muestra a continuación en la tabla 13:

Tabla 13: Traza de ejecución del AP

Estado Por Leer pila

q q q q q

.aabb .abb .bb .b

.a .aa .a

Fuente: <BRENA.R; Autómatas y lenguajes un enfoque de diseño>

Concluimos que el AP efectivamente puede aceptar palabras como anbn. Sin embargo,

hay un problema: ¡el AP también acepta palabras como abab, que no tienen la forma

deseada! (es fácil construir la traza de ejecución correspondiente para convencerse de

ello). El problema viene de que no hemos recordado cuando se terminan las a y principian

las b, por eso ha sido posible mezclarlas en abab. Una solución es utilizar los estados

para memorizar las situaciones de estar consumiendo a o estar consumiendo b. El

diagrama de estados correspondiente se muestra en la figura 55(b).

LECCIÓN 24. FUNCIONES QUE SE APLICAN SOBRE LOS STACKS. (PILAS). Stacks: Podemos identificar las pilas con ciertos lenguajes y ciertas funciones sobre un

alfabeto del modo siguiente:

Comenzamos añadiendo un nuevo símbolo Z0 que no está en .

Las pilas (stacks) son elementos del lenguaje: Z0 . El símbolo Z0 se identificará

con el significado: Fondo de la Pila. (No es que esté vacía que es diferente).

Se definen las siguientes funciones. Figura 57.

Page 98: 301405 Automatas y Lenguajes Formales 2013-II

98

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 57: Funciones de la Pilas.

Fuente: <El autor, creado con Lyx 2.0.6>

Tabla 14: Recursos web para PDA

DESCRIPCIÓN DE VIDEO

CANAL

CANAL

9Configuración, descripción. Componentes de un PDA. Parte 1 de 3

http://youtu.be/q5G0WnL5JUA http://www.veoh.com/watch/v61736354aeFD3q7R

Configuración, descripción. Componentes de un PDA. Parte 2 de 3

http://youtu.be/yfXfKKZZl1g http://www.veoh.com/watch/v61736979F2m9HbgG

Configuración, descripción. Componentes de un PDA. Parte 3 de 3

http://youtu.be/1YdZpLloFb8 http://www.veoh.com/watch/v61737911GZHgFEnT

Fuente:<El autor>

Page 99: 301405 Automatas y Lenguajes Formales 2013-II

99

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 25. COMBINACIÓN MODULAR DE AUTÓMATAS DE PILA

Como ya se ha estudiado los autómatas finitos no determinísticos (AFND) reconocen los

mismos lenguajes que los autómatas finitos determinísticos (AFD). Sin embargo no ocurre

lo mismo con autómatas de pila no determinísticos (APND) y autómatas de pila

determinísticos (APD). Algunos lenguajes sólo pueden ser reconocidos por un APND,

pero no por un APD.

En los AP también es posible aplicar métodos de combinación modular de autómatas, así

como se pueden hacer con los autómatas finitos. En particular, es posible obtener AP que

acepten la unión y concatenación de los lenguajes aceptados por dos AP dados.

En el caso de la unión, dados dos AP M1 y M2 que aceptan respectivamente los lenguajes

L1 y L2, podemos obtener un AP que acepte la unión L1 U L2, introduciendo un nuevo

estado inicial q0 con transiciones / / a los dos antiguos estados iniciales q1 y q2,

como se ilustra en la figura 58.

Figura 58: Unión de AP.

Ejemplo 52 : En el caso de obtener un AFPD que acepte le lenguaje:

L1 = {xnym:│ n,m ≥ 0, n≥ m} Habría que determinar si este lenguaje es producto de la

unión de: {xnym:│ n = m} y {xnym:│ n > m} En los que habría que obtener los AP de

cada uno y combinarlos con el método descrito anteriormente.

El Autómata generado para L1 se muestra en la figura 59.

Page 100: 301405 Automatas y Lenguajes Formales 2013-II

100

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 59: Autómata AFPD.

∆ (q0, Z) = (q1,Z)

∆ (q1, x, ) = (q1,x)

∆ (q1, y, x) = (q2, )

∆ (q2, y, x) = (q2, )

∆ (q2, , Z) = (q3, Z)

CAPITULO 6: PROPIEDADES DE LOS LENGUAJES INDEPENDIENTES DE CONTEXTO

LECCIÓN 26. LENGUAJE ACEPTADO POR UN AP Los lenguajes aceptados por los Autómatas de Pila se denominan lenguajes libres del

contexto.

1. Lenguaje aceptado por estados fiales:

),,(:*{)( 00 ZqML ├ *},),,,( F

2. Leguaje aceptado por pila vacía:

),,(:*{)( 00 ZqMN ├* }),,,( K

En el primer caso, una palabra es aceptada, si se puede llegar a un estado final después

de consumir la entrada. En el segundo criterio, los estados finales no tienen ningún

significado, y una palabra se acepta si cuando se termina de leer la entrada la pila se

queda vacía.

Page 101: 301405 Automatas y Lenguajes Formales 2013-II

101

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 el caso del ejemplo 52 para la cadena válida o aceptada = xxx las transiciones

dadas están definidas así para el recorrido de la Pila:

(q0, xxx, Z) ├ (q1, xxx, Z) ├ (q1, xx, xZ) ├ (q1, x, xxZ) ├ (q1, , xxxZ)

La pila quedó llena xxxZ y el autómata en el estado q1 reconoció por completo la cadena.

Para la cadena válida = xxy las transiciones dadas están definidas así para el

recorridao de la Pila:

(q0, xxy, Z) ├ (q1, xxy, Z) ├ (q1, xy, xZ) ├ (q1, y, xxZ) ├ (q2, , xZ)

Aunque la pila no quedó del todo vacía (quedó xZ) se reconoció toda la cadena completa

y el autómata quedó en un estado de aceptación q2.

Para la cadena válida = xxyy las transiciones dadas están definidas así para el

recorrido de la Pila:

(q0, xxyy, Z)├ (q1, xxyy, Z)├ (q1, xyy, xZ) ├ (q1, yy, xxZ) ├ (q2, y, xZ) ├ (q2, ,Z) ├ (q3, ,Z)

La cadena es procesada por completo, en la pila queda el símbolo inicial de pila y por

tanto la cadena es aceptada.

Para la cadena no válida o no aceptada = xyy las transiciones dadas están definidas

así para el recorrido de la Pila:

(q0, xyy, Z)├ (q1, xyy, Z)├ (q1, yy, xZ) ├ (q2, y, Z)

A pesar de que se está en un estado de aceptación la cadena no se terminó de escanear,

la transición (q2, y, Z) no está definida en este autómata. Por tanto la cadena no es

reconocida por el autómata.

LECCIÓN 27. RELACIÓN ENTRE LOS AUTÓMATAS DE PILA Y LENGUAJES LIBRES DE CONTEXTO Se va a verificar si los AP son efectivamente capaces de aceptar los LLC ya que un

Teorema anterior afirma: Si un lenguaje es generado por una gramática libre del contexto,

entonces es aceptado por un Autómata con Pila No-Determinístico.

Teorema. Los autómatas de pila aceptan exactamente los LLC.

Page 102: 301405 Automatas y Lenguajes Formales 2013-II

102

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

Vamos a examinar la prueba de esta afirmación, no solamente por el interés por la

rigurosidad matemática, sino sobre todo porque provee un método de utilidad práctica

para transformar una GLC en un AP. La prueba de este teorema se puede dividir en dos

partes:

1. Si M es un AP, entonces L(M) es un LLC

2. Si L es un LLC, entonces hay un AP M tal que L(M) = L

Vamos a presentar únicamente la prueba con la parte 2, que consideramos de mayor

relevancia práctica.

Sea una gramática G = (V,∑,R,S). Entonces un Autómata de Pila M que acepta

exactamente el lenguaje generado por G se define como sigue:

M = ({p, q},∑, V U ∑, ∆ , p, {q}) donde ∆ contiene las siguientes transiciones:

1. Una transición ((p, , ), (q, S))

2. Una transición ((q, ,A), (q, x)) para cada A → x R

3. Una transición ((q, , ), (q, )) para cada ∑

Ejemplo 53 Obtener un AP que acepte el LLC generado por la gramática con reglas:

1. S → aSa

2. S → bSb

3. S → c

Las transiciones del AP correspondiente están dadas en la tabla siguiente:

1 (p, , ) (q,S)

2 (p, ,S) (q,aSa)

3 (q, ,S) (q,bSb)

4 (q, ,S) (q,c)

5 (q,a, a) (q, )

6 (q,b, b) (q, ) 7 (q,c, c) (q, )

Page 103: 301405 Automatas y Lenguajes Formales 2013-II

103

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 funcionamiento de este AP ante la palabra abcba aparece en la siguiente tabla:

Estado Falta leer Pila

p q q q q q q q q q

abcba abcba abcba bcba bcba cba cba ba a

S aSa Sa bSba Sba cba ba a

Se justifica intuitivamente el método que se introdujo para obtener un AP

equivalente a una gramática dada. Si se observa las transiciones del AP, veremos que

solamente tiene dos estados, p y q, y que el primero de ellos desaparece del cálculo en el

primer paso; de esto concluimos que el AP no utiliza los estados para “recordar”

características de la entrada, y por lo tanto reposa exclusivamente en el almacenamiento

de caracteres en la pila. En efecto, podemos ver que las transiciones del tipo 2, lo

que hacen es reemplazar en la pila una variable por la cadena que aparece en el lado

derecho de la regla correspondiente. Dado que la (única) transición de tipo 1 (transición 1

del ejemplo) coloca el símbolo inicial en la pila, a continuación lo que hacen las reglas de

tipo 2 es realmente efectuar toda la derivación dentro de la pila de la palabra de entrada,

reemplazando un lado izquierdo de una regla por su lado derecho. Una vez hecha la

derivación de la palabra de entrada, la cual estaría dentro de la pila, sin haber aún

gastado un solo caracter de la entrada podemos compararla caracter por caracter con la

entrada, por medio de las transiciones de tipo 3.

Existe sin embargo un problema técnico: si observamos la “corrida” para la palabra abcba,

nos daremos cuenta de que no estamos aplicando las reglas en el orden descrito en el

párrafo anterior, esto es, primero la transición del grupo 1, luego las del grupo 2 y

finalmente las del grupo 3, sino que más bien en la cuarta línea de la tabla se consume un

caracter a (aplicación de una transición del grupo 3) seguida de la aplicación de una

transición del grupo 2. Esto no es casualidad; lo que ocurre es que las variables no

pueden ser reemplazadas por el lado derecho de una regla si dichas variables no se

Page 104: 301405 Automatas y Lenguajes Formales 2013-II

104

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

encuentran en el tope de la pila. En efecto, recuérdese que los AP solo pueden accesar el

caracter que se encuentra en el tope de la pila.

Por esto, se hace necesario, antes de reemplazar una variable por la cadena del lado

derecho de una regla, “desenterrar” dicha variable hasta que aparezca en el tope de la

pila, lo cual puede hacerse consumiendo caracteres de la pila (y de la entrada, desde

luego) mediante la aplicación de transiciones del tipo 3.

LECCIÓN 28. PROPIEDADES DE CLAUSURA DE LOS LENGUAJES LIBRES DE CONTEXTO

Los lenguajes libres de contexto son cerrados para las operaciones:

Unión Concatenación Clausura

Demostración:

Sean G1 = (V1, T1, P1, S1) y G2 = (V2, T2, P2, S2) dos gramáticas libres de contexto y L1 y

L2 los lenguajes que generan. Supongamos que los conjuntos de variables son disjuntos.

Demostraremos que los lenguajes L1 U L2, L1 L2 y L1* son libres de contexto,

encontrando gramáticas de tipo 2 que los generen.

L1 U L2. Una gramática que genera este lenguaje es:

G3 = (V1 U V2 U {S3}, T1 U T2, P3, S3), donde S3 es una nueva variable, y P3 = P1 U P2 más

las producciones S3 → S1 y S3 → S2

L1L2. Una gramática que genera este lenguaje es G4 = (V1 U V2 U {S4}, T1 U T2, P4,

S4), donde S4 es una nueva variable, y P4 =P1 U P2 más la producción S4 → S1S2.

L1* Una gramática que genera este lenguaje es G5 =(V1 U {S5}, T1,P5,S5 ) donde

P5 es P1 más las producciones S5 →S1S5 y S5 → .

Algunas propiedades de clausura de los lenguajes regulares no se verifican en la clase de

los lenguajes libres de contexto, como las que expresan el siguiente teorema.

Teorema: La clase de los lenguajes libres de contexto no es cerrada para la intersección.

Demostración. Sabemos que el lenguaje L = {aibici │ i ≥ 1} no es libre de contexto. Por

otra parte los lenguajes L2 ={ aibicj | i ≥ 1 y j ≥1} y L3 ={ aibicj | i ≥1 y j ≥1} si lo son.

Page 105: 301405 Automatas y Lenguajes Formales 2013-II

105

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 primero de ellos es generado por la gramática:

S → AB

A → aAb | ab

B → cB | c

y el segundo, por la gramática:

S → CD

C → aC | a

D → bDc │ bc

Como L2 ∩ L3 = L1, se deduce que la clase de lenguajes libres de contexto no es cerrada

para la intersección.

Definición: La clase de lenguajes libres de contexto no es cerrada para el complementario.

Demostración: Es inmediato, ya que como la clase es cerrada para la unión, si lo fuese

para el complementario, se podría demostrar, usando las leyes De Morgan que lo es

también para la intersección.

LECCIÓN 29. ALGORITMOS DE DECISIÓN PARA LOS LENGUAJES LIBRES DE CONTEXTO.

Existen una serie de problemas interesantes que se pueden resolver en la clase de los

lenguajes libres de contexto. Por ejemplo, existen algoritmos que nos dicen si un

Lenguaje Libre de Contexto (dado por una gramática de tipo 2 o un autómata con pila no

determinístico) es vacío, finito o infinito. Sin embargo, en la clase de lenguajes libres de

contexto comienzan a aparecer algunas propiedades indecidibles. A continuación,

veremos algoritmos para las propiedades decidibles y mencionaremos algunas

propiedades indecidibles importantes.

Teorema Existen algoritmos para determinar si un lenguaje libre de contexto es:

a) vacío b) finito c) infinito

Page 106: 301405 Automatas y Lenguajes Formales 2013-II

106

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

Demostración.

a) En la primera parte del algoritmo para eliminar símbolos y producciones inútiles de una

gramática, se determinaban las variables que podían generar una cadena formada

exclusivamente por símbolos terminales. El lenguaje generado es vacío si y solo si la

variable inicial S es eliminada: no puede generar una palabra de símbolos terminales.

b) y c) Para determinar si el lenguaje generado por una gramática de tipo 2 es finito o

infinito pasamos la gramática a forma normal de Chomsky, sin símbolos ni producciones

inútiles. En estas condiciones todas las producciones son de la forma:

A → BC, A → a

Se construye entonces un grafo dirigido en el que los vértices son las variables y en el

que para cada producción de la forma A → BC se consideran dos arcos: uno de A a B y

otro de A a C. Se puede comprobar que el lenguaje generado es finito si y solo si el grafo

construido de esta forma no tiene ciclos dirigidos.

Ejemplo 54 Consideremos la gramática con producciones,

S → AB

A → BC | a

B → CC | b

C → a

El grafo asociado es el de la figura 60 (a). No tiene ciclos y el lenguaje es finito. Si

añadimos la producción C → AB, el grafo tiene ciclos figura 60 (b) y el lenguaje generado

es infinito.

Figura 60: Grafo para L finito y L infinito.

Page 107: 301405 Automatas y Lenguajes Formales 2013-II

107

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 30. PROBLEMAS INDECIDIBLES PARA LENGUAJES LIBRES DE CONTEXTO.

Para continuar el apartado de algoritmos de decisión para gramáticas libres de contexto

daremos algunos problemas que son indecidibles, es decir, no hay ningún algoritmo que

los resuelva. En ellos se supone que G, G1 y G2 son gramáticas libres de contexto dadas

y R es un lenguaje regular.

Los lenguajes libres de contexto tienen una aplicación a los compiladores, aunque existen

otras aplicaciones como la compartición de información. Es aquí donde se presentan

interrogantes a las denominadas “gramáticas sensibles al contexto”.

Para gramáticas sensibles al contexto, el problema de decidir si el lenguaje que genera es

vacío o no también es un problema indecidible.

LÍMITE DE LOS COMPUTADORES ACTUALES

La última Unidad de este módulo (Unidad 3: Lenguajes estructurados por frases) le llevará

a comprender como se ha demostrado que hay infinitos problemas para los que no se va

a tener una Máquina de Turing (MT) que los resuelva (ni siquiera los reconozca). También

se ha formulado la tesis de Church-Turing, que determina el límite de los computadores

actuales. Si esto es así, llegamos al caso de formular la pregunta:

¿Qué tipo de máquina es un computador actual?

Es otro contexto que podrá concluir cuando se analice la MUT (Máquina Universal de

Turing) como una máquina programable. Para demostrar esta afirmación, se puede

proceder primero simulando una MT con un computador y segundo simular un

computador con una MT.

Para el primer paso, si tenemos una MT con cinta semi-infinita, la unidad de control se

simula por el procesador, cada uno de los símbolos de cinta se codifican como la

información que se permiten guardar en la memoria del computador. Los estados, al ser

finitos, se pueden guardar en una tabla (en realidad sería el estado del procesador, que

incluye el contador de programa) y las transiciones se simulan mediante un programa. La

cinta se simularía con la memoria. El inconveniente de que un computador tiene

una memoria finita se soluciona suponiendo que siempre es posible añadirle, de

forma indefinida, más memoria. De esta forma un computador simularía el funcionamiento

de una MT cualquiera.

Page 108: 301405 Automatas y Lenguajes Formales 2013-II

108

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 segundo paso, pasar de un computador a una MT de varias cintas, es también casi

inmediato. El programa y los datos de entrada al programa que se introducen en la

memoria antes de ejecutarse en el computador se pueden codificar como un par (M, ω),

donde M es la secuencia de instrucciones que hay que computar y ω son los datos de

entrada al programa, almacenándose en la primera cinta. En la segunda cinta

almacenaremos las posiciones de memoria a las que va a acceder el programa para su

lectura/escritura. En la tercera cinta almacenaremos el contador de programa (el estado),

que es el que determina la dirección de la computación. De esta forma la MT simularía el

funcionamiento de un computador muy básico. La memoria caché, los registros, la UAL

(Unidad aritmeticológica) son ampliaciones que se han hecho para mejorar la eficiencia.

UNIDAD 3 LENGUAJES ESTRUCTURADOS POR FRASES.

En las Unidades precedentes se han estudiado lo que se puede considerar las máquinas

abstractas que permiten solucionar ciertos tipos de algoritmos, los algoritmos en los

que no puede recordarse más que una cantidad fija de información y otros en los

que la información desarrollada durante la ejecución del algoritmo puede recuperararse

solo en concordancia con la regla “lifo” últimos en entrar primeros en salir, en esta

unidad se describe una maquina abstracta, llamada Máquina de Turing , que es

aceptada de manera amplia como modelo general de computación, aunque las

operaciones básicas de esta máquina son comparables en su sencillez a las de las

máquinas estudiadas en las unidades anteriores, las nuevas máquinas pueden

realizar una amplia variedad de operaciones de computo. Además de aceptar lenguajes

les es posible computar funciones y de conformidad con la tesis de Church-Turing,

ejecutar casi cualquier procedimiento algorítmico concebible.

El objetivo de esta unidad será reconocer la importancia y el poder computacional de las

Máquinas de Turing en el contexto de la solución de problemas computacionales de

reconocimiento de lenguajes.

CAPITULO 7 MAQUINAS DE TURING. Los modelos abstractos de computación tienen su origen en los años 30, bastante antes

de que existieran los ordenadores modernos, en el trabajo de los lógicos Church, Gödel,

Kleene, Post, y (Alan Mathison Turing). Estos primeros trabajos han tenido una profunda

influencia no solo en el desarrollo teórico de las Ciencias de la Computación, sino que

Page 109: 301405 Automatas y Lenguajes Formales 2013-II

109

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

muchos aspectos de la práctica de la computación que son ahora lugar común de los

informáticos, fueron presagiados por ellos; incluyendo la existencia de ordenadores de

propósito general, la posibilidad de interpretar programas, la dualidad entre software y

hardware, y la representación de lenguajes por estructuras formales basados en reglas de

producción.

Así como en secciones anteriores vimos como al añadir al autómata finito básico una pila

de almacenamiento auxiliar, aumentando con ello su poder de cálculo, cabría ahora

preguntarnos qué es lo que habría que añadir a un autómata de pila para que pudiera

analizar lenguajes como {anbncn}. Básicamente se trata del diseño de un Autómata con

mayor poder de reconocimiento y proceso de lenguajes, que tomas y fusiona aspectos de

un AF y de un PDA.

A Turing propuso en los años 30 un modelo de maquina abstracta, como una extensión

de los autómatas finitos, que resultó ser de una gran simplicidad y poderío a la vez. La

máquina de Turing es particularmente importante porque es la más poderosa de todas las

maquinas abstractas conocidas.

Utilidad de las Máquinas de Turing (MT):

Gracias a ser tan simples, resulta más fácil demostrar que algo no se puede

resolver con ellas.

Gracias a su equivalencia con los lenguajes de programación, entonces facilitan la

demostración de que cierto problema, no se puede resolver con un lenguaje de

programación.

Mecanismo de cómputo muy sencillo de definir. Pero tan potentes como los

lenguajes de programación de muy bajo nivel.

Por ser tan de demasiado de “Bajo Nivel” no resultan prácticas para programar.

La parte final del estado de las máquinas de Turing nos lleva a analizar la “Tesis de

Church”, que dice que las Máquinas de Turing son equivalentes a cualquier modelo de

computación factible de construir.

LECCIÓN 31. FORMALIZACIÓN DE LAS MT.

Corresponde a su modelización matemática en términos de la teoría de conjuntos.

Una MT es un septuplo (K, ∑, , , s) en donde:

K = es el conjunto de estados tal que h K ;

Page 110: 301405 Automatas y Lenguajes Formales 2013-II

110

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

∑ = es el alfabeto de entrada, donde Ц ∑ ;

= es el alfabeto de la cinta, donde Ц y ∑ ;

s K es el estado inicial;

T K es el estado final;

B es el símbolo blanco (el símbolo B no puede hacer parte de ∑) aparece en

todas las casillas excepto en aquellas que contienen los símbolos de entrada.

: (K – {h} x ) → K x ( U { L,R } )

Los componentes de una MT se pueden ver en la figura:

Figura 61: Componentes de una MT

Page 111: 301405 Automatas y Lenguajes Formales 2013-II

111

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 función de transición del control finito debe considerar como entradas el estado actual,

que es un elemento de K –pero que no puede ser h– así como el caracter leído en la

cinta, que es elemento de .

Por eso a la izquierda de la flecha aparece la expresión : (K – {h} x ). Luego, el

resultado de la función de transición debe incluir el siguiente estado, que es elemento de

K. Otro resultado de la función de transición es la acción a ejecutar por la MT, que puede

ser una escritura o un movimiento a la izquierda o a la derecha. La acción “mover cabeza

a la izquierda” se representa por el símbolo L, y similarmente R para la derecha. En el

caso de la escritura, en vez de usar un símbolo o comando especial, simplemente se

indica el caracter que se escribe, el cual es un elemento de . Desde luego, para que no

haya confusión se requiere que ni L ni R estén en .

Resumiendo, el resultado de la función de transición debe ser un elemento de:

K x ( U { L,R }

Así, si (q, a) = (p, b), donde b , esto quiere decir que estando la MT en el estado q

con la cabeza lectora sobre un caracter a, la función de transición enviar al autómata a un

estado p, y adicionalmente escribir el carácter b. Similarmente si (q, a) = (p, L) la

cabeza de la MT hará un movimiento a la izquierda además de la transición de estado.

Ejemplo 55: Sea la MT siguiente: K = {s, h}, (solo está el estado inicial, además del “halt”)

donde:

∑ ={a}, ={a, Ц }, (s, a) = (s,R), (s, Ц ) = (h,R)

Puede verse por la función de transición que esta MT ejecuta un ciclo repetitivo en que

mueve la cabeza hacia la derecha en tanto siga leyendo un caracter a, y se detiene (hace

halt) en cuanto llega a un blanco.

Nótese que, puesto que es una función, en principio debe tenerse por cada estado y

cada caracter una transición. Esto quiere decir que cada estado debe tener una cantidad

de flechas de salida igual a | |. Por ejemplo, si = { Ц, a, b}, y K = {q, h}, entonces

debe haber flechas de salida de q con a, de q con b y también de q con Ц.

En la práctica, sin embargo, una gran cantidad de flechas tiende a hacer menos

comprensible un diagrama, por lo que solamente incluiremos las flechas “necesarias”,

suponiendo en consecuencia que las demás flechas pueden tener una salida cualquiera,

sin afectar esto el funcionamiento de la MT. Por ejemplo, a partir del estado inicial

Page 112: 301405 Automatas y Lenguajes Formales 2013-II

112

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

podemos suponer, sin arriesgarnos, que no es posible encontrar más que el caracter

blanco, por lo que no tiene caso dibujar flechas del estado inicial con a, con b, etc.

LECCIÓN 32. FUNCIONAMIENTO DE LA MÁQUINA DE TURING.

La Máquina de Turing es un mecanismo de computación notoriamente primitivo, y sin

embargo permite llevar a cabo cualquier cómputo que podamos hacer en nuestro PC.

Las características que definen su funcionamiento son:

Tiene, como los autómatas que hemos visto antes, un control finito, una cabeza

lectora y una cinta donde puede haber caracteres, y donde eventualmente viene la

palabra de entrada.

La cinta es de longitud infinita hacia la derecha, hacia donde se extiende

indefinidamente, llenándose los espacios con el caracter blanco (que

representaremos con “ Ц”).

La cinta no es infinita hacia la izquierda, por lo que hay un cuadro de la cinta que

es el extremo izquierdo, como el que se muestra en la figura 60.

En la MT la cabeza lectora es de lectura y escritura, por lo que la cinta puede ser

modificada en curso de ejecución.

En la MT la cabeza se mueve bidireccionalmente (izquierda y derecha), por lo que

puede pasar repetidas veces sobre un mismo segmento de la cinta.

La operación de la MT consta de los siguientes pasos:

1. Lee un caracter en la cinta

2. Efectuá una transición de estado

3. Realiza una acción en la cinta

Las acciones que puede ejecutar en la cinta la MT pueden ser:

Escribe un símbolo en la cinta, o

Mueve la cabeza a la izquierda o a la derecha

Estas dos acciones son excluyentes, es decir, se hace una o la otra, pero no ambas a la

vez.

La palabra de entrada en la MT está escrita inicialmente en la cinta, como es habitual en

nuestros autómatas, pero iniciando a partir de la segunda posición de la cinta, siendo el

Page 113: 301405 Automatas y Lenguajes Formales 2013-II

113

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

primer cuadro un caracter blanco. Como la cinta es infinita, inicialmente toda la parte de la

cinta a la derecha de la palabra de entrada está llena del caracter blanco (Ц).

Por definición, al iniciar la operación de la MT, la cabeza lectora está posicionada en el

caracter blanco a la izquierda de la palabra de entrada, el cual es el cuadro más a la

izquierda de la cinta.

Decimos que en la MT se llega al “final de un cálculo” cuando se alcanza un estado

especial llamado halt en el control finito, como resultado de una transición.

Representaremos al halt por “h”. 1 Al llegar al halt, se detiene la operación de la MT, y se

acepta la palabra de entrada. Así, en la MT no hay estados finales. En cierto sentido el

halt sería entonces el único estado final, solo que además detiene la ejecución.

Cuando queremos que una palabra no sea aceptada, desde luego debemos evitar que la

MT llegue al halt. Podemos asegurarnos de ello haciendo que la MT caiga en un ciclo

infinito.

El lenguaje aceptado por una MT es simplemente el conjunto de palabras aceptadas por

ella.

Al diseñar una MT que acepte un cierto lenguaje, en realidad diseñamos el autómata finito

que controla la cabeza y la cinta, el cual es un autómata con salida (acepta cadenas

válidas). Así podemos usar la notación gráfica utilizada para aquellos autómatas para

indicar su funcionamiento. En particular, cuando trazamos una flecha que va de un estado

p a un estado q con etiqueta /L, quiere decir que cuando la entrada al control finito

(esto es, el caracter leído por la cabeza de la MT) es , la cabeza lectora hace un

movimiento a la izquierda, indicada por el caracter L (left, en inglés); similarmente cuando

se tiene una flecha con /R el movimiento es a la derecha. Cuando la flecha tiene la

etiqueta / , donde es un caracter, entonces la acción al recibir el caracter consiste

en escribir el caracter en la cinta. Con estos recursos es suficiente para diseñar algunas

MT, como en el ejemplo que se visualiza en el recurso web.

Ejemplo 56: Diseñe una MT que reconozca {0 n 1 n : n ≥ 1 } y en el que ejecute:

Cambia un 0 por una X y se mueve hacia la derecha, pasando por encima de los ceros e Y, hasta llegar al primer 1.

Cambia el 1 por la Y y se mueve hacia la izquierda por encima de todos los Y y de

todos los ceros hasta llegar a una X y se repite el proceso hasta que solo queden

X´s y Y´s.

El autómata se visualiza en la figura 62.

Page 114: 301405 Automatas y Lenguajes Formales 2013-II

114

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 62: Máquina de Turing simulada en JFLAP.

Fuente:<JFLAP – El Autor>

La función se define así:

(q0,0) = (q1, X, D)

(q1,0) = (q1, 0, D)

(q1,X) = (q1, X, D)

(q1,1) = (q2, Y, I)

(q2,Y) = (q2, Y, I)

(q2,0) = (q2, 0, I)

(q2,X) = (q0, X, D)

(q0,Y) = (q3, Y, D)

(q3,Y) = (q3, Y, D)

(q3,B) = (q4, B, D)

Sea T = {q4] (es decir el estado final)

Sea = 100

q00011 ├ Xq111 ├ X0q111 ├ Xq20Y1

├ q2XoY1 ├ Xq00Y1 ├ XXq1Y1

├ XXYq11 ├ XXq2YY ├ Xq2XYY

├ XXq0YY ├ XXYq3Y

├ XXYYq3B ├ XXYYBq4B

En el simulador JFLAP la R (Right) es igual a simular D (derecha) y la L (Left) es igual a

simular I (izquierda)

La MT para por que quedó en un estado de aceptación y la cadena es reconocida.

Page 115: 301405 Automatas y Lenguajes Formales 2013-II

115

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 15: Recursos web para MT

DESCRIPCIÓN DE VIDEO

CANAL

CANAL

Construcción de Máquinas de Turing (MT). Parte 1 de 2.

http://youtu.be/Sg3Q2Qm3IL0 http://www.veoh.com/watch/v61738230cQreJHP3

Construcción de Máquinas de Turing (MT). Parte 2 de 2.

http://youtu.be/lb7h724tlFg http://www.veoh.com/watch/v61738916pmGbXGyk

Fuente:<El autor>

LECCIÓN 33. DIFERENCIAS ENTRE LAS COMPUTADORAS Y LAS MÁQUINAS DE TURING Aparte de la capacidad de memoria, las diferencias entre una MT y una

computadora de estructura Von Neuman son:

En cuanto a estados: En una MT el nº de estados depende del algoritmo. En una

computadora, un estado viene representado por el contenido de la memoria, y una

situación por un estado y un puntero a una dirección (la que contiene a la instrucción que

va a ejecutarse). La ejecución de la instrucción pasa a la máquina a otro estado y la

variable de enlace adopta otro argumento (la dirección siguiente si la instrucción no era de

bifurcación y la máquina es secuencial natural).

En cuanto a memoria: En una MT la memoria es la cinta de E/S más el "soporte físico"

de los estados de la Unidad de Control (UC). En una MT es la secuencia de quíntuplas

que hay que seguir para hacer el cálculo. El mismo algoritmo, expresado en lenguaje-

máquina "tipo" para una computadora "tipo", o sea, programa en lenguaje máquina,

es algo distinto que la secuencia de quíntuplas. Y se debe a la marcada

diferencia entre n-upla e instrucción. Para formalizar el concepto de programa en

lenguaje máquina no es, pues, buen modelo una MT.

En cuanto al orden de ejecución de las instrucciones: En la estructura Von Neumann

el secuenciamiento lo marca el orden de colocación de las instrucciones en la memoria

interna y viene asegurado por el contador de programa. En una MT el orden de ejecución

lo marca en todo instante el estado de la máquina y el carácter de la cinta apuntado, que

son los dos datos que determinan la quíntupla que ha de ser ejecutada.

Page 116: 301405 Automatas y Lenguajes Formales 2013-II

116

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 34. LA MAQUINA UNIVERSAL DE TURING.

Hasta aquí hemos considerado cada esquema funcional asociado a su MT propia. Pero

es posible concebir una M T capaz de ejecutar cualquier algoritmo; es decir capaz de

realizar los cálculos que realizaría cualquier otra MT, o sea, capaz de simular (tener el

mismo comportamiento) cualquier MT particular.

Esta máquina Universal no debe ser diseñada para realizar un cálculo específico, sino

para procesar cualquier información (realizar cualquier cálculo específico -MT particular-

sobre cualquier configuración inicial de entrada correcta para esa MT particular).

El principio fundamental de los computadores de propósito general es que no se cablea

un computador para cada problema que se desea resolver, sino que se cablea un único

computador capaz de interpretar programas escritos en algún lenguaje. Ese lenguaje

tiene su propio modelo de funcionamiento y el computador simula lo que haría ese

programa en una cierta entrada. Tanto el programa como la entrada conviven en la

memoria. El programa tiene su propio alfabeto (caracteres ASCII, por ejemplo) y manipula

elementos de un cierto tipo de datos (incluyendo por ejemplo números enteros), los que el

computador codifica en su propio lenguaje (bits), en el cual también queda expresada la

salida que después el usuario interpretara en términos de los tipos de datos de su

lenguaje de programación. El computador debe tener, en su propio cableado, suficiente

poder para simular cualquier programa escrito en ese lenguaje de programación, por

ejemplo no podría simular un programa en Java si no tuviera una instrucción Goto o

similar.

Resultaría sumamente tener un modelo similar para MTs. En particular, elegimos las MTs

como nuestro modelo de máquina \ cableada" y a la vez como nuestro modelo de

lenguaje de programación. La Máquina Universal de Turing (MUT) recibirá dos entradas:

una MT M y una entrada , codificadas de alguna forma, y simulará el funcionamiento de

M sobre . La simulación se detendrá, se colgará, o correrá para siempre según M lo

haga con En caso de terminar, dejará en la cinta la codificación de lo que M dejaría en

la cinta frente a .15

15

NAVARRO, A: Fundamentos de la ciencia de la computación. 178 p.

Page 117: 301405 Automatas y Lenguajes Formales 2013-II

117

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 35. LENGUAJES ACEPTADOS POR LA MAQUINA DE TURING.

El lenguaje aceptado o reconocido por una Máquina de Turing (MT), que se denota como

L(MT), es el conjunto de palabras formadas con el alfabeto ∑*, que hace que la maquina

de Turing se detenga al alcanzar un estado final.

En un principio la cabeza de la máquina de Turing está situada a la izquierda de la cadena

a reconocer, y su estado es el estado inicial q0.

Una cadena de entrada es aceptada por una MT M si el cómputo que se indica la

configuración inicial q0 termina en una configuración instantánea 1p 2, p es un

estado de aceptación, en la cual M se detiene completamente. El lenguaje L(M) aceptado

por una MT M se define como:

L(M) = { ∑ : q0 ├* 1p 2, p }

M se para en 1p 2 Si la cadena de entrada en una maquina M pertenece a L(M), la

maquina M siempre se detiene.

Los lenguajes formales que son aceptados por una máquina de Turing son exactamente

aquellos que pueden ser generados por una gramática formal. El cálculo Lambda es una

forma de definir funciones. Las funciones que pueden se computadas con el cálculo

Lambda son exactamente aquellas que pueden ser computadas con una máquina de

Turing. Estos tres formalismos, las máquinas de Turing, los lenguajes formales y el

cálculo Lambda son formalismos muy disímiles y fueron desarrollados por diferentes

personas. Sin embargo, ellos son todos equivalentes y tienen el mismo poder de

expresión. Generalmente se toma esta notable coincidencia como evidencia de que la

tesis de Church-Turing es cierta, que la afirmación de que la noción intuitiva de algoritmo

o procedimiento efectivo de cómputo corresponde a la noción de cómputo en una

máquina de Turing.

Los computadores electrónicos, basados en la arquitectura Von Neumann así como las

máquinas cuánticas tendrían exactamente el mismo poder de expresión que el de una

máquina de Turing si dispusieran de recursos ilimitados de tiempo y espacio. Como

consecuencia, los lenguajes de programación tienen a lo sumo el mismo poder de

expresión que el de los programas para una máquina de Turing y en la práctica no todos

Page 118: 301405 Automatas y Lenguajes Formales 2013-II

118

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

lo alcanzan. Los lenguajes con poder de expresión equivalente al de una máquina de

Turing se denominan Turing completos.

Gramáticas estructuradas por frases:

Parte izquierda de las reglas: combinación de símbolos terminales y

no terminales, con al menos un no terminal.

Parte derecha de las reglas: combinación de símbolos terminales y no terminales

de cualquier longitud (incluso 0).

Las máquinas de Turing aceptan lenguajes estructurados por frases.

Configuración de una máquina de Turing:

Contenido de la cinta: entre corchetes. A la izquierda del símbolo actual se incluye el estado. Aceptación: secuencia de configuraciones de la máquina que empieza con

]∆Y∆] y termina con [h∆ ∆[i

Teorema: Todo lenguaje estructurado por frases es aceptado por una máquina de Turing.

Para cada gramática G existe una máquina de Turing no determinista M de 2 cintas que

aceptas el lenguaje generado por G.

Construcción de la máquina:

1. Se copia la cadena de entrada en la primera cinta.

2. Se escribe S (símbolo inicial) en la cinta 2.

3. Se aplican las reglas de reescritura de forma no determinista a la cadena de la cinta 2.

4. Si la cinta 2 contiene sólo símbolos terminales, se compara con la cadena de la cinta

1. Si son iguales, el proceso ha terminado. Si no, provocar una terminación anormal.

Las máquinas de Turing originan las siguientes clases de lenguajes:

L es recursivamente enumerable (RE) si existe una MT M tal que L(M) = L

Sea M una máquina de Turing; se dice que L=L(M) es un lenguaje recursivamente

enumerable si:

,Lx M se DETIENE en q

,Lx M se DETIENE en q o bien NO se DETIENE,

Page 119: 301405 Automatas y Lenguajes Formales 2013-II

119

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

L es un lenguaje recursivo si existe una MT M tal que L(M) = L y M se DETIENE con todas

las cadenas de entrada.

Se dice que L es un lenguaje recursivo si existe al menos una MT M tal que L = L(M) y

,Lx M se DETIENE en q

,Lx M se DETIENE en q

Todo lenguaje recursivo es recursivamente enumerable, pero la afirmación reciproca no

es (en general) válida.

CAPITULO 8: MAQUINAS DE TURING Y COMPUTACIÓN.

LECCIÓN 36. TESIS DE CHURCH /TURING.

La Teoría de la Computabilidad se ocupa de dividir el universo de todos los lenguajes

sobre ∑ , en aquellos lenguajes que pueden ser reconocidos por algoritmos efectivos y los

que no. Ello conduce a las funciones no computables, es decir, a los problemas no

resolubles.

La Teoría de la Computabilidad está compuesta por los siguientes niveles:

Primer nivel: divide los problemas en tres clases:

Primer tipo: Problemas imposibles, no tienen solución. Segundo tipo: Problemas ejecutables solo si disponemos de recursos ilimitados. Tercer tipo: Problemas que se pueden ejecutarse sin necesidad de recursos ilimitados

Segundo nivel: se clasifican en función del tiempo que tardan en ejecutarse. Se conocen

con el nombre de problemas indecidibles, impracticables o solucionables.

Tercer nivel: comprende aquellos problemas que por ejemplo requiere un tiempo

linealmente proporcional a su tamaño.

PRINCIPIO DE CHURCH-TURING:

Todo proceso físico puede ser simulado por un dispositivo universal de computación."

Page 120: 301405 Automatas y Lenguajes Formales 2013-II

120

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

ENUNCIADOS: CHURCH

"La clase de las funciones que pueden ser calculadas mediante un algoritmo

coincide con la clase de las funciones recursivas." (Tesis de Church).

Apoyado en esta tesis junto a la definición de función definible, encontró varios ejemplos

de problemas cuya resolución era irresoluble llegando a manifestar que el

„Entscheidungsproblem‟ era uno de estos problemas

"Una función ƒ es recursiva si y sólo si ƒ es total y efectivamente computable. Una

función ƒ es parcialmente recursiva si y sólo si ƒ es efectivamente computable."

Es decir, una función de enteros positivos es efectivamente calculable sólo si es

recursiva

ENUNCIADOS: TURING

"Una función ƒ es efectivamente computable si y sólo si la función ƒ es Turing-

computable."

Es decir, si una función es computable entonces puede ser computada por una

máquina de Turing.

El objetivo de Turing era el de enfrentarse al problema planteado por Hilbert (el

Entscheidumgsproblem) utilizando para ello el concepto abstracto de una máquina, una

máquina teórica.

Turing describía en su artículo que a través de su máquina había conseguido caracterizar

de un modo matemático el número de funciones calculables, usando para ello un

algoritmo, este hecho se conoce como:

La clase de las funciones que pueden ser calculadas mediante un método definido

coincide con la clase de las funciones calculables mediante una Máquina de Turing.

CHURCH Y TURING

"Todos los modelos computacionales efectivos son equivalentes a una máquina de

Turing

Page 121: 301405 Automatas y Lenguajes Formales 2013-II

121

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

"Todo lo que es computable por un humano es computable por una máquina de

Turing"

"Toda función que pueda ser considerada naturalmente como computable, puede

ser computada por una máquina de Turing

TESIS FÍSICA DE CHURCH-TURING

"Toda función que pueda ser físicamente computable, puede ser computada por

una máquina de Turing"

ORIGEN

El origen de la tesis de Church-Turing se encuentra en el hecho de que Turing

deseaba demostrar que el problema de la decisión (Entscheidungsproblem), para

el cálculo de predicados, carecía de solución, es decir, era insoluble.

Se usa la palabra "tesis" en lugar de "teorema" ya que el concepto de ser

computable es algo informal, sin embargo que el concepto de máquina de Turing

es formal y preciso.

Aquí nos encontramos con un gran problema, puesto que la idea de la Máquina de

Turing no es equivalente a cada una de las definiciones de "computabilidad"

existentes.

TESIS EXTENDIDA DE CHURCH-TURING

"La máquina de Turing es tan eficiente como cualquier dispositivo de computar. Es

decir, si una función es calculable por un dispositivo hardware en tiempo para una

función de entrada de tamaño n, entonces es computable por una máquina de

Turing en tiempo para un k fijo y dependiente del problema"

ÉXITO DE LA TESIS

La tesis de Church-Turing ha sido tan exitosa que la mayoría la supone verdadera.

Los términos derivados de ella, como método efectivo y computable son

comúnmente utilizados, cuando en realidad computable se refiere a Turing-

computable, en el salto entre uno y otro se encuentra la tesis de Church, y entre

muchos otros conceptos y términos comúnmente utilizados en la teoría de la

computabilidad o funciones recursivas

Page 122: 301405 Automatas y Lenguajes Formales 2013-II

122

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 37. VARIANTES DE UNA MAQUINA DE TURING.

Hay otras definiciones de las máquinas de Turing que son equivalentes. Algunos de esos

modelos alternativos son mucho más complicados aunque todos tienen la misma potencia

computacional (o de cálculo). Muchas de ellas dotan de mayor flexibilidad al diseño de

una máquina de Turing que resuelva un problema en particular.

Es posible extender el mecanismo de la MT sin alterar lo que se puede hacer con la MT

básica. Esto simplifica mucho dibujar MTs que realicen ciertas tareas, con la seguridad de

que podríamos hacerlo con MTs básicas de ser necesario. Algunas de estas extensiones

son:

MTs que usan varias cintas, MTs con varios cabezales, MTs con cinta infinita hacia

ambos lados, MTs con cinta k-dimensional, etc. De todos esos mecanismos, el más útil es

la MT con k cintas, Una MT de k cintas tiene un cabezal en cada cinta. En cada paso, lee

simultáneamente los k caracteres bajo los cabezales, y toma una decisión basada en la k-

upla. Esta consiste de pasar a un nuevo estado y realizar una acción en cada cinta.

Su comportamiento y propiedades son:

La máquina dispone de tantos cabezales independientes como cintas

Una cinta (la primera) contiene la entrada. Las demás están en blanco

Cada movimiento viene determinado por el estado y por los símbolos leídos por

los distintos cabezales:

Cambiando de estado

Sustituyendo los símbolos en las cintas accedidas

Desplazando (L;R) o no (S) la posición del cabezal de cada cinta (nueva opción)

Teorema: Un lenguaje L es reconocido por una máquina de Turing multicinta si y solo si L

es reconocido por una máquina de Turing estándar.

Esta máquina multicinta se formaliza así: (K, ∑, , , q0, B, F)

Máquina no determinista: Máquina de Turing con una única cinta y control finito único.

Teorema: Un lenguaje L es reconocido por una máquina de Turing no determinista si y

solo si L es reconocido por una máquina de Turing estándar.

Page 123: 301405 Automatas y Lenguajes Formales 2013-II

123

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

Máquina multicabezal: Un único movimiento permite desplazar independientemente las

n cabezas de la máquina sobre la única cinta.

Máquina de Turing de Cinta infinita en una Dirección: Máquina de Turing que usa una

cinta que se extiende infinitamente en una única dirección. Generalmente, se tiene una

cinta que se extiende infinitamente hacia la derecha. No está permitido realizar ningún

movimiento hacia la izquierda a partir de la celda del extremo izquierdo. Desde luego,

cualquier máquina de Turing de esta forma puede ser simulada por una de las que

responden a la definición original. Para cada computación, simplemente se marca una de

las celdas de la cinta infinita por los dos lados, como la celda que se encuentra en el límite

izquierdo.

Máquina de Turing en Dos Direcciones: Una máquina de Turing con una cinta infinita

en un sentido puede simular una máquina de Turing con la cinta infinita en los dos

sentidos pero con dos pistas. Sea M una máquina de Turing con una cinta infinita en los

dos sentidos. La máquina de Turing M‟, que tiene una cinta infinita en un sentido, puede

simular a M si tiene una cinta con dos pistas. La cinta superior contiene la información

correspondiente a la parte derecha de la cinta M, a partir de un punto de referencia dado.

La pista inferior contiene la parte izquierda de la cinta M (en orden inverso).

LECCIÓN 38. PROBLEMAS DE HILBERT. En 1928 durante un congreso internacional D. Hilbert planteó las siguientes cuestiones:

¿Las matemáticas son 'completas', esto es, cada afirmación matemática se puede

probar?

¿Las matemáticas son 'consistentes', esto es, es posible probar paralelamente una

afirmación y su negación?

¿Las matemáticas son 'decidibles', esto es, se puede encontrar un método definido

aplicable a cualquier afirmación matemática, que nos de cómo resultado si es o no cierta

la aseveración evaluada?

Page 124: 301405 Automatas y Lenguajes Formales 2013-II

124

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 intención de Hilbert era conseguir un modelo matemático formal, completo y

consistente, en el que a través de un algoritmo, se pudiese determinar la veracidad o

falsedad de cualquier proposición formal. Este problema recibió el nombre de

“Entscheidungsproblem”, resolverlo significaría que para cualquier problema bien definido

existiría un algoritmo capaz de resolverlo.

Los problemas de Hilbert son una lista de 23 problemas matemáticos compilados por el

matemático alemán David Hilbert para la conferencia en París del Congreso Internacional

de Matemáticos de 1900. Los problemas estaban todos por resolver en aquel momento, y

varios resultaron ser muy influyentes en la matemática del siglo XX. Hilbert presentó diez

de los problemas (1, 2, 6, 7, 8, 13, 16, 19, 21 y 22) en la conferencia, en un acto el 8 de

agosto en La Sorbona.

Naturaleza e influencia de los problemas:

Aunque se han producido intentos de repetir el éxito de la lista de Hilbert, ningún otro

conjunto tan variado de problemas o conjeturas ha tenido un efecto comparable en el

desarrollo del tema y obtenido una fracción importante de su celebridad. Por ejemplo, las

conjeturas de Weil son famosas pero fueron poco publicitadas. Quizá el propio

temperamento de André Weil evitó que intentase ponerse en posición de competir con

Hilbert. John von Neumann produjo una lista, pero no obtuvo reconocimiento universal.

A primera vista, este éxito podría atribuirse a la eminencia del autor de los problemas.

Hilbert estaba en la cúspide de su poder y reputación en aquel momento y continuó

dirigiendo la sobresaliente escuela de matemática en la Universidad de Göttingen. Un

examen más cuidadoso revela que el asunto no es tan simple.

La matemática de aquel tiempo era aún discursiva: la tendencia a sustituir palabras por

símbolos y apelaciones a la intuición y conceptos mediante axiomática pura seguía

subyugada, aunque se volvería fuerte durante la siguiente generación. En 1900, Hilbert no

pudo acudir a la teoría axiomática de conjuntos, la integral de Lebesgue, los espacios

topológicos o la tesis de Church, que cambiarían sus respectivos campos de forma

permanente. el análisis funcional, fundado en cierto modo por el propio Hilbert como

noción central de los testigos del espacio de Hilbert, no se había diferenciado aún del

cálculo de variaciones; hay en la lista dos problemas de matemática variacional, pero

nada, como podría asumirse inocentemente, sobre teoría espectral (el problema 19 tiene

una conexión con la hipoelipticidad).

La lista no fue predictiva en ese sentido: no consiguió plasmar o anticipar el fulgurante

ascenso que experimentarían la topología, la teoría de grupos y la teoría de la medida en

Page 125: 301405 Automatas y Lenguajes Formales 2013-II

125

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 siglo XX, así como no previó la manera en que iba a avanzar la lógica matemática. Por

tanto, su valor documental es el de ensayo: una visión parcial, personal. Sugiere algunos

programas de investigación y algunas direcciones a seguir sin fin concreto.

De hecho, muchas de las preguntas daban una falsa idea del matemático profesional del

siglo XXI, o incluso de 1950, en que la forma de una solución a una buena pregunta

tomaría la forma de un artículo publicado en una publicación matemática. Si este fuera el

caso de todos los veintitrés problemas, se hubiera simplificado el comentario hasta el

punto de poder dar una referencia a una revista, o considera la pregunta como abierta

todavía. En algunos casos el lenguaje usado por Hilbert se sigue considerando un tanto

"negociable", en cuanto al significado real de la formulación del problema (en ausencia,

repetimos, de fundamentos axiomáticos, basados en matemática pura, empezando con el

propio trabajo de Hilbert sobre geometría euclidiana, pasando por el Principia

Mathematica, y terminando con el grupo Bourbaki y el "terrorismo intelectual" para

terminar el trabajo). Los problemas Primero y Quinto se encuentran, quizá

sorprendentemente, en un estado de formulación de una claridad menos que total

(véanse las notas). En casos como el Vigésimo, el problema se podría leer de forma

razonable en una versión "interna", relativamente accesible, en la que el lector puede

saber a qué estaba apuntando Hilbert; o como una penumbra "externa" y especulativa.

Dicho todo esto, por tanto, la razón más importante es la gran rapidez con la que aceptó

la lista de Hilbert la comunidad matemática de aquel momento (lo cual es una fórmula

menos convencional que ahora, ya que por entonces habían pocos líderes investigadores,

que generalmente se encontraban en unos pocos países Europeos y se conocían todos

entre ellos). Los problemas se estudiaron con gran atención; resolver uno labró

reputaciones.

El estilo fue al menos tan influyente como el contenido de los problemas. Hilbert solicitaba

clarificaciones. Pidió soluciones en principio a preguntas algorítmicas, no a algoritmos

prácticos. Pidió un fortalecimiento de los cimientos de partes de la matemática que a los

no practicantes aún se antojaban guiadas por intuiciones opacas (el cálculo de Schubert y

la geometría enumerativa).

Estas actitudes fueron adoptadas por muchos seguidores, aunque también fueron

discutidas, y continúan siéndolo. Treinta años después, Hilbert había endurecido su

postura: véase ignorabimus.

Los veintitrés problemas de Hilbert son:

Problema 1. La hipótesis del continuo (esto es, no existe conjunto cuyo tamaño esté

estrictamente entre el de los enteros y el de los números reales) Se ha probado la

Page 126: 301405 Automatas y Lenguajes Formales 2013-II

126

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

imposibilidad de probarlo como cierto o falso mediante los axiomas de Zermelo-Fraenkel.

No hay consenso al respecto de considerar esto como solución al problema.

Problema 2. Probar que los axiomas de la aritmética son consistentes (esto es, que la

aritmética es un sistema formal que no supone una contradicción). Parcialmente resuelto:

hay quienes sostienen que se ha demostrado imposible de establecer en un sistema

consistente, finitista y axiomático Sin embargo, Gentzen probó en 1936 que la

consistencia de la aritmética se deriva del buen fundamento del ordinal ε0, un hecho

sujeto a la intuición combinatoria.

Problema 3. ¿Se puede probar que dos tetraedros tienen igual volumen (bajo ciertas

asunciones)? Resuelto. Resultado: no, probado usando invariantes de Dehn

Problema 4. Construir todas las métricas cuyas rectas sean geodésicas. Demasiado

vago para decidir si se ha resuelto o no.

Problema 5. ¿Son los grupos continuos grupos diferenciales de forma automática?.

Resuelto por Andrew Gleason

Problema 6. Axiomatizar toda la física. Sin resolver. No matemático

Problema 7. ¿Es a b trascendental, siendo a ≠ 0,1 algebraico y b irracional algebraico?.

Resuelto. Resultado: sí, ilustrado por el teorema de Gelfond o el teorema de Gelfond-

Schneider

Problema 8. La hipótesis de Riemann (la parte real de cualquier cero no trivial de la

función zeta de Riemann es ½) y la conjetura de Goldbach (cada número par mayor que 2

se puede escribir como la suma de dos números primos). Abierto

Problema 9. Encontrar la ley más general del teorema de reciprocidad en cualquier

cuerpo numérico algebraico. Parcialmente resuelto

Problema 10. Encontrar un algoritmo que determine si una ecuación diofántica polinómica

dada con coeficientes enteros tiene solución entera. Resuelto. Resultado: no, el teorema

de Matiyasevich implica que no existe tal algoritmo.

Problema 11. Resolver las formas cuadráticas con coeficientes numéricos algebraicos.

Parcialmente resuelto

Problema 12. Extender el teorema de Kronecker sobre extensiones abelianas de los

números racionales a cualquier cuerpo numérico de base. Abierto

Page 127: 301405 Automatas y Lenguajes Formales 2013-II

127

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 13. Resolver todas las ecuaciones de 7º grado usando funciones de dos

parámetros. Resuelto. Lo probó posible Vladimir Arnold.

Problema 14. Probar la finitud de ciertos sistemas completos de funciones. Resuelto.

Resultado: no, en general, debido a un contraejemplo

Problema 15. Fundamento riguroso del cálculo enumerativo de Schubert. Parcialmente

resuelto

Problema 16. Topología de las curvas y superficies algebraicas. Abierto

Problema 17. Expresión de una función definida racional como cociente de sumas de

cuadrados. Resuelto. Resultado: se estableció un límite superior para el número de

términos cuadrados necesarios

Problema 18. ¿Existe un poliedro irregular y que construya otros poliedros? ¿Cuál es el

apilamiento compacto más denso?. Resuelto.

Problema 19. ¿Son siempre analíticas las soluciones de los Lagrangianos? Resuelto.

Resultado: sí

Problema 20. ¿Tienen solución todos los problemas variacionales con ciertas condiciones

de contorno?. Resuelto. Ha supuesto un área importante de investigación durante el siglo

XX, culminando con las soluciones al caso no lineal.

Problema 21. Probar la existencia de ecuaciones lineales diferenciales que tengan un

grupo monodrómico prescrito Resuelto. Resultado: sí o no, dependiendo de una

formulación más exacta del problema.

Problema 22. Uniformización de las relaciones analíticas por medio de funciones

automórficas. Resuelto

Problema 23. Extensión de los métodos del cálculo de variaciones Resuelto

LECCIÓN 39. PROBLEMAS INSOLUBLES PARA LA TEORÍA DE LENGUAJES

Problemas de decisión: Un problema de decisión (PD) es aquel formulado por una

pregunta (referida a alguna propiedad) que requiere una respuesta de tipo “si/no”.

Problemas de decisión.

Page 128: 301405 Automatas y Lenguajes Formales 2013-II

128

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

Un problema de decisión es:

Soluble si existe un algoritmo total para determinar si la propiedad es verdadera

(Existe una MT que siempre para al resolver el problema).

Parcialmente soluble si existe un algoritmo parcial para determinar si la

propiedad es verdadera (existe una MT que resuelve el problema, pero puede no

parar).

Insoluble si no existe un procedimiento efectivo para determinar si la propiedad es

verdadera (no existe una MT).

Ejemplos de problemas de decisión:

• ¿Existe un algoritmo para decidir si un número natural cualquiera es par?

Si es soluble.

• ¿Existe un algoritmo para decidir si dos autómatas finitos cualesquiera son

equivalentes?

Si es un problema soluble.

• ¿Existe un algoritmo para determinar si una gramática es ambigua o no?

No es insoluble.

CAPITULO 9. FUNCIONES RECURSIVAS

LECCIÓN 40. LENGUAJES DECIDIBLES Un lenguaje decidible es aquel lenguaje L para el cual existe una máquina de Turing que

le puede aceptar cualquier cadena { L}.

Hay lenguajes formados por cadenas tales que una máquina de Turing logra un estado

final con las cadenas que reconoce y acepta, solamente. En este caso se dice que la

máquina de Turing semidecide al lenguaje. Los lenguajes semidecididos por una MT se

llaman recursivos numerables. Las gramáticas sin restricciones son las que generan los

lenguajes recursivos numerables. De aquí en adelante será suficiente referirse a los

lenguajes recursivos numerables, pues estos generalizan a los lenguajes recursivos, los

Page 129: 301405 Automatas y Lenguajes Formales 2013-II

129

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

cuales generalizan a los lenguajes libres de contexto, y estos a los lenguajes regulares.

Lo anterior tiene relación directa con que los autómatas de Turing generalizan a los de la

pila y estos a su vez a los autómatas finitos. Por otro lado, pese a que lenguajes formales

más generales que los recursivos numerables no son reconocidos por un autómata de

Turing, no existe hasta el momento ningún autómata más poderoso capaz de

reconocerlos

En términos de procedimientos, las cadenas de un lenguaje decidible corresponden a

procedimientos que terminan, ya sea realizando lo que indica la palabra o señalando que

no tienen la capacidad de realizarlo. Para un lenguaje semidecidible, las cadenas

decididas por la MT son instrucciones realizadas por la MT. De manera complementaria,

las cadenas no decidibles por la MT corresponden a procedimientos que no terminan

utilizando una máquina de Turing. A partir de lo dicho aquí tenemos la definición de

algoritmo:

• Un algoritmo es una implementación de una máquina de Turing tal que el

conjunto de sus entradas es el lenguaje decidible.

Es decir, si un dado un conjunto de entradas bajo las cuales una MT logra un estado de

parada para cada entrada, la maquina corresponde a la implementación de un algoritmo.

Esta es la Tesis de Church – Turing. No es un teorema pues no se puede demostrar

matemáticamente, de manera general y categórica. Es solo la afirmación de que el

concepto informal del algoritmo corresponde a un objeto matemático. Al ser solo una

afirmación no demostrable, puede suceder que luego fuera refudada. Para que esto

ocurra, se necesitaría encontrar un autómata más potente que uno de Turing tal que fuese

la implementación de un algoritmo. Si bien hay algunas propuestas interesantes que

pretende generalizar a la MT, hasta la fecha ninguna de ellas ha sido aceptada para

sustituir nuestro actual concepto de procedimiento comprable.

Por otro lado, mientras que los lenguajes computables son una infinidad numerable, los

lenguajes no computables son una infinidad no numerable. Por ello, son más los

lenguajes no computables o indecidibles. Una teoría lógica (TL) se define a partir de un

conjunto de enunciados dados llamados axiomas, unas reglas de inferencia y un esquema

de derivación. A partir de los axiomas y aplicando la regla de inferencia y el esquema de

derivación se infieren los teoremas de la teoría. El conjunto de teoremas de la teoría

forma un lenguaje formal.

Si es posible definir una máquina de Turing tal que reconozca al lenguaje de los

teoremas, este lenguaje es decidible y la teoría también lo es en consecuencia. Dicho en

otras palabras, si el conjunto de teoremas visto como un lenguaje es reconocido por una

máquina de Turing, entonces la TL es decidible. Y viceversa. Puede hablarse entonces de

Page 130: 301405 Automatas y Lenguajes Formales 2013-II

130

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

manera indistinta de teorías lógicas o de lenguajes decididles, como aquellos para los que

existe una máquina de Turing capaz de reconocerlos. Luego la correspondencia entre la

sintaxis de una teoría lógica (lenguaje formal) y reconocimiento simbólico del mismo por

parte de un autómata queda establecida.

LECCIÓN 41. PROBLEMAS DE HALTING

El problema de “Halting” es el primer problema indecidible mediante máquinas de Turing.

Equivale a construir un programa que te diga si un problema de ordenador finaliza alguna

vez o no (entrando a un bucle infinito, por ejemplo)

Básicamente, Turing definió las bases de las computadoras modernas y planteo un

problema sobre ellas, llegando a la conclusión de que no hay ningún algoritmo que lo

resuelva. Es el problema de la detención (Halting problem); el problema de saber si un

problema se cuelga cuando corre en la computadora. Turing demostró que el problema de

la detención es indicidible, es decir, demostró que había problemas que una maquina no

podía resolver.

Es meritorio el hecho que gracias a la equivalencias de máquinas de Turing y

computadoras, se haya determinado que existen cálculos que no pueden ser detenidos en

un tiempo razonable en ninguna computadora imaginable, o incluso, que no puede

resolverse en lo absoluto, por ejemplo el problema de correspondencia de Post o el

problema de predecir si una máquina de Turing cualquiera va a llegar a un estado final

(conocido como el problema de Halting en inglés, o problema de la parada). Por todo esto

el problema de Halting es un diagnostico que indica que un problema de decisión no es

decidible.

El problema de la parada o problema de la detención para máquinas de Turing es el

ejemplo de problema irresoluble más conocido. Consiste en determinar si una máquina de

Turing se detendrá con cierta entrada, o bien quedará en un ciclo infinito. Este fue el

primer problema que se demostró formalmente que no tenía solución.

El concepto de problema indecidible o irresoluble se aplica a problemas de decisión, es

decir, problemas a los que podemos decir si tienen solución o no. Dentro de estos

problemas, existe un conjunto al que no le podemos asignar una respuesta, ni afirmativa

ni negativa: no existe un algoritmo que nos permita determinar si el problema tiene

solución.

Page 131: 301405 Automatas y Lenguajes Formales 2013-II

131

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 de las razones por la que es importante conocer que el problema de la parada no

tiene solución, es que nos permite decidir si otros problemas son resolubles o no. El

razonamiento a seguir sería: si suponiendo que un problema es decidible, podemos

demostrar que el problema de la parada tiene solución, entonces podemos llegar a la

conclusión de que el problema en cuestión no la tiene, por reducción al absurdo.

Definición:

Sea M una máquina de Turing arbitraria con un alfabeto de entrada Σ. ¿Puede decidirse si

la máquina M se detendrá con la entrada ?

Solución:

La respuesta a esta pregunta es negativa. No se puede determinar si una máquina de

Turing se detiene con una entrada arbitraria.

LECCIÓN 42. DECIBILIDAD DE TEORÍAS LÓGICAS Decibilidad de las teorías lógicas. El desarrollo de la teoría de la computabilidad ha ido

íntimamente ligado al desarrollo de la lógica matemática. Esto ha sido así porque la

decibilidad de los distintos sistemas lógicos es una cuestión fundamental. Es bastante

fácil ver que el cálculo proposicional es decidible. Church y Turing demostraron en 1936

que el cálculo de predicados no era decidible. Por otro lado, para cada una de las distintas

teorías se ha ido estudiando su posible decibilidad. Como ejemplo más ilustrativo, Tarski

demostró que la teoría de los números reales era decidible.

Por otro lado, son muchos los problemas interesantes que se han demostrado

computables. Todas las funciones construidas por recursividad primitiva o minimalización

a partir de funciones calculables resultan ser calculables como consecuencia de los

trabajos de Church y Turing. Pero además, otras funciones más complejamente definidas

también son computables, siendo el resultado más significativo en relación con esta

cuestión el dado por el siguiente teorema:

Primer teorema de Recursión. Todo operador entre funciones calculables que sea

recursivo (esto es que se defina la imagen de f mediante una función calculable en

términos de una parte finita de f), tiene una función parcial computable que es el menor

punto fijo, es decir, esta función es un punto fijo y cualquier otro punto fijo del operador es

una extensión de esa función.

Page 132: 301405 Automatas y Lenguajes Formales 2013-II

132

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

Este teorema recibe su nombre porque podemos definir una función mediante una

ecuación recursiva más general que la permitida por la recursividad primitiva, a saber

dónde es un operador recursivo. El primer teorema de recursión nos dice que esta

definición es posible; hay una función recursiva que satisface esta ecuación. Como en

matemáticas se requiere que la definición sea unívoca, se dice que dicha ecuación define

el menor punto fijo del operador. Así, y de acuerdo al primer teorema de recursión, la

clase de las funciones calculables es cerrada bajo una muy general forma de definición

por recursión.

A menudo se utiliza la técnica de reducir un problema a otro para comprobar si tiene o no

solución efectiva. La estrategia en el caso de la respuesta negativa es la siguiente, si se

reduce de forma efectiva un problema sin solución efectiva a otro problema (mediante una

función calculable), entonces este nuevo problema tampoco tendrá solución efectiva. La

razón es muy simple, si tuviese solución efectiva, componiendo el algoritmo solución con

el algoritmo de transformación obtendríamos una solución para el problema efectivamente

irresoluble. En sentido inverso, si se reduce un problema a otro para el que se conoce una

solución efectiva, entonces componiendo se obtiene una solución para el primer

problema. Esta técnica es muy útil y se utiliza a menudo. Por otro lado, esta misma

técnica es muy empleada en el campo de la complejidad algorítmica. Para asegurarse de

que un problema está en una clase de complejidad, basta reducir el problema a otro de

dicha clase sin más que asegurarse que la reducción se realiza en la correspondiente

clase de complejidad.

FUNCIONES COMPUTABLES:

Las llamadas máquinas de Turing no constituyen ni el primero ni el único formalismo para

expresar cómputos, pero sí el que más ha perdurado.

Su creador, el matemático inglés Alan Turing (1912-1954) estaba convencido de que no

existía un algoritmo para el problema de decisión planteado por Hilbert y su intención era

demostrar dicha no existencia.

El modelo en el que se inspiró fue el de una persona real llevando a cabo un cálculo

mecánico, por ejemplo una multiplicación de dos grandes números en el sistema decimal.

Las funciones computables son usadas para discutir computabilidad sin referirse a ningún

modelo de computación concreto, como el de la máquina de Turing o el de la máquina de

registros.

Según la Tesis de Church-Turing, la clase de funciones computables es equivalente a la

clase de funciones definidas por funciones recursivas, cálculo lambda, o algoritmos de

Markov.

Page 133: 301405 Automatas y Lenguajes Formales 2013-II

133

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

Alternativamente se pueden definir como los algoritmos que pueden ser calculados por

una máquina de Turing, una máquina de Post, o una máquina de registros.

En teoría de la complejidad computacional, el problema de determinar la complejidad de

una función computable esta conocido como un problema de funciones.

LECCIÓN 43. REDUCIBILIDAD DE TURING

La reducibilidad ha permitido llegar a determinar la indecibilidad en algunos problemas

computacionales: Una manera más simple de determinar la indecibilidad es utilizando el

método de reducción, el cual está implícito en nuestra manera de pensar a la hora de

solucionar ciertos problemas: dado un problema P1, este se reduce a solucionar P2. Es

decir, si solucionamos P2, tenemos solucionado P1. De esta manera hemos convertido un

problema en otro.

Ejemplo:57 Se presenta un ejemplo que explica la solución de estos problemas

“indecidibles” mediante “Reducibilidad”:

Se cita un ejemplo:

P1.- Hay hambre en el mundo.

P2.- Hay que redistribuir parte de la riqueza

El problema del hambre en el mundo se reduce a redistribuir riqueza. P2 es un problema

mucho más general, pues además de solucionar el hambre también solucionaría otros

más.

Hay que hacer notar que este método no hace referencia a la manera en la que se

soluciona P1 o P2, sino que determina como la solución de P2 conduce a solucionar P1.

También se puede ver que P2 es un problema más general que P1. De hecho este

método no funcionaría en el sentido inverso: siempre se reduce un problema a otro más

general.

Otro ejemplo más típico: El jefe al fin se ha decidido a dar las vacaciones, pero estamos a

30 de julio y queremos ir con la familia, que resulta que está en Australia. El problema

entonces se reduce a encontrar un billete de avión a este destino.

Page 134: 301405 Automatas y Lenguajes Formales 2013-II

134

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 términos de máquinas de Turing, dado un lenguaje L1, que define un problema, su

decisión se reduce a otro lenguaje L2 que es decidible. Para ello se debe encontrar un

algoritmo que convierta una cadena ω de L1 en otra cadena ω‟ de L2 (L2 puede tener

más cadenas aceptables, pero nos interesan las que se pueden obtener por el algoritmo

desde L1), decidiéndose entonces si ω‟ pertenece a L2.

Para demostrar la indecidibilidad de un lenguaje L, se va a utilizar la reducción ante dos

situaciones distintas:

Que P1 sea RE, el problema se reduce a otro P2 que también es RE.

Que P1 no sea RE, el problema se reduce a otro P2 que tampoco es RE.

Demostrar que un lenguaje L2 es recursivamente enumerable, se hará por

reducción al absurdo. Para ello partimos de un lenguaje L1 del que conoceremos

de antemano su no decidibilidad (normalmente se utilizarán Lu o Ld, aunque puede

ser cualquier otro del que se haya demostrado su indecidibilidad). Tenemos, en las

dos situaciones antes descritas:

Que haya que demostrar que L2 es RE. Para ello partimos de la certeza de que L1 es

RE (por ejemplo Lu) y lo reducimos a L2. Se supondrá que este último es decidible, es

decir, que se puede encontrar una MT que, siendo la entrada una cadena ω de L1, esta

se puede convertir en una cadena ω‟ de L2, y decidir si esta última pertenece a L2 o no.

Si se encuentra al algoritmo de conversión, se habrá encontrado una MT que es capaz de

reducir L1 a L2, y por tanto, la manera de decidir L1. Pero esto es una contradicción,

pues sabemos de antemano que L1 es RE, por lo que, forzosamente, L2 no puede ser

decidible. Se llega a la conclusión de que L2 también es RE.

Que haya que demostrar que L2 no es RE. Para ello partimos de la certeza de que L1 no

es RE (por ejemplo Ld) y lo reducimos a L2. Se supondrá que este último es RE, es decir,

que se puede encontrar una MT que, siendo la entrada una cadena ω de L1, esta se

puede convertir en una cadena ω‟ de L2, y aceptarla si esta última pertenece a L2. Si se

encuentra un algoritmo de conversión, se habrá encontrado una MT que es capaz de

reducir L1 a L2, y por tanto la manera de aceptar L1. Pero esto es una contradicción,

pues sabemos de antemano que L1 no es RE (ninguna MT puede aceptarlo), por lo que,

forzosamente, L2 no puede ser RE. Se llega a la conclusión de que L2 tampoco es RE.

LECCIÓN 44. APLICACIONES DE LAS MAQUINAS DE ESTADOS. ALGORITMO DE TRELLIS.

Page 135: 301405 Automatas y Lenguajes Formales 2013-II

135

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

Hemos visto como la Teoría de Autómatas, que engloba también al estudio de las

Máquinas secuenciales, tiene su origen en el campo de la Ingeniería Eléctrica. El

matemático norteamericano Shannon Claude 16(siendo lo más notable de su trabajo todo

lo referente a la Teoría de la información17, un desarrollo que fue publicado en 1948 bajo

el nombre de Una Teoría Matemática de la Comunicación), dio los primeros usos a una

máquina de estados.

Más tarde en otros trabajos destacados, 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

amplió 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 Shannon se desarrollaron

considerablemente, dando lugar a la formalización de una Teoría de las Máquinas

Secuenciales y de los Autómatas Finitos (1956). Otros trabajos importantes sobre

maquinas secuenciales son debidos a Mealy (1955) y Moore.

El artículo original disponible, que emitió Sahnnon acerca de la “Teoría Matemática de la

Comunicación” es referenciado en el paper “A Mathematical Theory of Communication18”

En la siguiente lección veremos una aplicabilidad dada a estas máquinas de estados

enfocada a resolver problemas que se presentan en la “Teoría de la información”. Uno de

ellos se da en la transmisión de datos que reside en la potencia, por lo que para mantener

una probabilidad de error mínima es necesario buscar alternativas al hecho de aumentar

el voltaje en la fuente. Una alternativa muy eficiente es la codificación (el envío de un

número de símbolos inferior a los posibles) y su posterior decodificación. Se describirán

algunos métodos para la codificación y decodificación de la información para ser

transmitida, por un canal.

ALGORITMO DE TRELLIS Y VITERBI: 19

16

<C. E. Shannon, ``A mathematical theory of communication,'' Bell System Technical Journal, vol. 27, pp.

379-423 and 623-656, July and October, 194> 17

< W. Weaver and C. E. Shannon, The Mathematical Theory of Communication, Urbana, Illinois: University

of Illinois Press, 1949, republished in paperback 1963 .> 18

Reprinted with corrections from The Bell System Technical Journal, Vol. 27, pp. 379–423, 623–656, July,

October, 1948. Disponible en internet < http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf >.

Page 136: 301405 Automatas y Lenguajes Formales 2013-II

136

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

Específicamente se presenta el estudio de los algoritmos de Trellis y Viterbi: El importante

crecimiento que ha tenido la transmisión digital de información en los últimos tiempos

puede explicarse gracias a las numerosas ventajas que posee con respecto a los métodos

analógicos. Hasta unos años, la transmisión digital de señales analógicas (voz, vídeo,

etc.) resultaba técnica y económicamente costosa. Sin embargo, “recientemente” han

sucedido hechos que originaron importantes avances en esta área de las

comunicaciones:

Las grandes mejoras en los algoritmos de compresión han perfeccionado la codificación

de señales analógicas en forma digital, reduciendo drásticamente el ancho de banda

requerido para la transmisión de señales de audio y vídeo con una calidad aceptable.

Las altas escalas de integración logradas en la construcción de circuitos integrados, así

como el desarrollo de circuitos específicos, han disminuido notablemente el costo del

procesamiento digital de señales.

El desarrollo en las técnicas de codificación ha aumentado la robustez y la confiabilidad

de las comunicaciones digitales.

APLICACIONES DEL ALGORITMO: Como resultado de estos avances, las fronteras del

mundo de las comunicaciones digitales se han expandido en todos los sentidos: (a) las

distancias entre transmisor y receptor se han incrementado considerablemente

(comunicaciones satelitales, telemetría de sondas espaciales, etc.); (b) es posible

establecer comunicaciones de buena calidad en ambientes de gran interferencia (telefonía

celular); (c) los espacios lógicos (y físicos) necesarios para almacenar la información se

han reducido radicalmente (DVD).

Entre todos los avances que han permitido este extraordinario desarrollo de las

comunicaciones, se encuentran las técnicas de codificación. Estas mejoran el

comportamiento de los sistemas de comunicaciones mediante la inclusión de redundancia

en la información a transmitir. Esta información adicional permite detectar, corregir y/o

prevenir errores en transmisiones por canales ruidosos.

Entre los métodos de protección más utilizados en la actualidad se encuentran los

codificadores convolucionales con decodificación de Viterbi (CC-DV).

19

The Viterbi Algorithm: A Personal History. Disponible en internet:

<http://arxiv.org/pdf/cs/0504020v2.pdf>

Page 137: 301405 Automatas y Lenguajes Formales 2013-II

137

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 Modulación Codificada de Trellis (Trellis coded modulation) mejor conocida por la

sigla TCM, se ha desarrollado a lo largo de las últimas cuatro décadas. Este sistema

combina las técnicas de codificación y la modulación para transmisiones digitales sobre

canales con banda limitada. Su ventaja principal, y por la que ha hecho una revolución en

las telecomunicaciones, radica en el hecho que permite una ganancia significativa de

codificación sobre las modulaciones convencionales de multinivel, sin comprometer la

eficiencia del ancho de banda.

El primer esquema de TCM fue propuesto en 1976 por Gottfried Ungerboeck. Seguido por

una publicación en la revista information theory del IEEE en el año de 1982, con la cual se

dio una revolución en las investigaciones de su teoría y métodos, además se estableció

un lugar a las posibles implementaciones de TCM.

La decodificación de Viterbi fue propuesta por Andrew Viterbi en su trabajo “Error

Bounds for Convolucional Codes and an Asymptotically Optimum Decoding Algorithm”

publicado en la IEEE Transactions on Information Theory, en Abril de 1967.

Comparado con otros esquemas de protección, CC-DV permite mejorar sustancialmente

la performance de los sistemas de comunicaciones, esto es, disminuir notablemente la

tasa de errores de bits (Bit Error Rate - BER). Obviamente, esta importante mejora es

posible gracias a un incremento de complejidad en la implementación de los

decodificadores. Sin embargo, gracias a los grandes avances en la tecnología, en la

actualidad es posible implementar CC-DV sin “ninguna” dificultad

CC-DV son utilizados en los sistemas de telefonía celular digital como es el caso del

estándar IS-95 (utilizado en nuestro medio por CTI), como así también en comunicaciones

de satélites geoestacionarios como las redes VSAT (Very Small Aperture Terminal). Las

ganancias que se logran con estos sistemas de codificación se reflejan en la reducción del

consumo de los transmisores o en la reducción del tamaño de las antenas (o simplemente

en la mejora de las tasas de transmisión).

CODIFICACION Y DECODIFICACION: El codificador del canal CC, persigue el objetivo

de lograr una veracidad dada durante la transmisión o conservación de la información,

introduciendo una redundancia adicional, con ayuda de determinados algoritmos, como

los convolucionales y Trellis; y teniendo en consideración la intensidad y las leyes

estadísticas de las transferencias en el canal de comunicación. Esta codificación recibe el

nombre de redundante.

Page 138: 301405 Automatas y Lenguajes Formales 2013-II

138

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 teoría de la codificación redundante se basa en los principios que Shannon formuló

para canales ruidosos al considerar que existe una probabilidad de error en la transmisión

de ráfagas de símbolos para cualquier velocidad, dentro de la capacidad del canal e

independientemente del tipo de información que se envié. Entonces, es indispensable

saber cuáles de los bits recibidos están errados, especialmente si se requiere una altísima

veracidad por la transmisión de datos.

Con la introducción de una cierta cantidad de símbolos redundantes dentro de una

cadena, la parte emisora permite anticiparse al ruido del canal que pueda perjudicar la

información, de este modo, en tal caso, se le brinda a la parte receptora la posibilidad de

corregir errores.

Figura 63: Modelo de un sistema de comunicaciones digitales

Fuente: <El autor. CAAT>

Después del codificador de canal CC, la señal codificada es modulada para su

transmisión, por una línea de comunicación o para su conservación, en una cierta

memoria.

Page 139: 301405 Automatas y Lenguajes Formales 2013-II

139

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 la línea de comunicación a la señal se le añaden interferencias, de esta forma al

dispositivo demodulador, llegan del canal de comunicación, señales distorsionadas por el

ruido. El dispositivo decodificador del canal y el dispositivo decodificador de fuente,

ofrecen el mensaje decodificado al destinatario. En el proceso de decodificación de canal,

son muy usados los algoritmos de Viterbi, siempre y cuando en el proceso de codificación

del canal se halla empleado los códigos convolucionales o la codificación de Trellis.

CÓDIGOS SECUENCIALES: Son códigos que representan números o letras asignados

en serie. Señalan el orden en el cual han ocurrido los hechos: por ejemplo un sistema

bancario debe ser capaz de mantener un seguimiento del orden de las transacciones, de

manera que sea claro que transacción procesar primero, cual después y así

sucesivamente; por lo tanto se debe especificar el número de secuencia en el diseño con

el propósito de ordenar las transacciones.

Los códigos secuenciales son utilizados también con el propósito de identificación, pero

se asignan en el orden en el cual los clientes entran al sistema.

Los de secuencia asignados en un orden cuidadoso no permiten inserción de nuevos

miembros entre los ya existentes, Los analistas especifican la asignación de códigos de

secuencia a intervalos de 10 / 20, o algún otro rango a fin de permitir expansiones

posteriores.

Los códigos pueden dividirse en subconjuntos o subcódigos, caracteres que son parte del

número de identificación que tienen un significado especial. Los subcódigos indican al

usuario información adicional sobre el artículo, Ejemplo La clase de producto, el

proveedor, esta información se lleva a través de dígitos significativos.

Figura 64: Código secuencial

Fuente: <El autor. CAAT>

CÓDIGOS CONVOLUCIONALES: Al problema del canal en donde se añade un ruido

aleatorio a nuestra información, que tomaremos en nuestro caso AWGN (Additive White

Gaussian Noise), necesitamos un proceso mediante el que podamos decidir qué mensaje,

de los posibles, ha sido enviado. Si no tuviésemos restricciones en potencia bastaría con

aumentar el voltaje de las señales en la fuente para tener una demodulación más fiable a

Page 140: 301405 Automatas y Lenguajes Formales 2013-II

140

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 salida, ya que la potencia de ruido no aumenta. Shannon concluyó que no hacía falta

aumentar la potencia sino disminuir el número de mensajes, enviar solo una fracción de

ellos. Los mensajes posibles son 2n en el caso de transmisión binaria (siendo n el número

de bits de la palabra codificada), lo que Shannon propone es enviar 2Rn mensajes con

R<1. De esta forma, si R es menor que la capacidad del canal C (es una característica

propia de cada canal), puedo crear un sistema de comunicaciones con una PE

(probabilidad de error) muy baja cuando n ∞.

El problema está en cómo elegir los 2Rn vectores que se van a enviar, es decir, en la

decisión. Al sistema que realiza dicha decisión se le llama codificador.

Los códigos convolucionales realizan esta selección, son códigos lineales que tienen la

propiedad de que la suma de dos palabras de código cualesquiera también es una

palabra de código. Luego, el codificador convolucional, es una manera de reducir el

número de mensajes que enviamos por el canal, cumpliendo de esta forma la

recomendación de Shannon. (Básicamente el codificador convolucional es una máquina

de estados que aplica la Teoría de Autómatas).

La codificación convolucional es una codificación continua en la que la secuencia de bits

codificada depende de los bits previos.

El código se genera pasando la secuencia de información a transmitir por un registro de

desplazamiento lineal. En general, el registro de desplazamiento consiste en m etapas de

k bits y n generadores de funciones algebraicas, como se muestra en la figura 65:

Figura 65: Codificador convolucional de m etapas

Page 141: 301405 Automatas y Lenguajes Formales 2013-II

141

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

Fuente: <El autor. CAAT>

El código queda especificado por tres parámetros (n, k, m):

n es el número de bits de la palabra codificada. k es el número de bits de la palabra de datos. m es la memoria del código o longitud restringida

El número de bits por palabra de datos k, cumple: R=k/n.

A este cociente se le denomina ratio del codificador. He definido para esta aplicación un

codificador convolucional (2,1,3), es decir: un bit para representar la palabra de datos, dos

bits de palabra de codificación por cada bit de palabra de datos y tres bits de longitud de

registro. En nuestro caso el ratio es ½.

Figura 66: Máquina de estados. Registro de desplazamiento convolucional de ratio = ½ y una etapa

Page 142: 301405 Automatas y Lenguajes Formales 2013-II

142

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

Fuente: <El autor. CAAT>

En la simulación comprobamos que esta codificación es óptima para disminuir nuestra

probabilidad de error en un porcentaje considerable. Cuanto mayor sea n, más segura

será la transmisión y menor será la probabilidad de error, eso sí, del mismo modo, más

complejo será el diagrama de estados del codificador y más difícil su posterior

decodificación. Hay que encontrar, como siempre en transmisión, el compromiso idóneo

entre calidad y complejidad.

Un codificador convolucional puede ser fácilmente representado por un diagrama de

estados de transición ya que tiene memoria finita. Para ello, procedemos al desarrollo de

los diferentes estados de la máquina. Fijamos que en el instante inicial el codificador está

cargado con todo ceros, veamos los distintos estados posibles:

Cargado todo con ceros, le metemos un cero y un uno:

Figura 67: Máquina de estados. Registro de desplazamiento convolucional (datos 000 y 100)

Page 143: 301405 Automatas y Lenguajes Formales 2013-II

143

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

Seguimos con el caso de que hemos introducido un uno porque con el cero observamos

que se forma un bucle. Ahora en la situación (1, 0, 0) veamos cómo codifica el sistema

usando una máquina de estados si le introducimos un cero y cómo si es un uno el bit que

entra al canal:

Figura 68: Máquina de estados. Registro de desplazamiento convolucional (datos 010 y 110)

Y así sucesivamente hasta completar un ciclo y con él, la máquina de estados.

DIAGRAMA DE ESTADOS: Una forma compacta de representar el código es mediante el

diagrama de estados.

En los diagramas, cada estado del codificador convolucional se representa mediante una

caja y las transiciones entre los estados vienen dadas por líneas que conectan dichas

cajas. Para saber de una manera rápida en qué estado se encuentra el codificador, basta

con observar los dos bits del registro de memoria más alejados de la entrada. Puede

comprobarse interpretando la máquina de estados correspondiente. Para el codificador de

la Figura 69, el diagrama de estados correspondiente es:

Figura 69: Diagrama de estados para el codificador convolucional de ratio 1/2

Page 144: 301405 Automatas y Lenguajes Formales 2013-II

144

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

ÁRBOLES: Para la descripción, utilizaremos un caso particular con m=3, k=1 y n=2.

Consideramos el codificador convolucional de la figura 70

Figura 70: Codificador convolucional de ratio 1/3 y m=3

El árbol resultante se muestra en la figura 71

Figura 71: Árbol para un codificador convolucional de ratio 1/2

Fuente: <El autor. CAAT>

Page 145: 301405 Automatas y Lenguajes Formales 2013-II

145

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

DIAGRAMAS DE TRELLIS:

Una manera de representar las distintas transiciones y los caminos que éstas describen

es mediante un Diagrama de Trellis. Una descripción de Trellis de un codificador

convolucional muestra cómo cada posible entrada al codificador influye en ambas salidas

y a la transición de estado del codificador. Un código de longitud restringida m tiene un

Trellis con 2k(m-1) estados en cada intervalo ti. Así que tendremos cuatro estados en ti. De

cada estado parten otros dos, uno si el bit enviado es un „1‟ y otro si es un „0‟.

Veamos las transiciones de estados correspondientes al Diagrama de Trellis usado en

este proyecto. Las flechas continuas muestran cómo el codificador cambia su estado si la

entrada es un cero, y las flechas discontinuas cómo lo hace si la entrada es un uno:

Figura 72: Diagrama de Trellis (transición de estados).

El sistema tiene memoria: la codificación actual depende de los datos que se envían

ahora y que se enviaron en el pasado. Por lo tanto, el diagrama completo que obtenemos

con nuestro codificador.

Page 146: 301405 Automatas y Lenguajes Formales 2013-II

146

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 73: Diagrama de Trellis completo (transición de estados).

Fuente: <El autor. CAAT>

El proceso de codificación evoluciona según el diagrama de estados. Entran al codificador

k bits a la vez y la correspondiente n salida se transmiten por el canal. Este procedimiento

se repite hasta legar el último grupo de k bits que se codifican en una salida de n bits.

Aceptamos para una mayor sencillez a la hora de decodificar, que después del último

envío de k bits, entran al codificador un grupo de k(m-1) ceros, y sus correspondientes

salidas son enviadas.

En nuestro caso (2,1,3), una vez enviado el último bit, tendremos que enviar dos ceros

para finalizar la secuencia en cero y de esta forma volver a poner el codificador a cero.

Así, queda listo para otro envío futuro y se facilita por lo tanto el proceso.

Ejemplo58: Codificación Convolucional de ratio = 1/2 y diagrama de Trellis:

Page 147: 301405 Automatas y Lenguajes Formales 2013-II

147

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

Sea una entrada de datos de 8 bits. Una vez elegido el codificador convolucional con ratio

1/2, procedemos como se ha explicado en la teoría para obtener la secuencia de 16 bits

correspondientes a la palabra codificada.

Datos a la entrada: 1 1 0 0 1 0 1 1

Hemos dicho que el codificador parte del estado todo cero. Fijándonos en la máquina de

estados de las figura 69, partimos del estado 00, si entra un 1, se ha explicado como

entra al codificador, cuál es la salida codificada (11) y a qué estado pasa (10). A este

nuevo estado le llamaremos estado presente. En nuestro ejemplo:

1º Dato entrada: 1 Dato codificado: 11 Estado presente: 10 2º Dato entrada: 1 Dato codificado: 10 Estado presente: 11 3º Dato entrada: 0 Dato codificado: 10 Estado presente: 01 4º Dato de entrada: 0 Dato codificado: 11 Estado presente: 00 Continuando el proceso llegamos a un código de estados presentes y a la secuencia

codificada que entra al canal:

Estado presente: 10 11 01 00 10 01 10 11 Entrada codificada: 11 10 10 11 11 01 00 10

Representamos cómo sería el camino de Trellis seguido por los datos correctos ya

codificados. Para esto nos fijamos en la secuencia de estados presentes:

Page 148: 301405 Automatas y Lenguajes Formales 2013-II

148

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 74: Datos correctos codificados

Fuente: <El autor. CAAT>

LECCIÓN 45: ALGORITMO DE VITERBI

La codificación convolucional se decodifica con ayuda del algoritmo de Viterbi. El proceso

consiste en desechar algunos de todos los caminos posibles. Lo que se consigue

aplicando este método es reducir el número de cálculos. Según el algoritmo de Viterbi,

para reducir el número de cálculos, cada vez que dos trayectos (también llamados ramas)

se junten en un estado en el Diagrama de Trellis, el de mayor métrica acumulada se

desecha en la búsqueda del trayecto óptimo. Esto se debe a que el estado actual resume

la historia de todos los estados anteriores en cuanto a su influencia en los estados

posteriores. Esto se hace en los 2k-1 estados, se pasa al intervalo ti+1 y se repite el

proceso. 00 01 10 Realmente, esta eliminación de posibles caminos no comienza hasta el

tercer nivel de representación. Esto se debe a que hasta ese instante, no han podido

converger dos ramas en un estado ya que por cada k bits de palabra de datos (k =1 en el

ejemplo) surgen 2k estados. Es decir, del primer estado (el 00 por definición)

tendremos dos estados en el siguiente nivel de representación, y por cada uno de estos,

Page 149: 301405 Automatas y Lenguajes Formales 2013-II

149

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

otros dos en el posterior nivel. Por tanto será en el tercer nivel cuando empecemos a

tomar decisiones porque ahora sí convergerán dos ramas en cada estado.

Decodificador de Viterbi, para el ejemplo 58

Una vez conocida la secuencia de 16 bits correspondientes a la palabra codificada en el

ejemplo anterior, suponemos una secuencia recibida con una serie de errores producidos

por el ruido en el canal (en rojo los bits erróneos en la. recepción). Dado que también

conocemos el Trellis que sigue la palabra enviada, podremos observar gráficamente en el

proceso de decodificación de Viterbi cómo se van obteniendo los caminos que conducen

al resultado óptimo. De esta manera:

Tabla 16: Relación de bits y estados.

Datos 1 1 0 0 1 0 1 1

Estado Presente 10 11 01 00 10 01 10 11

Codificado 11 10 10 11 11 01 00 10

Recibido 10 10 11 11 01 01 00 10

Fuente: <El autor. CAAT>

Veamos las distintas representaciones gráficas que desarrollan el proceso según dicta

nuestra máquina de estados. Sobre cada línea de unión de estados colocaremos en rojo

el número de errores acumulados en relación con la señal recibida.

El número de errores se calcula en base a la distancia de Hamming, la cual se describe a

continuación:

DISTANCIA DE HAMMING.

En los códigos no recurrentes (o sea que utilizan estructura de bloques) son formados con

agrupaciones de n bits llamadas bloques, cada bloque se diferencia de otro de acuerdo

con la distancia que exista entre ellos. Como lo muestra la siguiente figura 75:

Page 150: 301405 Automatas y Lenguajes Formales 2013-II

150

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 75: Distancia de Hamming.

La distancia Hamming comúnmente notada simplemente dH se cuenta como la cantidad

de bits que cambian de un bloque a otro. El cubo ayuda a representar la distancia

Hamming para un código de bloque de tres bits.

Continuando con el ejemplo: En el momento de hacer la elección coloreamos en azul

los caminos desechados:

1.- El primer y segundo nivel son fijos para cualquier entrada. Del estado 00 tenemos dos

posibles ramas, hacia el estado 00 y hacia el 10

Figura 76: Distancia de Hamming Nivel 1.

Fuente: <El autor. CAAT>

Page 151: 301405 Automatas y Lenguajes Formales 2013-II

151

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

2.- Todavía no tenemos que realizar ninguna decisión ya que, como hemos dicho, estos

caminos son los mismos independientemente de la entrada.

Figura 77: Distancia de Hamming Nivel 2.

Fuente: <El autor. CAAT>

3.- A partir del tercer nivel, en cada estado convergerán dos ramas, analizamos los

errores en la métrica de cada camino posible en relación con la señal recibida.

Figura 78: Distancia de Hamming Nivel 3.

Fuente: <El autor. CAAT>

Page 152: 301405 Automatas y Lenguajes Formales 2013-II

152

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

4.- Según el número de errores acumulados en relación con la señal recibida, elegimos un

camino u otro. Nos quedamos con el de menor error acumulado. Así pues, partimos de

menos ramas para el siguiente nivel del proceso.

5.- De cada nodo parten de nuevo otras dos ramas Colocamos únicamente los errores

correspondientes al último nivel, para una mejor visualización:

6.- Procedemos del mismo modo que para el tercer nivel y nos quedamos con las ramas

de menor error acumulado:

7.- Con esta metodología aplicada al resto de niveles, las cuatro ramas seleccionadas que

llegarían a los cuatro últimos estados dada su menor acumulación de error acumulada

serán:

Por lo tanto, el trayecto óptimo es aquel que finaliza en el estado 11, ya que tiene tres

errores acumulados frente a los cuatro de los otros estados. Así pues, el trayecto

recorrido óptimo es

Figura 79: Diagrama de Viterbi.. Trayecto de recorrido óptimo.

Fuente: <El autor. CAAT>

Page 153: 301405 Automatas y Lenguajes Formales 2013-II

153

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

Observamos que coincide exactamente con la secuencia de datos enviada y codificada.

Podemos concluir que mediante el Algoritmo de Viterbi hemos reconstruido perfectamente

nuestra secuencia de datos a partir de una secuencia codificada con errores introducidos

por el ruido del canal. La solución final de la máquina de estados para el codificador

convolucional en la que para el ejercicio se tenían como datos de entrada: 1 1 0 1 0 0 1 1

se ve en la figura 80 :

Figura 80: Solución final Trellis y Viterbi. Datos de entrada 11010011.

Fuente: <El autor. CAAT>

Una explicación del algoritmo, puede ser visualizada en los recursos de la tabla 17.

Tabla 17: Recursos web para el algoritmo de Trellis y Viterbi

DESCRIPCIÓN DE VIDEO

CANAL

CANAL

Código convolucional de m=3 , K=1 http://youtu.be/ZnCbur8zQiU https://vimeo.com/75887185

Fuente: <El autor. CAAT>

Page 154: 301405 Automatas y Lenguajes Formales 2013-II

154

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

Sigue al autor.

facebook.com/carlosalberto.amayatarazona @carlosamayat

SIMULADORES: Los simuladores son compatibles con cualquier sistema operativo. Solo requieren que

tenga instalado el plugin de java en su navegador web. Puede realizar la descarga de los

simuladores desde los siguientes recursos:

Tabla 18: Recursos web para descarga de simuladores.

SIMULADOR

http://www.java.com/es/do

wnload/index.jsp

DESDE LOS REPOSITORIOS DE LA UNIVERSIDAD

DESDE LA PAGINA DEL AUTOR DEL SOFTWARE

JFLAP V 7.0

http://datateca.unad.edu.co/contenidos/301405/

SIMULADORES/JFLAP.zip

http://www.jflap.org/getjflap.html Guía o Tutorial:

http://www.jflap.org/tutorial/

VISUAL AUTÓMATA SIMULATOR (VAS)

http://datateca.unad.edu.co/contenidos/301405/

SIMULADORES/VISUAL_AUTOMATA_SIMULA

TOR.zip

Tutorial:

http://sistemas.uniandes.edu.co/~isis1106/doku

wiki/lib/exe/fetch.php?media=tutoriales:tutorial_v

as.pdf

http://download.cnet.com/Visual-

Automata-Simulator/3000-2053_4-

54760.html

CHALCHALERO

http://datateca.unad.edu.co/contenidos/301405/

SIMULADORES/chalchalero.zip

http://www.ucse.edu.ar/fma/sepa/chalchalero.htm

KAKUY

http://datateca.unad.edu.co/contenidos/301405/

SIMULADORES/KAKUY.zip

http://www.ucse.edu.ar/fma/sepa/

LyX – The Document Processor

http://www.lyx.org/

Un procesador de documentos (para edición de contenidos matemáticos).

Automaton Simulator http://ozark.hendrix.edu/~burch/proj/autosim/

Video de instalación.

http://datateca.unad.edu.co/contenidos/301405/SIMULADORES/VIDEO_SIMULADORES.

zip

Fuente: <El autor. CAAT>

Page 155: 301405 Automatas y Lenguajes Formales 2013-II

155

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: EJERCICIOS DE REPASO

Se presentan ejercicios que han sido banco de evaluaciones formuladas en el curso: Se

recomienda que repase, evalúe y sintetice el análisis de cada uno.

Ejercicio 1: Una de las operaciones que se puede formar con las palabras de un alfabeto es “La potencia”. Dada una palabra w ∑* se define inductivamente la potencia n-ésima

de w, que se denota wn

, como: w0= cadena vacía, w

n= w . w

1n para n > 0

Si w = aba es un palabra sobre el alfabeto {a,b} entonces:

A. 2= aabb

B. 2= abaaba

C. 2= abab

D. 2= ababab

Ejercicio 2: Indique cuál de las siguientes afirmaciones referidas a lenguajes del alfabeto ∑ = {0,1,2} son ciertas:

1. El lenguaje de las cadenas con a lo sumo una pareja de 0´s consecutivos y a los sumo una pareja de 1´s consecutivos no es regular.

2. El lenguaje de las cadenas equilibradas con igual número de 0´s y de 1´s tales que ningún prefijo de cualquiera de ellas posee más de dos 0´s que 1´s ni más de dos 1´s que 0´s es un lenguaje regular.

3. No existe ningún autómata determinista que reconozca el lenguaje de las cadenas en las que toda pareja de 0´s contiguos aparece antes de cualquier pareja de 1´s contiguos.

4. Si L es un lenguaje regular también lo es el lenguaje consistente en las inversas de las cadenas de L.

Ejercicio 3: Sea el alfabeto ∑= {a,b} con la Expresión Regular: a(a+b), identifique las

cadenas válidas que se pueden generar:

A. {aba, aab,} B. {a, aab, abb} C. {aa, ab,} D. {a, b, aa, bb}

Page 156: 301405 Automatas y Lenguajes Formales 2013-II

156

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

Ejercicio 3.1 Para el siguiente autómata, identifique cuál es la Expresión Regular (ER) que mejor lo representa:

A. (ab+ba) + a B. (ab + aba)* C. a +(ab)* D. ab +(ab)*

ANALICE LA RELACIÓN ENTRE EL EJERCICIO 3 Y 3.1

Ejercicio 4: Cuáles afirmaciones son válidas y que surgen de un análisis de las ER

(Expresiones Regulares):

1. La ER (0+1)*01 genera cadenas válidas para el autómata del ejercicio doce (12)

pero no para las del autómata del ejercicio once (11).

2. La ER (0+1)*01 genera las mismas cadenas para el Autómata del ejercicio dos

(2) y del ejercicio doce (12)

3. La ER (0+1)*11(01)* genera cadenas válidas para el autómata del ejercicio

dos (2) pero no para las del autómata del ejercicio doce (12).

4. La ER (1*00*1(00*1)*1)*1*00*1(00*1)* genera las mismas cadenas para

el Autómata del ejercicio doce (12) y del ejercicio once (11).

Ejercicio 5: Se denomina estrella de Kleene, cierre reflexivo transitivo u operación asterisco sobre un alfabeto ∑ al conjunto de todas las cadenas que se pueden construir a partir de los símbolos del alfabeto ∑; en notación matemática esta definición se expresa así.

Page 157: 301405 Automatas y Lenguajes Formales 2013-II

157

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

Dado el alfabeto: ∑= {a,b} una representación válida de la expresión regular y su

lenguaje sería:

A. Expresión Regular: ; Como Lenguaje: { Ø,b,bbb,bbbbbb,…}

B. Expresión Regular: ; Como Lenguaje:

empiezan en a y terminan en ba

C. Expresión Regular: ; Como lenguaje:

{a,aa,ab,aaa,aab,aba,abb, …}

D. Expresión Regular: . ; Como Lenguaje: empiezan en a y

terminan en b

Ejercicio 6: Se denomina cadena, palabra o frase a una secuencia finita de símbolos de

un alfabeto ∑. Estas cadenas son denotadas como w. Dado el siguiente autómata finito determinístico (AFD) A = (Q, ∑, f, q 0 , F) donde:

Q es un conjunto de estados.

∑ es el alfabeto de entrada

f: Q X ∑ → Q es la función (total) de transición.

q 0 Q es el estado inicial.

F Q es el conjunto de estados finales.

Y que para el ejercicio ∑ = {a,b} Q ={ q 0 , q1 } F = {q1 } se representa mediante el

siguiente diagrama de Moore:

El conjunto de palabras aceptadas por este autómata son:

Page 158: 301405 Automatas y Lenguajes Formales 2013-II

158

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. { a | ϵ {a,b}2

}

B. { a | ϵ {a,b}*

}

C. Todas las palabras que terminan en a y que estén precedidas por

una b

D. Todas las palabras que terminan en dos a´s

Ejercicio 7: Tome como válida la ER (Expresión Regular) α = a + bc + b3a ¿Cuál es el

lenguaje descrito por α? Y ¿Qué expresión regular corresponde al lenguaje universal sobre el alfabeto {a,b,c}?

1. L (α) = {a, bc, bbba} y es un lenguaje infinito no deterministico sobre la cadena {a,b,c}

2. L (α) = {a, bc, bbba} y es un lenguaje finito sobre el alfabeto {a,b,c} 3. La expresión regular (ER) que describe el lenguaje universal sobre este

alfabeto es (a+b)*

+c 4. La expresión regular (ER) que describe el lenguaje universal sobre este

alfabeto es (a+b+c)*

Ejercicio 8: Para el siguiente Autómata Finito denotado como: A 2 = (∑, K, , q 1 , F)

donde ∑ = {0,1}, F = {q 2 } y K = {q 1 , q 2 , q 3 , q 4 }, identifique correctamente el Lenguaje

que genera y la expresión regular:

Page 159: 301405 Automatas y Lenguajes Formales 2013-II

159

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. L = (A 2 ) = {0, 001, 01111, …} = { 1(10)n

/n ≤ 0} La expresión regular es: 0(01)*

B. L = (A 2 ) = {1, 101, 10101, …} = { 1(01)n

/n ≥ 0} La expresión regular es: 1(01)*

C. L = (A 2 ) = {0, 111, 11100, …} = { 1(10)n

/n = 0} La expresión regular es: 1(01)

D. L = (A 2 ) = {0, 001, 00100, …} = { 1(01)n

/n ≠ 0} La expresión regular es: 0(01)*

Ejercicio 9: Sea el vocabulario {a,b} y la expresión regular aa*bb* Indique cuales cadenas que se relacionan a continuación son válidas para esa ER:

A. {ab, aab, aab, a, aa,bb} B. {a, b, ab, ba, aab, bba, aaab} C. {ba, ab, b, a} D. {ab, aab, aaab, abbb, abb, aa,bb}

Para el siguiente Autómata, asocie la expresión regular que lo identifica.

A. (10 + 0)* 10 B. (10 + 0) C. (10 + 0)* D. (0+1+0*)

Page 160: 301405 Automatas y Lenguajes Formales 2013-II

160

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

Ejercicio 10: Una de las operaciones que permiten las “Expresiones Regulares” es el

“Cierre u operación estrella”. Si es una expresión regular, entonces * es una

expresión regular que denota { } *

. Es decir denota las cadenas:

A. , , , , …

B. , , , , … ,

C. , , , , …

D. , , , , , … ,

.

Ejercicio 11: El siguiente Autómata Finito (AF) es origen de:

A. La conversión de un AFND del ejercicio doce (12) a un AFD B. La conversión de un AFD del ejercicio doce (12) a un AFND C. La minimización del Autómata Finito (AF) del ejercicio doce (12). D. La maximización (aceptación de cada transición) del Autómata Finito (AF) del

ejercicio doce (12).

Ejercicio 12: Analice el siguiente Autómata y determine cuáles apreciaciones son válidas

en su análisis:

Page 161: 301405 Automatas y Lenguajes Formales 2013-II

161

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. La función de transición puede no estar definida para alguna combinación (x,q) y, por el contrario, puede definir para otras combinaciones (x,q) más de un estado.

2. La función de transición define para cada posible combinación (x,q) un estado nuevo.

3. Es un autómata no determinístico (AFND), con un conjunto finito de estados y símbolos de entrada, un estado inicial, un conjunto de estados finales, y una función de transición de estados.

4. Es un autómata determinístico (AFD), con un conjunto finito de estados y símbolos de entrada, un estado inicial, un conjunto de estados finales, y una función de transición de estados.

Ejercicio 13: Dado los siguientes dos autómatas A y B, analice los enunciados dados e

identifique cuales son verdaderos.

1. El Autómata B tiene un error de diseño. Un AF no puede tener dos estados de aceptación.

2. Solo el Autómata A reconoce la cadena vacía lambda 3. Los dos Autómatas reconocen el mismo Lenguaje. 4. El Autómata A es un AFND y el Autómata B es un AFD.

Ejercicio 14: Se construyó el siguiente autómata finito M para que cumpliera:

L(M) = {xm

yn

zp

| m,n y p son enteros no negativos }

Page 162: 301405 Automatas y Lenguajes Formales 2013-II

162

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

Pero no fue válido porque:

A. Tiene dos estados de aceptación o finales. B. No acepta las cadenas {xyz} {yz} {xxxy} C. No acepta las cadenas {x} {xxxzzz} {z} D. Acepta solo las cadenas que combinen los elementos {x,z} del alfabeto

Ejercicio 15: Sea el alfabeto ∑ = {0,1} y el autómata de la figura:

Para el ejercicio analice la cadena sin tener en cuenta si es válida o no, (aceptada o no aceptada)

Determine cuál interpretación es válida al analizar la cadena 00101

A. El autómata puede procesar la cadena 00101 de 4 formas distintas. B. Sólo existe un modo en el que el autómata puede procesar la cadena 00101. C. Al procesar la cadena 00101, el último estado visitado es siempre el estado 3 o

bien el estado 2. D. Se generan miles cadenas 00101 ya que el autómata es infinito.

Ejercicio 16: Para el siguiente autómata finito determinístico (AFD), identifique que afirmaciones son válidas para la expresión:

Tenga en cuenta que se denomina cadena, palabra o frase a una secuencia finita de

símbolos de un alfabeto ∑. Estas cadenas son denotadas como w.

Page 163: 301405 Automatas y Lenguajes Formales 2013-II

163

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. Reconoce las palabras sobre a,b que terminan en un número par de a´s

contiguas

B. Reconoce solo las frases sobre a,b que empiezan por b

C. Reconoce las palabras sobre a,b que tienen un número par de a´s contiguas.

D. Reconoce solo las cadenas sobre a,b que empiezan por a

Ejercicio 17: Analice la codificación de la siguiente Máquina: Si lee 0101, la salida correspondiente es:

A. 0110 B. 0111 C. 0101 D. 0011

Ejercicio 18: Para el siguiente autómata,

M =(K, ∑, q1 , δ, F) donde: Q = { q1 , q 2 , q 3 , q 4 } A = {a, b}

Cuáles igualdades son válidas para la función de transición δ

Page 164: 301405 Automatas y Lenguajes Formales 2013-II

164

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. δ (q2 , a ) = q 2 δ (q2 , b ) = q 3

2. δ (q 4 , a ) = q 4 δ (q 4 , b ) = q 4

3. δ (q 3, a ) = Ǿ δ (q 3

, b ) = q 3

4. δ (q1 , a ) = q 2 δ (q1 , b ) = q 4

Ejercicio 19: Identifique de los cuatro autómatas que se muestran a continuación, (A, B, C o D), cuál reconoce las cadenas que contienen la subcadena aba y cuya definición formal sería la siguiente:

K = {1,2} Σ={a,b} s={1} F={2} ={((1,a),1),((1,b),1),((1,aba),2),((2,a),2),((2,b),2)}

Ejercicio 20: Para el siguiente AFND representado en un diagrama de transición, identifique la tabla de transición correcta que lo representa:

Page 165: 301405 Automatas y Lenguajes Formales 2013-II

165

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

Ejercicio 21: Dado el Autómata con la siguiente tabla de transición, identifique las cadenas que son válidas para el lenguaje que acepta.

Page 166: 301405 Automatas y Lenguajes Formales 2013-II

166

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. Solo acepta cadenas vacías (lambda). B. Es un AFND y acepta cualquier cadena que inicie con cero (0). C. {101, 210, 20,110, 200} D. {22, 0,1,001122, 12, 012, 022}

Ejercicio 22: Indique cuál de las siguientes afirmaciones referidas a los autómatas de la figura, son ciertas. (Observe que hay una transición que no lee ningún símbolo de la cadena de entrada):

1. Los autómatas reconocen el lenguaje formado por todas las cadenas que empiezan por 1 y que no terminan en dos ceros consecutivos.

2. Ambos autómatas reconocen el mismo lenguaje incluyendo la cadena vacía. 3. El autómata A es más potente por ser No Determinista. 4. Cualquier autómata no determinista que reconozca el mismo lenguaje que el

autómata B tiene al menos cuatro estados.

Ejercicio 23: Dado el siguiente autómata: Analice las siguientes afirmaciones:

Page 167: 301405 Automatas y Lenguajes Formales 2013-II

167

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 conjunto de cadenas que es capaz de aceptar este autómata es {b,bb,bbb} PORQUE

este AFD está compuesto por un símbolo b que converge a tres estados de aceptación q

3 , q 4 y q 5 y a un estado final q 5 .

Ejercicio 24: El autómata representado en el ejercicio catorce anterior, corresponde a un

AUTÓMATA FINITO NO DETERMINISTA CON LANDA TRANSICIONES (AFND - al

que se le permite cambiar de estado sin necesidad de consumir o leer un símbolo de

entrada PORQUE cumple con uno de los requisitos para no ser determinista cuando al

analizar el autómata en el estado q 1 en un cierto instante y si el símbolo actual es b, en el

instante siguiente, el autómata puede decidir de forma no determinista entre “leer el

símbolo b y cambiar al estado q 4 ”, o bien, “cambiar al estado q 2 sin mover el cabezal de

lectura”.

Ejercicio 25: Cuando se trata de simplificar Autómatas, se deben tener en cuenta aspectos como: (Identifique cuál paso o concepto es válido en este proceso de Minimización).

A. Se entiende por minimización de autómatas finitos al proceso de obtención de un autómata con el menor número de transiciones posibles.

B. Dos estados son equivalentes si al intercambiar uno por otro en cualquier configuración no altera la aceptación o rechazo de toda la palabra.

C. Para saber si dos estados q1 y q2 son equivalentes, se les pone a ambos como estado final de los autómatas M1 y M2, y se procede a comparar dichos autómatas. Si estos últimos son equivalentes, quiere decir que los estados q1 y q2 son equivalentes

D. Dos estados son distinguibles si son compatibles (es decir, si ambos son finales o ambos son iníciales).

Ejercicio 26: La relación entre un AP y un LLC (Lenguaje Libre de contexto) permite que dada una Gramática G, existe entonces un AP que acepta exactamente el lenguaje generado por G. Dado el siguiente autómata de pila (AP) cuyo funcionamiento se representa en la siguiente tabla, identifique la gramática correcta y sus reglas que aceptan el LLC dado por el AP.

Page 168: 301405 Automatas y Lenguajes Formales 2013-II

168

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. S –> 0A0 | 1S2 | 1 | 0 B. S –> 0A0 | 1S2 | 10 C. S –> 0A0 | 1S1 | 2 D. S –> 0A0 | 1S0 | 2 | 0

Ejercicio 27: Dadas las siguientes gramáticas, asócielas a los enunciados que se

presentan de forma correcta. Tenga en cuenta que como Símbolo inicial se toma a “S”

que son los estados iniciales y como símbolos no terminales los estados en el orden de su

nombramiento. El conjunto finito de símbolos terminales son los símbolos del alfabeto ∑

del autómata.

Page 169: 301405 Automatas y Lenguajes Formales 2013-II

169

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. La Gramática D corresponde a una representación válida del lenguaje que acepta el Autómata del ejercicio dos (2).

2. La Gramática C corresponde a una representación válida del lenguaje que acepta el Autómata con lambda transiciones del ejercicio tres (3).

3. La Gramática A corresponde a una representación válida del lenguaje que acepta los Autómatas del ejercicio doce (12).

4. La Gramática B corresponde a una representación válida del lenguaje que acepta el Autómata del ejercicio cuatro (4).

Ejercicio 28: Dada la siguiente gramática G= (VN= {S, A}, VT= {0,1}, S, P) donde P son

las producciones:

Cuáles sentencias de lenguaje son generadas correctamente:

1. S –> 0A –> 00A –> 001S –> 0010 A –> 00100

2. S –> 0A –> 00A –> 001 A –> 0010

3. S –> 0A –> 01S –> 010 A –> 0100

4. S –> 0A –> 0A –> 00A –> 000

Ejercicio 29: Las Gramáticas regulares pueden ser de dos formas: Lineales por la

derecha y Lineales por la izquierda. También pueden ser ambiguas si existen dos árboles

de derivación distintos para una misma palabra. Dada la Gramática G = {S, A}, T= {0,1}

representada en los dos árboles de derivación siguiente, identifique el tipo de

producciones y el lenguaje que generan:

Page 170: 301405 Automatas y Lenguajes Formales 2013-II

170

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. El Árbol de Derivación A representa una gramática lineal por la derecha. 2. El Árbol de Derivación B representa una gramática lineal por la izquierda y genera

el lenguaje 0(10)* 3. El Árbol de Derivación A representa una gramática lineal por la izquierda y genera

el lenguaje 0(10)* 4. El Árbol de Derivación A no es lineal, es ambigua (puede tener producciones por la

izquierda y la derecha) y genera el lenguaje (10)*

Ejercicio 30: Para el autómata del ejercicio anterior, (ejercicio 201 – 1ESTE ES) determine que afirmación es válida si se presenta la siguiente gramática. Para el análisis, asigne un nombre a los estados del autómata que apliquen a la gramática dada.

S → xS S → yA S → zB A → yA A → yB B → zB

B →

A. El autómata y la gramática son equivalentes B. El autómata y la gramática no definen un estado de aceptación. C. La gramática no referencia ningún estado ni transición válida del autómata. D. No es equivalente el autómata con la gramática ya que la gramática no genera la

cadena vacía

Ejercicio 31: Sean L 1 el lenguaje generado por la gramática G 1 y L 2 el lenguaje

generado por la gramática G 2

S → xABy

A → xzS | B

B → yz |

S → xAyzy | xAy

A → xzS | yz |

Gramática G 1 Gramática G 2

Page 171: 301405 Automatas y Lenguajes Formales 2013-II

171

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

Indique cuál de las siguientes afirmaciones es cierta (donde denota la inclusión

estricta):

1. Mediante G 1 se puede generar todas las cadenas de L 2

2. Las gramáticas son idénticas 3. Las gramáticas generan el mismo lenguaje.

4. Las gramáticas son distintas, y L 1 L 2

Ejercicio 32: Las gramáticas del ejercicio anterior (ejercicio 31), tienen dos particularidades que son válidas afirmarlas:

1. Las reglas de las gramáticas difieren por que tienen diferentes terminales.

2. La palabra generable por la gramática G 1 y G 2 es xxzyzy

3. La palabra generable por la gramática G 1 y G 2 es xyzyzy

4. La lista de reglas están denotadas de forma comprimida.

Ejercicio 33: Considere la gramática G = {S → aS | aA | a , A → aA | bS } ¿Cuál es la longitud de las cadenas que puede generar y cuáles son esas cadenas, identifíquelas?

A. 10 y son {Ø, a, aa, ab, ba, bb, aba, abab, bbb, b} B. 5 y son {Ø, a, aa, ab, ba } C. 7 y son {a,aa,aaa,aaaa, abaa, aaba, abab} D. 6 y son {a, aa, ab, ba, bb, aba }

Ejercicio 34: Dada la siguiente gramática regular G , identifique el conjunto de cadenas o palabras válidas que puede generar el Autómata Finito que lo representa: (Para el desarrollo del ejercicio se sugiere graficar o recrear el autómata)

S → aA | bA A → aB | bB | a B → aA | bA

A. {a,b} B. El conjunto de cadenas que pueda generar la ER = a*b*a C. {aa, aaaa, bbba, ba, bba, baaa, baba} D. {baaaa, aaaaa, bba}

Page 172: 301405 Automatas y Lenguajes Formales 2013-II

172

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

Ejercicio 35: Cuando se diseñan AP o se formalizan, se utilizan notaciones gráficas

parecidas a la de los diagramas de los AF. Con respecto a esto: ¿qué aspectos de

diseños son válidos para formalizar un AP.?

1. Si se da la transición “a/x/c” indica que se saca de la pila un carácter “a”, luego se avanza una posición “x” en la pila, y se mete “c” a la pila.

2. Si se da la transición “a/x/c” indica que se consume de la entrada un carácter “a”, se avanza una posición “x” y se mete “c” a la pila.

3. Para que una palabra de entrada sea aceptada en un AP debe cumplir tres condiciones. Una de ellas es que el AP se debe encontrar en un estado final.

4. Si se da la transición “a/x/c” indica que se consume de la entrada un carácter “a”, no se saca nada de la pila, y se mete “c” a la pila.

Ejercicio 36: Al combinar los diagramas de transiciones de las siguientes máquinas M1

y M 2 :

Para formar el diagrama de transiciones de la máquina compuesta por:

Da como solución la siguiente máquina M.

Page 173: 301405 Automatas y Lenguajes Formales 2013-II

173

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 funcionamiento correcto de la máquina M es.

A. Busca el primer símbolo distinto de x / Si ese símbolo es y; lo cambia por otra y / Regresa a uno (1).

B. Busca el primer símbolo distinto de y / Si ese símbolo es x; lo cambia por otra x / Regresa a cuatro (4).

C. Busca el primer símbolo distinto de x / Si ese símbolo es y; lo cambia por una x / Regresa a dos (2) para evaluar la memoria y finalizar en h (halt).

D. Busca el primer símbolo distinto de y / Si ese símbolo es x; lo cambia por una y / Regresa a uno (1).

Ejercicio 37: Con referencia a la funcionalidad y creación de una Máquina Universal de Turing (MUT), es válido afirmar:

1. Una Máquina Universal de Turing es capaz de decidir cualquier lenguaje independiente del contexto.

2. En el estado de parada de una MUT no puede salir ningún arco 3. En una MUT el lenguaje aceptado por esta máquina no puede contener una

cadena vacía. 4. La MUT se diseñó para realizar cálculos específicos.

Ejercicio 38: Un problema de decisión (PD) es aquel formulado por una pregunta

(referida a alguna propiedad) que requiere una respuesta de tipo “si/no”. Para la Teoría

de Lenguajes, un problema de decisión es “insoluble” cuando:

1. Si no existe un procedimiento efectivo para determinar si la propiedad es

verdadera (no existe una Máquina de Turing MT).

2. Si no se representa con una Tabla de transiciones el problema.

3. Si no existe un algoritmo total para determinar si la propiedad y objetivo del

problema es verdadera.

4. Si no se representa con un diagrama de Moore el problema.

Ejercicio 39: Dada la siguiente Máquina de Turing (MT), determine que afirmaciones son válidas para su análisis:

Page 174: 301405 Automatas y Lenguajes Formales 2013-II

174

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. Si la primera letra no es una “a” la MT cae en un ciclo infinito leyendo y escribiendo “a”

2. La máquina acepta palabras que empiezan con “b” 3. La máquina acepta palabras que empiezan con “a” 4. Si la primera letra no es una “a”, la MT cae en un ciclo infinito leyendo y

escribiendo “b”

8. Ejercicio 40: Con referencia a una Máquina de Turing (MT) de dos direcciones: Una Máquina de Turing con una cinta infinita en un sentido puede simular una Máquina de Turing con la cinta infinita en los dos sentidos. Sea M una Máquina de Turing con una cinta infinita en los dos sentidos, entonces:

Para que se logre o se dé esta máquina se debe cumplir:

1. La Máquina de Turing M que tiene una Cinta Infinita en un sentido, puede

simular a M si tiene una cinta con dos pistas.

2. La cinta superior contiene información correspondiente a la parte derecha

de la cinta M a partir de un punto de referencia dado.

3. La pista inferior contiene tanto la parte izquierda como la derecha de la

cinta M (en orden inverso).

4. La pista inferior y superior leen los datos simultáneamente en ambos

sentidos. Luego y dependiendo de los estado repetitivos, se detiene una

pista y continúa la que menos celdas tenga ocupada.

Page 175: 301405 Automatas y Lenguajes Formales 2013-II

175

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

BIBLIOGRAFIA RODRIGUEZ COSTA Sergio, (1996,2009). Las Máquinas de Turing. Extraído el

19 Febrero de 2009 desde http://www.rastersoft.com/articulo/turing.html

BOVET JEAN, (2004, 2006) Visual Autómata Simulator. Extraído el 25 de

Marzo de 2011 desde http://www.automatas.org/

JFLAP, (2004, 2008) JFLAP Version 7.0 Release August 28, 2009. Extraído

el 30 de Mayo de 2011 desde http://www.jflap.org/

PROYECTO SEPA, Software para la enseñanza de Parsing. (n.d.). Extraído el

18 de Marzo de 2011 desde http://www.ucse.edu.ar/fma/sepa/

MORAL. SERAFIN, Teoría de Autómatas y lenguajes Formales. (n.d.).

Extraído el 2 de Noviembre de 2010 desde

http://decsai.ugr.es/~smc/docencia/mci/automata.pdf

Cuevas, O, (1999, 2001), Teoría de Autómatas y Lenguajes Formales.

Segunda Edición, España 2001. Facultad de ingeniería, Ciencias y

Administración. Universidad de la Frontera.

Alfonseca, J; Sancho, M (1990), Teoría de Lenguajes, Gramáticas y

Autómatas. Segunda Edición, España 2001. Ediciones universidad y Cultura

Isasi, P, (1997), Lenguajes, gramáticas y autómatas. Un Enfoque práctico.

Segunda Edición, España 2004. Addison- Wesley.

Hopcroft, J, (2002), Introducción a la Teoría de Autómatas y lenguajes de

Computación. Segunda Edición, España 2002. Addison – Wesley

Iberoamericana

Kelley, D, (1995), Teoría de autómatas y Lenguajes Formales. Prentice

Hall Brokshear, J; (1993), Teoría de la computación, Lenguajes Formales,

Autómatas y complejidad. Primera Edición, México 1993. Ediciones Addison-

Wesley Iberoamericana.

John, M; (2004), Lenguajes formales y teoría de la computación. Tercera

Edición, México 2004. Ediciones Mc Graw Hill.

Page 176: 301405 Automatas y Lenguajes Formales 2013-II

176

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

Brena, R; (2003), Autómatas y Lenguajes. Un enfoque en diseño.

Tecnológico de Monterey. P 214.

Navarro, G; (2006), Fundamentos de la ciencias de la computación

(Lenguajes Formales, Computabilidad y Complejidad). Apuntes y ejercicios.

Departamento de Ciencias de la Computación. Universidad de Chile. P 178.

Cueva, J; (2001), Lenguajes Gramáticas y Autómatas. Departamento de

Informática Universidad de Oviedo. P 106.

Navarrete, I; (2008); Teoría de Autómatas y Lenguajes Formales.

Departamento de Ingeniería de la Información y las Comunicaciones.

Universidad de Murcia. P 133.

A Mathematical Theory of Communication by Claude E. Shannon. Disponible

en internet: <http://cm.bell-labs.com/cm/ms/what/shannonday/paper.html>