Modelos Avanzados de Computación

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

Máquinas de Turing. Definición 2

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

Tema 6: Máquina de Turing

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

Introducción a la indecidibilidad

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

Teoría de la Computación y Lenguajes Formales

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

AUTÓMATAS DE ESTADO FINITO

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

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

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

Teoría de la Computación y Leguajes Formales

Ciencias de la Computación I

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

Coordinación de Ciencias Computacionales INAOE. Teoría de Autómatas y Lenguajes Formales. Temario detallado para examen de ingreso 2012

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

13.3. MT para reconocer lenguajes

Pontificia Universidad Católica del Ecuador

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

Máquinas de estado finito y expresiones regulares

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

PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA DE SISTEMAS

Teoría de la Computabilidad

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

MÁQUINAS DE TURING Y LENGUAJES ESTRUCTURADOS POR FRASES

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

TRADUCTORES E INTERPRETADORES

Pontificia Universidad Católica del Ecuador

Definiciones previas

Problemas de Decisión

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

1. Cadenas EJERCICIO 1

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

Teoría de Autómatas, Lenguajes Formales y Gramáticas

PROGRAMA DE CURSO. Horas de Trabajo Personal Horas de Cátedra. Resultados de Aprendizaje

ESCUELA: UNIVERSIDAD DEL ISTMO

PRACTICA 10: Máquinas de Turing

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

Máquinas de Turing, recordatorio y problemas

Entscheidungsproblem I TEORÍA DE LA COMPUTACIÓN MÁQUINAS DE TURING Y DECIDIBILIDAD. Máquinas de Turing (TM) Procedimiento efectivo

Entscheidungsproblem I LENGUAJES RECURSIVAMENTE ENUMERABLES MÁQUINAS DE TURING. DECIDIBILIDAD. Máquinas de Turing (TM) Procedimiento efectivo

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

Autómatas de Estados Finitos

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

Fundamentos de Ciencias de la Computación

MÁQUINAS DE TURING CIENCIAS DE LA COMPUTACION I 2009

Teoría de Autómatas y Lenguajes Formales. Introducción a las Gramáticas. Gramáticas incontextuales

autómatas finitos y lenguajes regulares LENGUAJES FORMALES Y

Nombre de la asignatura : Lenguajes y Autómatas. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCB- 9324

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

Máquinas de Turing. 18 de junio de 2015

Problemas recursivamente enumerables

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

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

Curso Básico de Computación

Procesadores de Lenguaje

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

Reducibilidad. Se dice que f es computable si existe una MT que la computa y que siempre se detiene. f(w)

Problemas recursivamente enumerables

Lenguajes y Autómatas

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

PLANIFICACIÓN SEMANAL DE LA ASIGNATURA

Computabilidad y Lenguajes Formales: Autómatas de Pila

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

7.1 Máquina de Turing 7.5 Modificaciones de la máquina de Turing. Cinta infinita de doble vía

Teoría de Autómatas y Lenguajes Formales.

Compiladores: Sesión 3. Análisis léxico, expresiones regulares

Otras propiedades de los lenguajes regulares

Máquinas de Turing. Complexity D.Moshkovitz

Turing Machines and their applications

Curso Básico de Computación

Autómatas de Pila y Lenguajes Incontextuales

Facultad de Ingeniería de Sistemas 1.5 Carrera: Ingeniería de Sistemas 1.6 Código: ISI 1.7 Nivel: Pregrado

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

1. Probar pertenencia a Lenguajes libres de contexto

ORGANIZACIÓN DOCENTE del curso Teoría de Autómatas y Lenguajes Formales. Ayudante LSI. Prac. Problemas (2) Prac. Problemas. Prac.

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

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

IMPLEMENTACIÓN FÍSICA DE UNA MÁQUINA DE TURING USANDO LEGOS. Instituto Tecnológico de León.

La máquina de Turing

LENGUAJES FORMALES, AUTÓMATAS Y COMPUTABILIDAD

UNIVERSIDAD NACIONAL AUTÓNOMA LICENCIADO EN CIENCIAS DE LA COMPUTACIÓN

Autómatas Finitos Deterministicos (DFA)

Equivalencia Entre PDA y CFL

Introducción TEORÍA DE LA COMPUTACIÓN INTRODUCCIÓN. Lógica

Problemas indecidibles

Máquina de estado finito con salida sin salida

Autómatas Finitos Deterministicos (DFA)

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática

8 Indecibilidad. 8.1 Problemas

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Lenguajes formales, automatas y computabilidad. CURSO ACADÉMICO - SEMESTRE Primer semestre

Autómatas Finitos Deterministicos (DFA) Introducción a la Complejidad Computacional FFHA, Universidad Nacional de San Juan

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY

1) Comprender la importancia que tiene la Máquina de Turing para la Ciencia de la Computación.

Transcripción:

UNIVERSIDAD DE GRANADA Departamento de Ciencias de la Computación e Inteligencia Artificial Modelos Avanzados de Computación Práctica 2 Máquinas de Turing Curso 2014-2015 Doble Grado en Ingeniería Informática y Matemáticas

Práctica 2 Máquinas de Turing Un lenguaje L es recursivamente enumerable (r.e.) si y sólo si existe una máquina de Turing M tal que L(M) = L; esto es, existe una máquina de Turing que reconoce el lenguaje. Un lenguaje es recursivo (o, simplemente, decidible) si es aceptado por una MT que siempre para. 1. El origen de los términos recursivamente enumerable y recursivo proviene de una variante de la máquina de Turing denominada enumerador. Informalmente, un enumerador es una máquina de Turing con una impresora asociada, que puede utilizar como dispositivo de salida para imprimir cadenas de símbolos. Un enumerador E comienza con una entrada en blanco en su cinta de trabajo. Si no se detiene, podría imprimir una lista infinita de cadenas. El lenguaje enumerado por E es el conjunto de cadenas que eventualmente imprime. Un lenguaje es recursivamente enumerable si existe un enumerador que lo enumera (en cualquier orden y con posibles repeticiones). Como sucede con otros muchos modelos de cómputo, se puede demostrar la equivalencia de los enumeradores con las máquinas de Turing tradicionales. Hágalo. [Michael Sipser: Introduction to the Theory of Computation, 3rd edition, pp. 180-182] 2. Discuta la posibilidad de asignar un número natural a cada MT con independencia del alfabeto de entrada. 3. Sean L 1,...,L k un conjunto de lenguajes sobre el alfabeto A tales que: a) Para cada i j, tenenos que L i L j =. b) k i=1 L i = A. c) i {1,...,k}, el lenguaje L i es r.e. Demostrar que i {1,...,k}, el lenguaje L i es recursivo. [John Hopcroft s Introduction to Automata Theory, 2nd edition, exercise 9.2.4] 1

2 4. Sea L r.e., pero no recursivo. Considérese el lenguaje L = {0w w L} {1w w L} Puede asegurarse que L o su complementario sean recursivos, r.e. o no r.e.? [John Hopcroft s Introduction to Automata Theory, 2nd edition, exercise 9.2.5] 5. Estudie si las clases de lenguajes recursivos y recursivamente enumerables son cerradas para las siguientes operaciones: a) Unión. b) Intersección. c) Concatenación. d) Clausura. e) Homomorfismo. f) Homomorfismo inverso. [John Hopcroft s Introduction to Automata Theory, 2nd edition, exercise 9.2.6] 6. El problema de la parada: Demuestre que el lenguaje asociado al conjunto de parejas (M,w) tales que la MT M para cuando tiene a w como entrada es recursivamente enumerable pero no recursivo. [John Hopcroft s Introduction to Automata Theory, 2nd edition, exercise 9.2.1] 7. Determine si los siguientes lenguajes son recursivos, r.e. o no r.e.: a) Determinar si el lenguaje de una MT contiene, al menos, dos palabras distintas. b) Determinar si el lenguaje de una MT es finito o infinito. c) Determinar si el lenguaje de una MT es independiente del contexto. d) Determinar si L(M) = (L(M)) R. e) Determinar si una MT con dos o más estados entrará alguna vez en un estado q. f) Determinar si una MT termina escribiendo un 1 cuando comienza con una cinta completamente en blanco. g) El conjunto de las MT que aceptan al menos un palíndromo. h) El conjunto de las MT que se paran para cualquier entrada. i) El conjunto de las MT que no se paran para ninguna entrada.

3 j) El conjunto de las MT que se paran, al menos, para una entrada. k) El conjunto de las MT que no se paran, al menos, para una entrada. l) El lenguaje L formado por pares de códigos de MT más un entero (M 1,M 2,k) tales que L(M 1 ) L(M 2 ) contiene, al menos, k palabras. [John Hopcroft s Introduction to Automata Theory, 2nd edition, exercise 9.3.x] 8. Demuestre que las siguientes cuestiones son decidibles: a) El conjunto de las MT M tales que, al comenzar con la cinta en blanco, en algún momento escribirán un símbolo no blanco en la cinta. b) El conjunto de las MT que nunca se mueven a la izquierda. c) El conjunto de los pares (M,w) tales que M, al actuar sobre la entrada w, nunca lee una casilla de la cinta más de una vez. [John Hopcroft s Introduction to Automata Theory, 2nd edition, exercise 9.3.6] 9. El castor atareado [busy beaver]: Imagine una máquina de Turing que comienza con una cinta completamente en blanco y, eventualmente, para. Si la máquina deja n unos en la cinta cuando para, diremos que la productividad de la máquina es n. También diremos que la productividad de una máquina de Turing que no para es 0. La productividad, por tanto, es una función de números naturales (códigos de máquinas de Turing) a números naturales. Escribiremos p(t)=n para indicar que la productividad de la máquina T es n. De entre las máquinas de Turing con un número concreto de estados, existe una productividad máquina que una máquina de Turing con ese número de estados puede tener. Esto nos permite definir otra función de números naturales (el número de estados) a números naturales (la productividad máxima de una máquina con ese número de estados). Indicaremos mediante BB(k)=n el hecho de que la productividad máxima de una máquina de Turing con k estados es n. Pueden existir múltiples máquinas de Turing con k estados que alcancen dicha productividad, a las que llamaremos castores atareados [busy beaver]. Demuestre que no existe ninguna máquina de Turing que sea capaz de calcular la función BB(k); esto es, que comenzando con una cinta con k 1 s se detenga cuando en la cinta queden BB(k) 1 s. NOTA: La función BB(k) crece más rápido que cualquier función computable. Tibor Rado: On non-computable functions. Bell System Technical Journal 41(3):877-884, May 1962. DOI 10.1002/j.1538-7305.1962.tb00480.x.

4 Ejercicios complementarios A continuación se incluyen algunos ejercicios adicionales que puede realizar si desea mejorar su destreza a la hora de trabajar con máquinas de Turing: 1. Utilice algún simulador de máquinas de Turing disponible en Internet para diseñar máquinas de Turing que reconozcan los siguientes lenguajes: Palabras sobre el alfabeto {0,1} con el mismo número de ceros que de unos. L = {a n b n c n n 1} L = {ww 1 w {0,1} } L = {wcw w {0,1} } Puede utilizar un simulador escrito en JavaScript como el disponible en http: //morphett.info/turing/turing.html, que puede utilizar directamente en su navegador web, o descargar un simulador como JFLAP, implementado en Java y disponible en http://jflap.org/. [John Hopcroft s Introduction to Automata Theory, 2nd edition, exercise 8.2.2] 2. Construya una MT que, dada una entrada w, la convierta en una salida w111w. 3. Diseñe una máquina de Turing que haga algo útil distinto a los ejemplos vistos en clase (y a los programas de ejemplo del simulador). 4. Diseñe una subrutina que desplace a la derecha todos los símbolos de la cinta desde la posición actual, dejando un espacio en dicha posición (para que se pueda insertar un nuevo símbolo en ella). La subrutina debe terminar con el cabezal de lectura en la misma posición en la que empezó. Pista: Utilice un símbolo especial para marcar la posición a la que debe volver el cabezal. [John Hopcroft s Introduction to Automata Theory, 2nd edition, exercise 8.3.2] 5. Diseñe una MT con dos cintas que, dada una secuencia de unos de longitud n en la primera cinta, calcule en la segunda cinta el valor de n en binario. 6. Considere la MTND M = ({q 0,q 1,q 2,q f },{0,1},{0,1,#},δ,q 0,#,{q f }) con δ(q 0,0) = {(q 0,1,D),(q 1,1,D)} δ(q 1,1) = {(q 2,0,I)} δ(q 2,1) = {(q 0,1,D)} δ(q 1,#) = {(q f,#,d)} Describa el lenguaje generado por esta máquina de Turing no determinista. [John Hopcroft s Introduction to Automata Theory, 2nd edition, exercise 8.4.4]