TRADUCTORES E INTERPRETADORES

Documentos relacionados
Departamento de Tecnologías de la Información. Tema 5. Decidibilidad. Ciencias de la Computación e Inteligencia Artificial

Departamento de Tecnologías de la Información. Tema 4. Máquinas de Turing. Ciencias de la Computación e Inteligencia Artificial

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD CIENCIAS DE LA COMPUTACIÓN

Ciencias de la Computación I

Ciencias de la Computación I

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Máquinas de Turing

MÁQUINAS DE TURING CIENCIAS DE LA COMPUTACION I 2009

13.3. MT para reconocer lenguajes

Modelos Avanzados de Computación

Máquina de estado finito con salida sin salida

Teoría Matemática de la Computación Segundo Problemario Prof. Miguel A. Pizaña 13 de julio de 2016

Problemas de Decisión

Fundamentos de Ciencias de la Computación

Jerarquía de Chomsky. 1. Clasificación de gramáticas. 2. Clasificación de lenguajes. 3. Gramáticas regulares. 5. Gramáticas dependientes del contexto

MÁQUINAS DE TURING Y LENGUAJES ESTRUCTURADOS POR FRASES

Temas. Objetivo. Que el estudiante logre:

Tema 6: Máquina de Turing

5. Propiedades de los Lenguajes Recursivamente Enumerables y de los Lenguajes Recursivos.

Máquinas de Turing. Definición 2

Complejidad computacional (Análisis de Algoritmos)

Máquinas de estado finito y expresiones regulares

Análisis y Diseño de Algoritmos

Teoría de la Computación y Leguajes Formales

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY

7. ( ) Describe una máquina de Turing que acepte el siguiente lenguaje: L = {a n b n n>0}. L = {a n b n c n n>0}. L = {xcx x {a, b} + }.

Máquinas de Turing Definición y descripción

Introducción a las Ciencias de la Computación

Examen. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003.

Capítulo 9. Introducción a los lenguajes formales. Continuar

Teoría de Autómatas y Lenguajes Formales.

Máquinas de Turing. Gálvez Martínez Ernesto Sánchez Sandoval David Isaac Villegas Rosales Erik Salazar Santiago Juan Carlos

Diseño estructurado de algoritmos. Sesión 8: Estructuras Algorítmicas

MODELOS DE COMPUTACION Y COMPLEJIDAD

Turing Machines and their applications

Autómatas de Estados Finitos

Temas finales de Teoría de Autómatas y Lenguajes Formales II Curso

Curso: Teoría de la Computación. Unidad 2, Sesión 7: Complejidad computacional

Matemática computable

Procesadores de Lenguaje

Problemas recursivamente enumerables

Máquinas de Turing. Complexity D.Moshkovitz

Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III

Universidad de Valladolid

Problemas recursivamente enumerables

CONJUNTOS REGULARES. Orlando Arboleda Molina. 19 de Octubre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Reducibilidad

Problemas fáciles, difíciles e imposibles

AUTÓMATAS, GRAMÁTICAS Y LENGUAJES

Computabilidad y aleatoriedad

Hablemos de las prácticas

Introducción a la indecidibilidad

Modelos de Informática Teórica Capítulo 2 - Clases de Complejidad

Teoría de la Computación y Lenguajes Formales

L = {a n b n n>0}. L = {a n b n c n n>0}. L = {xcx x {a, b} + }.

Teoría de Lenguajes y Autómatas Conceptos y teoremas fundamentales

Los modelos abstractos de cómputo. Tema 1: Introducción. El modelo transductor. El modelo reconocedor. ordenador. datos. Modelo Abstracto de Cómputo

CLASES DE PROBLEMAS. 1) Introducción 2) Problemas de decisión, Lenguajes, Codificación. y la clase NP-Completa. 6) Otras clases de problemas NP-

8 Indecibilidad. 8.1 Problemas

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

7. Máquinas de Turing.

Problemas computacionales, intratabilidad y problemas NP completos. Febrero Facultad de Ingeniería. Universidad del Valle

Tema 1: Introducción. Teoría de autómatas y lenguajes formales I

Introducción: historia de las Ciencias de la Computación. Informática Teórica I: Tema 1

Teoría de la Computación Lenguajes Regulares (LR) - Propiedades

Temas. Objetivo. Símbolo, alfabeto. Hileras y operaciones con hileras. Operaciones con lenguajes

Diseño Estructurado de Algoritmo

Tema 4. Autómatas Finitos

Teoría de Autómatas y Lenguajes Formales Equivalencia de Conjuntos Pruebas por Inducción

14 Lenguajes y gramáticas II

1 De niciones básicas

Teoría de la Computación y Lenguajes Formales

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila.

MODELOS DE COMPUTACIÓN Y COMPLEJIDAD

Examen de Teoría de Autómatas y Lenguajes Formales

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos

P vs NP. Frank Vega Delgado 1

ALGORITMOS DIGITALES II. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

la máquina de Turing (MT) como sustituto formal del concepto de algoritmo 0 0 r 1

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

TRADUCTORES E INTERPRETADORES

7 Máquina de Turing. 7.1 Introducción. 7.2 El modelo de la Máquina de Turing

si w=ay por tanto a Σ e y Σ*

Curso Básico de Computación

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

MODELOS DE COMPUTACIÓN CRISTIAN ALFREDO MUÑOZ ALVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACON PEÑA EDUARDO GONZALES PULGARIN

Lenguajes y Compiladores Análisis Léxico

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Decidibilidad

TRADUCTORES E INTERPRETADORES

Alfabetos y cadenas (1) Alfabetos y cadenas (2) Lenguajes. Propiedades de la concatenación:

1. Programas y funciones computables

Análisis asintótico de algoritmos

Diseño estructurado de algoritmos. Sesión 1: Conceptos de algoritmos

como les va con las practicas?

f(x, y) = 2xy (2xy + 1)... (2xy + y) 4. Demostrar que existe una funcion primitiva recursiva g(u,v) tal que

Propiedad esencial de los LR. Tema 12. Propiedad esencial de los LR. Las clases de cadenas. Perdón el terreno es resbaladizo!

22/09/2010. Autómata Mínimo

Transcripción:

TRADUCTORES E INTERPRETADORES Clase 15: Tipos de Máquinas de Turing

Agenda Reconocedores vs. Decididores Computadores Enumeradores

Agenda Reconocedores vs. Decididores Computadores Enumeradores No existe en el castellano, pero no importa

Reconocedores vs. Decididores Como vimos la clase pasada, una Máquina de Turing es un autómata aumentado con una cinta que puede recorrerse arbitrariamente.

Reconocedores vs. Decididores Como vimos la clase pasada, una Máquina de Turing es un autómata aumentado con una cinta que puede recorrerse arbitrariamente. Una máquina de Turing puede comportarse de 3 maneras diferentes dada una entrada en particular:

Reconocedores vs. Decididores Como vimos la clase pasada, una Máquina de Turing es un autómata aumentado con una cinta que puede recorrerse arbitrariamente. Una máquina de Turing puede comportarse de 3 maneras diferentes dada una entrada en particular: Terminar su ejecución y Aceptar.

Reconocedores vs. Decididores Como vimos la clase pasada, una Máquina de Turing es un autómata aumentado con una cinta que puede recorrerse arbitrariamente. Una máquina de Turing puede comportarse de 3 maneras diferentes dada una entrada en particular: Terminar su ejecución y Aceptar. Terminar su ejecución y Rechazar.

Reconocedores vs. Decididores Como vimos la clase pasada, una Máquina de Turing es un autómata aumentado con una cinta que puede recorrerse arbitrariamente. Una máquina de Turing puede comportarse de 3 maneras diferentes dada una entrada en particular: Terminar su ejecución y Aceptar. Terminar su ejecución y Rechazar. No terminar su ejecución.

Reconocedores vs. Decididores El lenguaje reconocido por una Máquina de Turing son todas aquellas frases que, al ser usadas como entrada, hacen que la Máquina termine y acepte.

Reconocedores vs. Decididores El lenguaje reconocido por una Máquina de Turing son todas aquellas frases que, al ser usadas como entrada, hacen que la Máquina termine y acepte. Nótese que esta definición no dice nada sobre las frases que no estén en el Lenguaje.

Reconocedores vs. Decididores El lenguaje reconocido por una Máquina de Turing son todas aquellas frases que, al ser usadas como entrada, hacen que la Máquina termine y acepte. Nótese que esta definición no dice nada sobre las frases que no estén en el Lenguaje. En cualquier otro caso la Máquina puede terminar rechazando, pero también puede continuar ejecutándose infinitamente.

Reconocedores vs. Decididores Si una Máquina de Turing termina siempre, entonces decimos que dicha Máquina es un Decididor.

Reconocedores vs. Decididores Si una Máquina de Turing termina siempre, entonces decimos que dicha Máquina es un Decididor. Si una Máquina de Turing puede o no terminar, entonces decimos que dicha Máquina es un Reconocedor.

Reconocedores vs. Decididores Si una Máquina de Turing termina siempre, entonces decimos que dicha Máquina es un Decididor. El Lenguaje cuyas frases hacen que la máquina acepte es el lenguaje decidido por el Decididor. Si una Máquina de Turing puede o no terminar, entonces decimos que dicha Máquina es un Reconocedor. El Lenguaje cuyas frases hacen que la máquina acepte es el lenguaje reconocido por el Reconocedor.

Reconocedores vs. Decididores La clase de Lenguajes para los cuales existe un Decidor que los decida, se denominan: RECURSIVOS

Reconocedores vs. Decididores La clase de Lenguajes para los cuales existe un Decidor que los decida, se denominan: RECURSIVOS La clase de Lenguajes para los cuales existe un Reconocedor que los reconozca, se denominan: RECURSIVAMENTE ENUMERABLES

Reconocedores vs. Decididores Se le ocurre algún Lenguaje Recursivo?

Reconocedores vs. Decididores Se le ocurre algún Lenguaje Recursivo? Todos los Lenguajes Regulares son Recursivos. Todos los Lenguajes Libres de Contexto son Recursivos.

Reconocedores vs. Decididores Se le ocurre algún Lenguaje Recursivo? Todos los Lenguajes Regulares son Recursivos. Todos los Lenguajes Libres de Contexto son Recursivos. p { 1 p es primo}

Reconocedores vs. Decididores Se le ocurre algún Lenguaje Recursivo? Todos los Lenguajes Regulares son Recursivos. Todos los Lenguajes Libres de Contexto son Recursivos. p { 1 p es primo} { w n w { a, b} * n 0}

Reconocedores vs. Decididores Se le ocurre algún Lenguaje Recursivo? Todos los Lenguajes Regulares son Recursivos. Todos los Lenguajes Libres de Contexto son Recursivos. p { 1 p es primo} { w n w { a, b} Y muchos otros * n 0}

Reconocedores vs. Decididores Se le ocurre algún Lenguaje Recursivo? Todos los Lenguajes Regulares son Recursivos. Todos los Lenguajes Libres de Contexto son Recursivos. p { 1 p { w n es primo} w { a, b} Y muchos otros * n 0} Se les ocurre algún Lenguaje Recursivamente Enumerable? Y que no sea Recursivo también?

Reconocedores vs. Decididores Se le ocurre algún Lenguaje Recursivo? Todos los Lenguajes Regulares son Recursivos. Todos los Lenguajes Libres de Contexto son Recursivos. p { 1 p { w n es primo} w { a, b} Y muchos otros * n 0} Se les ocurre algún Lenguaje Recursivamente Enumerable? Y que no sea Recursivo también? El problema de la parada

Se les ocurre algún Lenguaje que NO sea Recursivamente Enumerable?

Se les ocurre algún Lenguaje que NO sea Recursivamente Enumerable? El complemento del problema de la parada (pertenece a la clase de Lenguaje Co-Recursivamente Enumerables)

Se les ocurre algún Lenguaje que NO sea Recursivamente Enumerable? El complemento del problema de la parada (pertenece a la clase de Lenguaje Co-Recursivamente Enumerables) Habrá algún Lenguaje que no sea Recursivamente Enumerable, ni Co-Recursivamente Enumerable?

Se les ocurre algún Lenguaje que NO sea Recursivamente Enumerable? El complemento del problema de la parada (pertenece a la clase de Lenguaje Co-Recursivamente Enumerables) Habrá algún Lenguaje que no sea Recursivamente Enumerable, ni Co-Recursivamente Enumerable? Conjuntos incontables al rescate!

Computadores Dado que las Máquinas de Turing pueden aceptar o rechazar, independientemente del contenido final de su cinta Por qué no usar el estado final de la cinta para describir algo útil? Por ejemplo, para calcular el resultado de una función.

Computadores Dado que las Máquinas de Turing pueden aceptar o rechazar, independientemente del contenido final de su cinta Por qué no usar el estado final de la cinta para describir algo útil? Por ejemplo, para calcular el resultado de una función. Si la función calculada siempre arroja un resultado (la máquina siempre termina), se dice que la función es computable.

Computadores Dado que las Máquinas de Turing pueden aceptar o rechazar, independientemente del contenido final de su cinta Por qué no usar el estado final de la cinta para describir algo útil? Por ejemplo, para calcular el resultado de una función. Si la función calculada siempre arroja un resultado (la máquina siempre termina), se dice que la función es computable. A la máquina que computa una función se le llama Computador.

Computadores Generalmente, los Computadores utilizan al menos dos cintas. Una cinta de entrada. Una cinta de salida.

Computadores Generalmente, los Computadores utilizan al menos dos cintas. Una cinta de entrada. Una cinta de salida. De todas formas, vimos que una Máquina de Turing de varias cintas es equivalente a una Máquina de Turing de una sola cinta.

Computadores Un momento Las Máquinas de Turing sirven para reconocer Lenguajes. Pero ahora vemos que también sirven para computar funciones. Computar funciones es equivalente a reconocer lenguajes?

Computadores Un momento Las Máquinas de Turing sirven para reconocer Lenguajes. Pero ahora vemos que también sirven para computar funciones. Computar funciones es equivalente a reconocer lenguajes? De aquí unos de los principios mas importantes de la computación TODO ES UN LENGUAJE! (Clase 0)

Computadores Toda solución a un problema en particular tiene una codificación. Resolver un problema es equivalente a conseguir un conjunto de codificaciones válidas para el mismo.

Computadores Toda solución a un problema en particular tiene una codificación. Resolver un problema es equivalente a conseguir un conjunto de codificaciones válidas para el mismo. Por ejemplo: Es G un grafo planar? Pertenece la codificación de G al conjunto de codificaciones de grafos, tal que los mismos son planares?

Computadores Toda solución a un problema en particular tiene una codificación. Resolver un problema es equivalente a conseguir un conjunto de codificaciones válidas para el mismo. Por ejemplo: Es G un grafo planar? Pertenece la codificación de G al conjunto de codificaciones de grafos, tal que los mismos son planares? Conclusión: Reconocer lenguajes es equivalente a resolver problemas.

Computadores Ejemplo: Dado un número en binario, calcular su sucesor:

Computadores Ejemplo: Dado un número en binario, calcular su sucesor: Se recorre la frase de entrada hasta alcanzar un blanco, copiando el contenido de la cinta de entrada en la cinta de salida.

Computadores Ejemplo: Dado un número en binario, calcular su sucesor: Se recorre la frase de entrada hasta alcanzar un blanco, copiando el contenido de la cinta de entrada en la cinta de salida. Se retrocede una casilla en ambas cintas.

Computadores Ejemplo: Dado un número en binario, calcular su sucesor: Se recorre la frase de entrada hasta alcanzar un blanco, copiando el contenido de la cinta de entrada en la cinta de salida. Se retrocede una casilla en ambas cintas. Si la casilla apuntada es 0 o, se coloca un 1 y la Máquina acepta.

Computadores Ejemplo: Dado un número en binario, calcular su sucesor: Se recorre la frase de entrada hasta alcanzar un blanco, copiando el contenido de la cinta de entrada en la cinta de salida. Se retrocede una casilla en ambas cintas. Si la casilla apuntada es 0 o, se coloca un 1 y la Máquina acepta. Si la casilla apuntada es un 1, se coloca un cero y se retrocede una casilla.

Computadores Ejemplo: Dado un número en binario, calcular su sucesor: Se recorre la frase de entrada hasta alcanzar un blanco, copiando el contenido de la cinta de entrada en la cinta de salida. Se retrocede una casilla en ambas cintas. Si la casilla apuntada es 0 o, se coloca un 1 y la Máquina acepta. Si la casilla apuntada es un 1, se coloca un cero y se retrocede una casilla. El autómata les queda de ejercicio a ustedes.

Enumeradores Los Lenguajes Recursivamente Enumerables deben su nombre a que sus frases pueden enumerarse. Esto es, es posible realizar una biyección de dicho Lenguaje con un subconjunto de los números naturales.

Enumeradores Los Lenguajes Recursivamente Enumerables deben su nombre a que sus frases pueden enumerarse. Esto es, es posible realizar una biyección de dicho Lenguaje con un subconjunto de los números naturales. Esto también induce un orden sobre las frases del Lenguaje.

Enumeradores Los Lenguajes Recursivamente Enumerables deben su nombre a que sus frases pueden enumerarse. Esto es, es posible realizar una biyección de dicho Lenguaje con un subconjunto de los números naturales. Esto también induce un orden sobre las frases del Lenguaje. Una Máquina de Turing que genere cada frase de un Lenguaje, en algún determinado orden, se conoce como un Enumerador.

Enumeradores Los Reconocedores y Decididores, cuando aceptan o rechazan, ignoran el estado actual de la cinta.

Enumeradores Los Reconocedores y Decididores, cuando aceptan o rechazan, ignoran el estado actual de la cinta. Los Computadores, cuando aceptan o rechazan, dejan en la cinta información de utilidad que puede ser consultada luego.

Enumeradores Los Reconocedores y Decididores, cuando aceptan o rechazan, ignoran el estado actual de la cinta. Los Computadores, cuando aceptan o rechazan, dejan en la cinta información de utilidad que puede ser consultada luego. Los Enumeradores, pueden terminar o no, pero en todo momento, la información de la cinta es relevante y puede ser consultada.

Enumeradores Los Reconocedores y Decididores, cuando aceptan o rechazan, ignoran el estado actual de la cinta. Los Computadores, cuando aceptan o rechazan, dejan en la cinta información de utilidad que puede ser consultada luego. Los Enumeradores, pueden terminar o no, pero en todo momento, la información de la cinta es relevante y puede ser consultada. Es útil una Máquina que nunca termine?

Enumeradores Generalmente, los Enumeradores utilizan al menos tres cintas. Una cinta de entrada. Una cinta de trabajo. Una cinta de salida.

Enumeradores Generalmente, los Enumeradores utilizan al menos tres cintas. Una cinta de entrada. Una cinta de trabajo. Una cinta de salida. La cinta de salida siempre es relevante, por lo que los cálculos intermedio deben hacerse en la cinta de trabajo. La cinta de salida contiene los elementos del lenguaje que se desea enumerar, separados por algún símbolo adicional.

Enumeradores Ejemplo: Enumerar todos los números binarios que son primos.

Enumeradores Ejemplo: Enumerar todos los números binarios que son primos. Se pueden usar máquinas ya hechas y componerlas: Computador que sabe generar sucesores. Decididor para el Lenguaje de los números primos.

Enumeradores Ejemplo: Enumerar todos los números binarios que son primos. Se pueden usar máquinas ya hechas y componerlas: Computador que sabe generar sucesores. Decididor para el Lenguaje de los números primos. Se comienza con la frase 10 en la cinta de trabajo.

Enumeradores Ejemplo: Enumerar todos los números binarios que son primos. Se pueden usar máquinas ya hechas y componerlas: Computador que sabe generar sucesores. Decididor para el Lenguaje de los números primos. Se comienza con la frase 10 en la cinta de trabajo. Repetir: Decidir si la frase en la cinta de trabajo corresponde a un número primo. Si es primo, copiar a la cinta de salida junto con un separador. Generar el sucesor y reemplazarlo en la cinta de trabajo.

Enumeradores En conclusión, hay diferentes tipos de Máquina de Turing, diseñadas para cumplir diferentes propósitos.

Enumeradores En conclusión, hay diferentes tipos de Máquina de Turing, diseñadas para cumplir diferentes propósitos. Resolver problemas algorítmicos viene a ser un caso particular de reconocimiento de Lenguajes.

Enumeradores En conclusión, hay diferentes tipos de Máquina de Turing, diseñadas para cumplir diferentes propósitos. Resolver problemas algorítmicos viene a ser un caso particular de reconocimiento de Lenguajes. Esto clasifica los problemas como se clasifican los Lenguajes? Estudiar esta relación nos lleva al tema de la complejidad de algoritmos.

Enumeradores En conclusión, hay diferentes tipos de Máquina de Turing, diseñadas para cumplir diferentes propósitos. Resolver problemas algorítmicos viene a ser un caso particular de reconocimiento de Lenguajes. Esto clasifica los problemas como se clasifican los Lenguajes? Estudiar esta relación nos lleva al tema de la complejidad de algoritmos. Comenzaremos a estudiarlo la clase que viene

Enumeradores En conclusión, hay diferentes tipos de Máquina de Turing, diseñadas para cumplir diferentes propósitos. Resolver problemas algorítmicos viene a ser un caso particular de reconocimiento de Lenguajes. Esto clasifica los problemas como se clasifican los Lenguajes? Estudiar esta relación nos lleva al tema de la complejidad de algoritmos. Comenzaremos a estudiarlo la clase que viene Insensibles u_u Estas son las máquinas maaaaas bonitas que he implementado