Cursos

Home

11/22/19

1112034 Lenguajes y Autómatas 

GRUPO  CCB01

TRIMESTRE 15I

 

Comentarios y sugerencias

cbarron@correo.azc.uam.mx

cbarron99@hotmail.com

NOTAS:

Esta UEA coincide con Teoría Matemática de la Computación, Lógica y Matemáticas Discretas para la Computación, Software de base y Compiladores. Puedes encontrar material y exámenes en Cursos.

Clases: Lunes, miércoles y viernes de  10:00 - 11:30. Salón: K106

Por favor asistan, porque los temas son nuevos para ustedes y tienen un grado de dificultad mayor a los de otros cursos.

Horario de asesoría: martes y jueves de 11:30 a 13:00 en mi oficina H116.

 

Calificaciones y lista de alumnos.

PDF UEA 1112034_Lenguajes y Autómatas

 

Fechas de examen:

(Pueden traer una hoja carta con un resumen de sus notas como acordeón a mis exámenes)

1er. examen parcial:  miércoles 9 de octubre de 2019.

2do. examen parcial: miércoles 6 de noviembre de 2019.

Examen global:  Lunes 25-Nov-2019, 10:00 - 13:00 Salón K107 Nota: si lo desean podrán presentar el examen completo para mejorar su calificación.
Examen Recuperación:

 

Tareas, notas y examenes.

  1. Hacer un ensayo de al menos una cuartilla que responda: ¿Porque yo quiero estudiar Lenguajes y Autómatas? Se entrega la segunda clase. Al menos una cuartilla. Hoja tamaño carta a mano o por procesador de palabra con buena redacción, ortografía y presentación.

  2. Por medio del axioma de especificación, definir las operaciones de conjuntos y escribir un ejemplo de cada una con el alfabeto $\Sigma = \{ a, b, c, d, 0, 1, 2, 3, 4 \}$: 1) "$\cup$" unión,2) "$\cap$" intersección, 3) "$\setminus$" diferencia, 4) distribución la unión sobre la intersección, 5) distribución la intersección sobre la unión, 6) "$ \,^c$" complemento, 7) igualdades de Morgan. Hoja tamaño carta a mano o por procesador de palabra con buena redacción, ortografía y presentación. Fecha de entrega miércoles 18 de septiembre a las 10:00. Ayuda: ver lecturas 1 y 2 o UEA de Matemáticas Discretas en Cursos.

  3. Ejemplo de un simulador de Autómatas Finitos Determinísticos en Matlab.  (Estudiarlo para próximas tareas). Se actualizo con una versión para Octave.

  4. Tarea. 1) Presentar el autómata que detecta la cadena de 111 (de tres unos) y no importa lo que tenga antes o después, similar al realizado en la clase 5.  2) Diseñar un autómata que si detecta en una cadena a la cadena 111 (de tres unos) la rechace. 3) Explicar si la unión de las cadenas que aceptan los autómatas de los incisos 1) y 2) son todas las cadenas que se pueden formar con 0's y 1's. 4) Explicar que conjunto se obtiene de la intersección de los conjuntos de cadenas que aceptan los autómatas de los incisos 1) y 2). 5)  Explicar si los conjuntos de cadenas que aceptan los autómatas de los incisos 1) y 2) son complementarios. Notas: Para los autómatas escribir la definición formal, dibujar el diagrama de transición y e incluir 10 pruebas de cadenas (5 validas y 5 invalidas)  al ejecutarlo con el simulador. Denotando como $\Omega$ a todas las cadenas finitas de 0's y 1's y   L(AFD)  al conjunto de las cadenas aceptadas por un autómata FD, las preguntas 3), 4) y 5) en notación de conjuntos son:  3) ¿L(AFD1) $\cup$ L(AFD2) = $\Omega_\Sigma$?; 4) ¿L(AFD1) $\cap$ L(AFD2) = ? y 5)  ¿L(AFD1$)^c$  =  L(AFD2)?  Fecha de entrega lunes 30 de septiembre a las 10:00.

  5. Lista de ejercicios para preparar el 1er examen parcial. Cambie la fecha al miércoles porque una alumna tiene problemas el viernes.

  6. 1er examen parcial. Solución 1er examen parcial.

  7. Tarea opcional. Hacer un ensayo de al menos una cuartilla que responda: Sobre los autómatas vistos en clase y los Mundos del Doctor Popper. Al menos una cuartilla. Hoja tamaño carta a mano o por procesador de palabra con buena redacción, ortografía y presentación. Fecha de entrega lunes 21 de octubre a las 10:00. Ayuda: ver lecturas 4 y 5.

  8. Tarea obligatoria. 1) Construir un AFPN o un AFPD para el lenguaje Lpp={ [], (), ([]),([()]),[([])], ...}  2) Responda y explique si Lpp es regular o no es regular. 3) Escribir tres ejemplos  de aceptación y tres de rechazo usando los mapas de la situación actual. Note que en el lenguaje LPP, el paréntesis que abre corresponden con el que cierra, o sea no se acepta: (], [),[[), etc. Ayuda: incluya una condición sobre un símbolo que saca de la pila y el carácter que lee, por ejemplo: ), s=P.pop() $\wedge$ s==')',  o por ejemplo: ], s=P.pop() $\wedge$ s==']'. Fecha de entrega miércoles 23 de octubre a las 10:00. Ayuda: clase 3 segunda columna.

  9. Tarea opcional. Explicar si mediante autómatas AFP se puede construir un detector de números múltiplos y que se puedan usar para construir la lista de los números primos. Es decir,  que detecte el lenguaje de los números múltiplos de 2 o de 3 o de 4 o  de 5 etc. Y que identifique, con algo de ayuda e ingenio, que 2, 3, 5, 7 etc. son números primos 1) Explique como funcionaria su sistema y responder porque no se puede con AFD, AFN y AFN$\,_{\ni}$ (cuenta como una tarea). 2) Escriba un programa en el lenguaje que desee, me entrega una impresión del código fuente y me demuestra que funciona antes del 2do examen parcial para ganar dos puntos en el segundo examen parcial. 

  10. Lista de ejercicios para preparar el 2do examen parcial.

  11. 2do examen parcial. Solución 2do examen parcial.

  12. Sugerencia asistir  el día 12 de noviembre a las 13:15 en la sala de Seminarios de Ciencias Básicas HP, planta baja a la conferencia titulada: Control predictivo dinámico: Análisis de estabilidad en  el dominio del tiempo, impartida por Luis Juárez Ramiro del Departamento de Control Automático, CINVESTAV.

  13. Lista de ejercicios para preparar el examen global-final. El viernes 22 de noviembre se usará para repasar el curso en preparación del Examen Final.

Bitácora de Clases 

  1. Plática de los temas del curso. Lenguajes, sintaxis y semántica. Diferencias entre las oraciones: 1) Cual es su nombre. 2) "Cual" es su nombre. 3) ¿Cual es su nombre? Tarea 1.
  2. Modo de evaluación. Posible acuerdo: 3 exámenes parciales por el 80% y 30% de tareas, proyectos, reportes y participación (promedio del parcial). $ P_p=(P_1+P_2+P_3)/3 $. Calificación Final = $ (P_p+E_g+1(Apuntes))/2 $. Escala: (0,6)-NA, [6,7.5)-S, [7.5-8.5)-B y [8.5,11] MB. $E_g$ Largo si reprobaste un parcial. Corto si los apruebas. Presentación del contenido del curso: 1. Estructuras ordenadas: arreglos, tuplas, listas, pilas, colas, cadenas y lenguajes. 2. Autómatas finitos y expresiones regulares. 3. Lenguajes regulares y no regulares. 4. Gramáticas libres de contexto. 5. Autómatas con pila. 6. Lenguajes de contexto libre y lenguajes que no son de contexto libre. 7. Máquinas de Turing. 8. Tesis de Church-Turing. 9. Lenguajes enumerables recursivamente.
  3. Teoría Axiomática de Conjuntos (Lectura 2, Paul Halmos). Definición de un Alfabeto $\Sigma$. $\phi$ conjunto vacío. $\ni$ símbolo nulo y su justificación.
  4. Solución Tarea. Tuplas, producto cruz y proyección. Especificación formal de Autómata Finito Determinístico: $AF$=($q_0$, $Q$,$F$,$\Sigma$,$\delta$) donde $q \in Q$, $Q$ conjunto finito de estados, $F \subset Q$, $\Sigma$ Alfabeto finito de símbolos, $\delta: Q \times \Sigma \to Q$ función de transición.
  5. Demostración y explicación del simulador de Autómatas Finitos Determinísticos en Matlab. En clase, se explicó y se mostró como funciona el simulador con el autómata de la clase anterior que detecta números pares. Los alumnos desarrollaron el ejemplo de un autómata que detecta la cadena 111 (de tres unos) y no importa lo que tenga antes o después.  Lo diseñaron mediante un diagrama de transiciones y luego definieron la tabla de estados finales y la tabla del AFD. Se escribieron los archivos y se realizaron algunas pruebas. Correctez es que un AFD debe funcionar para lo que fue especificado, de otra forma es incorrecto. Si solo se realizan algunas pruebas, el programa funciona para estas pruebas pero no es necesariamente correcto. La correctez debe ser una prueba lógica que abarque o sea exhaustiva de todos los casos posibles.
  6. Definición de $\Omega_{\Sigma}$. $x\in \Omega_{\Sigma}$, $|x| $ denota la longitud de una cadena $x$. Sea $s \in \Sigma$ entonces $sx$ es una cadena (concatenación). Dado un AFD = $(q_0,\Sigma, Q, F, \delta)$, se define la función de transición para cadenas $\widehat{\delta}: Q \times \Omega_{\Sigma} \to Q$ de forma recursiva. Finalmente, el lenguaje de un autómata AFD es L(AFD)=$\{ x\in \Omega_{\Sigma}   \,| \, \widehat{\delta}(q_0,x)\in F \}$.
  7. Dudas tarea 4.
  8. Motivación y definición del Autómata Finito Nodeterministico  AFN=$(q_0,\Sigma, Q, F, \delta_N)$ donde $\delta_N: Q \times \Sigma \to 2^Q.$
  9. Lunes 30 de septiembre. Construcción de $\widehat{\delta}_N$ $:2^Q  \times \Omega_{\Sigma} \to 2^Q$ y  L(AFN)=$\{ x\in \Omega_{\Sigma}   \,| \, \widehat{\delta}_N(\{q_0\},x) \cap F \neq \emptyset \}$. Prop. Dado un AFD, existe un AFN tal que L(AFD)=L(AFN).
  10.  Construcción de $\widehat{\delta}_\ni$ $:2^Q  \times \Omega_{\Sigma} \cup \{\ni\}\to 2^Q$ y  L(AFN$\,_{\ni}$)=$\{ x\in \Omega_{\Sigma}   \,| \, [ \widehat{\delta}_\ni(\{q_0\},x)]_\ni \cap F \neq \emptyset \}$. Donde $[q]_\ni$ es la clase de todos los estados relacionados con $q$ mediante una transición $\ni$.
  11. Prop. Dado un AFN=$(q_0,\Sigma, Q, F, \delta_N)$, existe un AFN$\,_{\ni}$ tal que L(AFN)=L(AFN$\,_{\ni}$). Expresiones regulares (ER) y su álgebra bajo las operaciones $+$ y concatenación.  Cerradura de Kleene ($\mathbf{s} ^*$). Reglas para construir un AFN$\,_{\ni}$ dada una ER.
  12. Clase de ejercicios.
  13. 1er. examen parcial.
  14. Viernes 11 de octubre. Solución del 1er. examen parcial. Revisión de exámenes y tareas.
 
  1. Teorema de Kleene. Dada una ER existe un AFD (AFN y AFN$\,_{\ni}$) tal que ER=L(AFD) y recíprocamente el lenguaje de un AFD  (AFN y AFN$\,_{\ni}$) es una ER. Motivación el lenguaje de los paréntesis apareados no corresponde a una ER. Necesidad de hacer explicita la prioridad en las expresiones de suma y producto, mediante el uso de paréntesis. Tipo de servicio: Ultimo que entra primero que sale. Estructura de datos Pila: funciones modificadoras: creación, push(obj), pop(). Funciones observadoras: es_vacia(). Componentes de un Autómata de pila determinístico y no determinístico. APD=($q_0$, $Q$,$\Sigma$,P,$\delta$) y APN=($q_0$, $Q$,$\Sigma$,P,$\delta_N$) donde $P$ es una pila, $\delta$ $:2^Q  \times \Omega_{\Sigma}\times Oper(Pila) \to Q$ y $\delta_N$ $:2^Q  \times \Omega_{\Sigma}\times Oper(Pila) \to 2^Q$ respectivamente ($Oper$ es abreviatura de operaciones).
  2. La visión de los lenguajes (y los autómatas) como resultado aún no explicado de los Mundos del Doctor Popper. Construcción del AFPD para el lenguaje de {(),(()),((())), ...}. Mapa de la situación actual para describir las transiciones del AFP: Estado, pila, cadena por leer  $\vdash$ (lo que sigue) Estado, pila, cadena por leer o $\ni$. Convención para que un AFPD o un AFPN acepte una cadena: debe terminar de leerla, con la pila vacía y sin fallos en las operaciones de pila.
  3. Ejemplo. Definición de $\vdash*$ y del lenguaje de un autómata de pila. Diseño de un  L(AFPD$\,_{\ni}$) para el lenguaje L={aA, bB, cC, abBA, acCA, abcCBA, bacCAB, aaabBAAA,...}. Ejemplos de cadenas aceptadas y cadenas rechazadas mapas de memoria o situación. Sugerencias para Tareas 8 y 9. Se acuerdan las fechas de entrega de las tareas 7,8 y 9.
  4. Repaso. Maquinas y funciones versus Sintaxis y gramáticas. Introducción a las gramáticas. Notación BNF. G=(<I>,$\Sigma$,M,R) donde <I>$\in$ M meta-símbolo inicial, $\Sigma$ alfabeto de símbolos terminales, M conjunto de meta-símbolos y R conjunto de reglas en BNF. Las gramáticas sirven para reconocimiento (de una cadena de símbolos terminales a <I> por medio de aplicar las reglas de derecha a izquierda) o para generación del lenguaje (de <I> a cadenas de terminales por medio de aplicar las reglas de derecha a izquierda). Árboles de sintaxis. Una gramáticas es ambigua si una cadena tiene dos árboles de sintaxis. Una gramática es independiente del contexto o libre de contexto si todas sus reglas tiene un meta-símbolo del lado derecho y del lado izquierdo cadenas de Meta-símbolos y símbolos terminales.  Ejemplos: Gramática no ambigua, gramática ambigua y gramática para expresiones aritméticas: L={a,b,a+b,a*b,a*b+a,a+b*a,...}.
  5. Ejercicios de gramáticas para 1) Lenguaje vacio $\phi$, 2) Lenguaje del símbolo nulo  {$\ni$}, 3) Lenguaje de la ER a, 4) Lenguaje de la ER a*, 5) Lenguaje de los paréntesis anidados, {$(^k)^k\,|\,k \geq 1$}. Los ejemplos muestran que las gramáticas son capaces de generar lenguajes de regulares y libres de contexto que son incluso los lenguajes que reconocen los autómatas de pila.

  6. Ejercicios.

  7. 2do examen parcial.

 

  1. Recapitulación Maquinas y estructuras gramaticales. Explicación de la equivalencia entra la Máquina de Turing y la Máquina de Von Newman. Codificación de una MT. La MT universal, la MT que lle una codificación de una MT para imitar el funcionamiento de la MT codificada.
  2. MT universal y MT con múltiples cintas. Ejemplos de como las MT determinan Lenguajes. Prop. No existe una MT que determine que toda MT se detiene.
  3. Viernes 15 de noviembre de 2019. No hay clase.
  4. MT con estados finales, funciones recursivas, lenguajes enumerables como ejemplo de lenguajes decidibles.
  5. Viernes 22. Repaso del curso para preparar Examen Final.

Materiales de lectura y referencias

  1. Libro recomendado: Teoría de Autómatas, Lenguajes y Computación
  2. Lectura: Conjuntos de Paul Halmos
  3. Lectura: La computacion como el quinto pilar
  4. Los tres mundos del Doctor Popper
  5. “La selección natural y el surgimiento de la mente”, paginas 25 a 42, Epistemología Evolucionista de Martinez-Olive, Compiladores, 1997.
  6. Les recomiendo todo el libro: Introducción a la Teoría de Autómatas, lenguajes y Computación, Hopcroft, Motwani, Ullman, págs. 74-74, 86-89.
  7. Lecturas de Jerarquia de Chomsky. Wikipedea y una Presentación.
  8. Máquina de Turing.
  9. Funciones recursivas.
  10. Carta de las 11 reglas de Bil Gates.
  11. Artículos de Test de Turing

    a) Turing Test: 50 Years Later.
    b) The Status and Future of the Turing Test.
    c) Is the Turing Test Still Relevant? A Plan for Developing the Cognitive Decathlon to Test Intelligent Embodied Behavior.
    d) Computing Machinery and Intelligence.

  12. Libro de cuentos (Lectura breve de la segunda clase): Las ventanas, María Elena Azpíroz, Casa de la Cultura Enrique Ramírez y Ramírez, 1981.

  13. Libro de filosofía (Lectura breve de la segunda clase): Cursos de Filosofía, Georges Politzer, Editores Mexicanos Unidos (EMU), 2014.

  14. Mathematical Theory of Computation, Zohar Manna, Dover, USA, 1974.

Cursos

home

This site was last updated 11/22/19