La máquina de Turing

Documentos relacionados
Procesadores de Lenguaje

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

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

13.3. MT para reconocer lenguajes

Autómatas Finitos Deterministicos (DFA)

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

Autómatas de Pila y Lenguajes Incontextuales

Unidad 4. Autómatas de Pila

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

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

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

Procesadores de Lenguaje

El Autómata con Pila

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

Equivalencia Entre PDA y CFL

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

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

Autómatas Mínimos. Encontrar el autómata mínimo. Universidad de Cantabria. Introducción Minimización de Autómatas Deterministas Resultados Algoritmo

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

Tema: Autómata de Pila

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

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

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 3.1: Autómatas Finitos Deterministas

Expresiones regulares, gramáticas regulares

Computabilidad y Lenguajes Formales: Autómatas Finitos

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

Complejidad computacional (Análisis de Algoritmos)

El Autómata con Pila: Transiciones

Clase 17: Autómatas de pila

Computabilidad y Lenguajes Formales: Autómatas de Pila

Lenguajes y Gramáticas

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo.

Una (muy) breve introducción a la teoría de la computación

Problemas indecidibles

Tema 6: Teoría Semántica

Teoría de Lenguajes. Gramáticas incontextuales

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES

Grupos libres. Presentaciones.

Un autómata con pila no determinista (APND) es una septupla Q A B F en la que

Introducción a Autómatas Finitos

Teoría de Lenguajes. Clase Teórica 7 Autómatas de Pila y Lenguajes Independientes del Contexto Primer cuartimestre 2014

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:

TEMA 1: NÚMEROS NATURALES. SISTEMA DE NUMERACIÓN

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S

Modelos Computacionales

Algebra lineal y conjuntos convexos

ESCUELA: UNIVERSIDAD DEL ISTMO

6. Autómatas a Pila. Grado Ingeniería InformáDca Teoría de Autómatas y Lenguajes Formales

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Apuntes de Teoría de Autómatas y Lenguajes Formales. Gloria Martínez

Gramáticas independientes del contexto AUTÓMATAS Y LENGUAJES FORMALES LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I

520142: ALGEBRA y ALGEBRA LINEAL

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

ESCUELA DE INFORMÁTICA

Pablo Cobreros Tema 6. El tamaño del infinito

Ingeniería en Computación. Autómatas y Lenguajes Formales. Unidad de competencia IV: Conocer, utilizar y diseñar gramáticas de libre contexto

Paso 1: Autómata. A 1 sin estados inútiles, que reconoce el lenguaje denotado por a a* b*

MMAF: Espacios normados y espacios de Banach

8.1 Indecibilidad 8.5 Indecibilidad en el problema de la correspondencia de Post

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R.

Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 3: Relaciones, Funciones, y Notación Asintótica

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD DE CIENCIAS PROGRAMA DE MATEMÁTICAS PLAN DE ESTUDIOS

Expresiones Regulares y Derivadas Formales

LENGUAJES FORMALES Y AUTÓMATAS

Teoría de Autómatas y Lenguajes Formales. Laura M. Castro Souto

MÁQUINAS DE TURING: PROBLEMAS INDECIDIBLES. Roberto J. de la Fuente López VERSION

Tema 1. Espacios Vectoriales Definición de Espacio Vectorial

Autómatas finitos no deterministas (AFnD)

Convertir un AFND a un AFD

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Propiedades de los Lenguajes de Contexto Libre

Autómatas Deterministas. Ivan Olmos Pineda

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

Pregunta 1 [40 puntos] Diga si las siguientes afirmaciones son verdaderas o falsas, demostrando su respuesta.

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Algebra Lineal. Gustavo Rodríguez Gómez. Verano 2011 INAOE. Gustavo Rodríguez Gómez (INAOE) Algebra Lineal Verano / 21

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo. Contenidos

2do. Parcial. Todos los ejercicios se entregarán en hojas separadas. El examen tipo test cuenta hasta 2 puntos sobre la nota total.

Los fundamentos de la matemática y los teoremas de Gödel

Guía. Álgebra II. Examen parcial III. Transformaciones lineales. Teoremas los más importantes cuyas demostraciones se pueden incluir en el examen

Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ).

Espacios vectoriales

Tema 2: Teorema de estructura de los grupos abelianos finitamente generados.

Una cadena sobre Σ es cualquier secuencia de elementos de longitud finita sobre Σ.

GRAMATICAS LIBRES DEL CONTEXTO

Métodos directos para resolver sistemas de ecuaciones lineales

Lenguajes (gramáticas y autómatas)

Clase 1: Primalidad. Matemática Discreta - CC3101 Profesor: Pablo Barceló. P. Barceló Matemática Discreta - Cap. 5: Teoría de números 1 / 32

Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad

Introducción al tipo Vector Cómo guardar una colección de datos conceptualmente relacionados? - almacenar los 100 primeros números primos, - al

Indecidibilidad Concepto de Problema. Índice General Introducción.

Introducción a los Sistemas Digitales. Conceptos básicos de matemática aplicada a los sistemas digitales

Transcripción:

La máquina de Turing José M. Sempere Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia David Hilbert (1862, Rusia 1943, Alemania) Matemático que aportó diversos resultados de carácter fundamental (i.e. espacios de Hilbert ) En 1900 durante el Segundo Congreso Internacional de las Matemáticas en Paris formuló su famosa lista de 23 problemas esenciales para el progreso en las matemáticas. Destacamos el problema número 23 que fue un detonante en el progreso en las ciencias de la computación. Podemos expresarlo como sigue Existe alguna formalización efectiva de las matemáticas? Es decir, existe algún sistema que permita expresar cualquier proposición matemática en forma simbólica y que habilite su demostración mediante un puro cálculo?

Kurt Gödel (1906, Aust.Hungria 1978, USA) Matemático. Su principal área de estudio se centra en los sistemas axiomáticos de las matemáticas influenciado por el trabajo de Russell En 1932 publica su resultado más notable: El Teorema de Incompletitud En cualquier sistema axiomático de las matemáticas existen proposiciones que no pueden demostrarse como ciertas o falsas Alonzo Church (1903, USA 1995,USA) Matemático. Su principal área de estudio se centra en la lógica matemática, la teoría de la recursión y la informática teórica ( theoretical computer science ). En 1930 crea el λ-cálculo que fundamenta algunos de los paradigmas de programación actuales. Fue supervisor de doctorado de Kleene y Turing. Su resultado más celebrado es el conocido como Teorema de Church (1936): No existe un procedimiento de decisión para el cálculo proposicional completo

Stephen Kleene (1909, USA 1994, USA) Matemático. Su principal área de estudio se centra en la teoría de los algoritmos y las funciones recursivas. Propone una definición sencilla y fundamental de las funciones recursivas que ayudaron a una mejor comprensión de los sistemas axiomáticos de primer orden de Gödel. Sus resultados más notables permitieron establecer qué funciones podían ser computables y también permitieron establecer grados en las funciones no computables (i.e. la Jerarquía Aritmética ) Emil Post (1897, Polonia 1954, USA) Matemático. Demostró la completitud y consistencia del cáculo proposicional propuesto por Russell y Whitehead en sus Principia Mathematica. Post descubrió con antelación algunos de los resultados que más tarde publicarían Gödel, Church y Turing. En 1936 propone la máquina de Post que incluye la noción de programa en un autómata. En 1947 demuestra como irresoluble el problema de palabras de un semigrupo propuesto por Thue en 1914 dando lugar al famoso Problema de la Correspondencia de Post.

Alan Turing (1912, Inglaterra 1954, Inglaterra) Matemático. Sus áreas de trabajo son múltiples e incluyen los estudios de algunos resultados de Russell y Gödel en relación con el problema 23 de Hilbert. En 1936 publica su famoso trabajo sobre decidibilidad en el que propone su más notable modelo matemático: la máquina de Turing Durante la II Guerra Mundial, Turing trabajó en letchley Park para la Escuela Estatal de Códigos y Cifras. Su trabajo más notable durante esta época fue el criptoanálisis de los códigos de la máquina Enigma alemana. Diseñó una máquina que resolvió con éxito tal problema: la bomba de Turing En 1950 publicó su trabajo sobre Máquinas que Computan e Inteligencia, proponiendo el famoso test de Turing para discernir si un computador puede llegar a ser inteligente. La máquina de Turing: : El modelo determinista (I) a 1 a 2 a 3 a 4 a 5 a 6 cinta de lectura/escritura cabeza de cinta control finito q Un movimiento de la máquina depende del estado del control finito y del símbolo analizado por la cabeza de cinta Un movimiento de la máquina implica: (a) Cambiar el estado del control finito (b) Escribir un símbolo en la celda analizada (c) Mover la cabeza de cinta una celda a la izda. o a la dcha.

La máquina de Turing: : El modelo determinista (II) M = (Q, Σ, Γ, δ, q 0,, F) δ: Q Γ Q Γ {L, R} descripción instantánea α β a 1 a 2 a 3 a 4 a 5 a 6 q α q β = a 1 a 2 a 3 q a 4 a 5 a 6 descripción instantánea α a 1 a 2 a 4 a 5 a 6 q α q β = a 1 a 2 a 4 a 5 a 6 q β a 1 a 2 a 4 a 5 a 6 q α q β = q a 1 a 2 a 4 a 5 a 6

transiciones entre descripciones instantáneas a 1 a 2 a 4 a 5 a 6 q D 1 = a 1 a 2 q a 4 a 5 a 6 a 1 a 2 Y a 5 a 6 p D 2 = a 1 a 2 Y p a 5 a 6 a 1 a 2 Y a 5 a 6 p D 3 = a 1 a 2 p Ya 5 a 6 D 1 D 2 sii δ(q, a 4 ) = (p, Y, R) M D 1 D 3 sii δ(q, a 4 ) = (p, Y, L) M transiciones entre descripciones instantáneas M * es la clausura reflexiva y transitiva de la relación M D i D i+k sii (a) D i = D M * i+k (b) D i+1 D i+2... D i+k-1 1 k D i M D i+1 M D i+2 M... M D i+k-1 M D i+k

Condición de parada Una máquina de Turing M estará en movimiento siempre que pueda aplicar una transición de la función δ o no realice ningún movimiento a la izquierda del límite de la cinta. Asumimos que en la función δ nunca se definen movimientos a partir de estados finales. Descripción instantánea inicial w q 0 w w 1 w 2 w 3...... w n q 0 Lenguaje aceptado por la máquina M M = (Q, Σ, Γ, δ, q 0,, F) L(M) = { w Σ * : q 0 w α q β, q F, αβ Γ * } M * Ejemplo 1 L(M) = { 0 n 1 n : n 1 } M = ({q 0, q 1, q 2, q 3, q 4 }, {0, 1}, {0, 1, X, Y, }, δ, q 0,, {q 4 }) 0 1 X Y q 0 (q 1,X,R) (q 3,Y,R) q 1 (q 1,0,R) (q 2,Y,L) (q 1,Y,R) q 2 (q 2,0,L) (q 0,X,R) (q 2,Y,L) q 3 (q 3,Y,R) (q 4,,R) q 4

La máquina de Turing como calculadora de funciones Trabajamos con funciones parciales enteras f : Z n Z m Codificación de los valores de dominio y rango Dada la tupla de valores enteros positivos (x 1, x 2,..., x n ) Definimos la función de codificación binaria cod(x 1, x 2,..., x n ) = 0 x1 1 0 x2 1... 1 0 xn cod(1,2,3) = 01001000 cod(0,3) = 1000 cod(2,0,3) = 0011000 cod(0,0) = 1 M como calculadora de funciones M = (Q, {0,1}, Γ, δ, q 0,, ) M calcula la función f : Z n Z m sii M para tras la computación q 0 cod(x 1, x 2,..., x n ) α q β αβ = cod(f(x 1, x 2,..., x n )) M * Ejemplo 2 m n si m n resta(m, n) = 0 si m < n M = ({q 0, q 1, q 2, q 3, q 4, q 5, q 6 }, {0, 1}, {0, 1, }, δ, q 0,, ) 0 1 q 0 (q 1,,R) (q 5,,R) q 1 (q 1,0,R) (q 2,1,R) q 2 (q 3,1,L) (q 2,1,R) (q 4,,L) q 3 (q 3,0,L) (q 3,1,L) (q 0,,R) q 4 (q 4,0,L) (q 4,,L) (q 6,0,R) q 5 (q 5,,R) (q 5,,R) (q 6,,R) q 6

Un lenguaje diremos que es Lenguajes y funciones computables recursivamente enumerable si existe una máquina de Turing M tal que L(M) = L. Define la clase L r.e. recursivo si existe una máquina de Turing M tal que L(M)=L y M para ante cualquier entrada. Define la clase L rec L rec L r.e. Una función es computable si puede ser calculada por una máquina de Turing. El conjunto de funciones computables coincide con el de las funciones recursivas Si una función es computable parcial, la máquina que la calcula puede no parar, o parar con una salida indefinida, para aquellos valores en los que la función no esté definida. Técnicas de construcción de máquinas de Turing (I) Almacenamiento en el control finito Se dota al control finito de una memoria finita capaz de almacenar información limitada. (a) Almacenamiento de una tupla de k estados M = (Q k estado [q, Σ, Γ, δ, q 0,, F) 1, q 2,..., q k ] q 0 = [q 0, q 0,..., q 0 ] (b) Almacenamiento de una tupla de k símbolos M = (Q Γ k, Σ, Γ, δ, q 0,, F) estado [q i, a 1,..., a k ] q 0 = [q 0,,..., ] (c) Almacenamiento de otra información Último movimiento aplicado, primer símbolo de la cadena de entrada, etc.

Técnicas de construcción de máquinas de Turing (II) Pistas múltiples (multipistas) La cinta almacena en cada celda un vector k dimensional de símbolos a los que se accede simultáneamente. M = (Q, Σ k-1, Γ k, δ, q 0,, F) w 1 w 2 --- w n --- pista 1 pista 2 --- pista k q 0 δ: Q Γ k Q Γ k {L, R} = [,,..., ] cadena inicial de entrada w = [w 1,,..., ] [w 2,,..., ]... [w n,,..., ] Subrutinas Técnicas de construcción de máquinas de Turing (III) Una subrutina es un subconjunto de movimientos de la función δ que se puede utilizar igual que en algunos lenguajes de programación. Paso de control Se utiliza almacenamiento en el control finito [q act, q in, q fin ] Paso de variables Se utiliza almacenamiento en control finito o bien multipistas Recursividad Una subrutina puede llamarse a sí misma La pila de recursividad puede habilitarse en una pista

Modificaciones equivalentes al modelo determinista básico (I) Cinta infinita en ambos sentidos w w 1 w 2... w n q 0 M = (Q, Σ, Γ, δ, q 0,, F) Configuración instantánea αqβ αβ es el contenido de cinta desde el símbolo no blanco más a la izquierda hasta el símbolo no blanco más a la derecha Carga inicial q 0 w w se carga en cualquier porción de la cinta con la cabeza situada en su símbolo más a la izquierda Teorema Para cualquier máquina de Turing M 1 con cinta infinita en ambos sentidos existe otra equivalente M 2 con cinta limitada por la izquierda w w 1 w 2... w n M 1 q 0 M 1 = (Q, Σ, Γ, δ 1, q 0,, F) w 1 w 2... w n... pista superior U pista inferior D M 2 q 0 M 2 = (Q {U,D} {q 1 }, Σ, Γ (Γ { }), δ 2, q 1, [,], F {U,D}) δ 2 (q 1, [x,]) = ([q i,u], [y, ], R) sii δ 1 (q 0, x) = (q i, y, R) δ 2 (q 1, [x,]) = ([q i,d], [y, ], R) sii δ 1 (q 0, x) = (q i, y, L)

Modificaciones equivalentes al modelo determinista básico (II) Máquina multicinta w 1 w 2... w n cinta 1 x 1 x 2... x m cinta 2 y 1 y 2... y j cinta k q M = (Q, Σ, Γ, δ, q 0,, F) δ: Q Γ k Q Γ k {L, R} k Máquina multicinta Un movimiento de la máquina multicinta depende del estado del control finito y de los símbolos analizados por cada cabeza de cada cinta Un movimiento de la máquina multicinta implica: (a) Cambiar el estado del control finito (b) Escribir un símbolo en cada una de las celdas analizadas (c) Mover cada cabeza de cinta una celda a la izda. o a la dcha. de forma independiente descripción instantánea α 1 q β 1 # α 2 q β 2 #... # α k q β k carga inicial q 0 w# q 0 #... #q 0 w se carga en la cinta 1 y el contenido del resto de las cintas es blanco Para el cálculo de funciones, el valor de la función se almacena en la cinta 1

Teorema Para cualquier máquina de Turing M 1 con k cintas existe otra equivalente M 2 con una sola cinta w 1 w 2... w n cinta 1 x 1 x 2... x m cinta 2 y 1 y 2... y j cinta k w 1 w 2... w n ~... x 1 x 2... x m-1 x m... ~ M 1 = (Q, Σ, Γ, δ 1, q 0,, F) cinta 1 (dos pistas) cinta 2 (dos pistas) y 1 y 2... y j-2... y j-1 y j ~ cinta k (dos pistas) M 2 Teorema Para cualquier máquina de Turing M 1 con k cintas existe otra equivalente M 2 con una sola cinta M 1 = (Q, Σ, Γ, δ 1, q 0,, F) M 2 = (Q Γ k {0,..., k}, Σ 2k-1, (Γ {~}) 2k, δ 2, q 1,, F Γ k 0) q 1 = [q 0,,...,, 0] = [,..., ] Para iniciar la simulación de un movimiento de M 1, la máquina M 2 se sitúa en el símbolo marcado más a la izquierda. La simulación de un movimiento de M 1 consiste en recorrer la cinta de izquierda a derecha almacenando los símbolos marcados y de derecha a izquierda moviendo las marcas de los símbolos y cambiando los símbolos anteriormente marcados.

Modificaciones equivalentes al modelo determinista básico (III) Máquina no determinista M = (Q, Σ, Γ, δ, q 0,, F) δ: Q Γ P(Q Γ {L, R}) δ(q,a) = {(p 1, a 1, z 1 ),..., (p m, a m,z m )} z i {L,R} Llamamos grado de indeterminismo de la máquina M a la aridad máxima de la función δ (el número máximo de elecciones que la máquina pueda tener en cualquier configuración) Las transiciones entre descripciones instantáneas originan la definición de los árboles de computación Árboles de computación M = (Q, Σ, Γ, δ, q 0,, F) grado de indeterminismo n aridad del árbol n w Σ * M acepta w si existe un camino desde la raíz hasta una hoja con estado final q0 w α 1 q 1 β 1 α 2 q 2 β 2 α j q j β j α 11 q 11 β 11 α 1p q 1p β 1p α j1 q j1 β j1 α jm q jm β jm α p β p F α q β q F

Teorema Para cualquier máquina de Turing M 1 no determinista existe otra equivalente M 2 determinista M 1 = (Q 1, Σ, Γ 1, δ 1, q 1,, F 1 ) M 2 = (Q 2, Σ, Γ 2, δ 2, q 2,, F 2 ) (grado de indeterminismo n) Dada una cadena w, para comprobar si w es aceptada por M 1 basta con recorrer en anchura su árbol de computación. Si w es aceptada se llegará a una descripción instantánea de aceptación. Una secuencia de computación será una secuencia finita de dígitos enteros i 1 i 2... i m donde i j {1,.., n}. Cada dígito indica la posible elección de movimiento que se efectúa en M 1 (ej. 12232 significa elegir el movimiento 1, luego el 2, luego el 2, luego el 3 y luego el 2). Una secuencia de computación es factible si todos y cada uno de sus movimientos se pueden aplicar en la máquina M 1. Una secuencia de computación factible es de aceptación si el último estado al que llega la máquina M 1, de acuerdo con la secuencia, es un estado final. En cado contrario la secuencia de computación factible es de rechazo. El orden lexicográfico de las secuencias de computación posibilita el recorrido en anchura del árbol de computación. q 0 w α 1 q 1 β 1 α 2 q 2 β 2 α n q n β n i 0 i 1 Si w es aceptada por M 1 existe una secuencia de computación que conduce a M 1 hacia un estado de aceptación: i 0 i 1 i 2... i n M 2 genera todas las posibles secuencias de computación hasta encontrar aquélla que conduce a M 1 hacia un estado de aceptación. Si no existe, entonces M 2 nunca para. cinta de entrada w secuencia de computación cinta de trabajo α p β i n p F M 2

Modificaciones equivalentes al modelo determinista básico (II) Máquina off-line w 1 w 2 w 3... w n $ x 1 x 2... x m cinta 1 (sólo lectura, limitada) cinta 2 y 1 y 2... y j cinta k q M = (Q, Σ, Γ, δ, q 0,, F) Teorema Para cualquier máquina de Turing M 1 off-line existe otra equivalente M 2 con una sola cinta La máquina M 2 puede efectuar la misma simulación que en el caso multicinta pero limitando los movimientos de la cinta 1 a la izquierda de o a la derecha de $ y reescribiendo siempre los mismos símbolos leídos en esa cinta

La tesis de Church-Turing Cualquier modelo de computación que intente capturar el concepto de lo que es computable debe ser equivalente a la máquina de Turing La noción intuitiva de función computable puede ser identificada con la de función recursiva parcial Otros modelos de computación formulados a lo largo del tiempo Sistemas de Post λ-cálculo Máquina RAM Máquinas cuánticas Cálculo basado en el ADN, etc. Un modelo de cálculo permite hipercomputación si es capaz de resolver algunos problemas que las máquinas de Turing establecen como indecidibles (Ej. máquinas de Turing con oráculos, redes de Siegelman, etc.) La máquina de Turing como enumeradora de conjuntos Una máquina de Turing generadora es una máquina de Turing multicinta con una cinta de salida de sólo escritura. La máquina no necesita cadena de entrada y pierde el concepto de aceptación/rechazo e incluso el de parada M = (Q, Σ, Γ, δ, q 0,, ) # w 1 # w 2 #...# w n #... M w i Σ * G(M) = {w 1, w 2,..., w n,... }

Lema Todo lenguaje generado por una máquina de Turing M 1 es recursivamente enumerable asta con construir una máquina de Turing multicinta M 2 que acepte el lenguaje generado por M 1 w M 1 M 2 M 2 simula a M 1 y, cada vez que se genera una cadena w i, la compara con la cadena de entrada w. Si coinciden, para y acepta y en caso contrario sigue simulando a M 1. L(M 2 ) = G(M 1 ) Lema Todo lenguaje recursivamente enumerable puede ser generado por una máquina de Turing. Sea L = L(M 1 ) un lenguaje recursivamente enumerable M 1 astará con construir una máquina de Turing M 2 que genere sólo aquellas cadenas que M 1 acepte. Problema: cómo se pueden establecer todas las cadenas que acepta M 1 si existe el problema de la parada?

Hecho 1: Dado un alfabeto Σ el conjunto infinito de cadenas de Σ * es enumerable y el orden lexicográfico identifica cada entero con una cadena Ejemplo Σ = {a,b} Σ* = { λ, a, b, aa, ab, ba, bb, aaa, aab,... } Hecho 2: El conjunto infinito formado por los pares de enteros positivos es enumerable 0 1 2... j... 0 (0,0) (0,1) (0,2)... (0,j)... 1 (1,0) (1,1) (1,2)... (1,j)... 2 (2,0) (2,1) (2,2)... (2,j)........................ i (i,0) (i,1) (i,2)... (i,j)........................ Se pueden construir subrutinas en máquinas de Turing que generen Σ * y los pares de enteros (i,j) Σ * (i,j) w i cinta de salida G(M 2 ) = L(M 1 ) M 2 j M 1 (1) Generar (i,j) (2) Generar w i (3) Copiar w i a una cinta (4) Simular M 1 ante w i durante j movimientos (5) Si M 1 acepta, escribir w i en la cinta de salida de M 2. En caso contrario ir a (1)

Lema Todo lenguaje generado por una máquina de Turing M 1 en orden lexicográfico es recursivo Para la siguiente construcción excluiremos el caso de que el lenguaje sea finito. En este último caso se puede construir una máquina que acepte sólo las cadenas del lenguaje y que para el resto pare y rechace (se puede hacer por casos finitos) Si el lenguaje es infinito basta con construir una máquina de Turing multicinta M 2 que acepte el lenguaje generado por M 1 y que pare ante cualquier entrada. Sirve la misma construcción que para el caso de los lenguajes recursivamente enumerables con la siguiente salvedad: M 2 simula a M 1 y, cada vez que se genera una cadena w i, la compara con la cadena de entrada w. Si coinciden, para y acepta y, en caso contrario, si w i > w para y rechaza y si w i < w genera la siguiente cadena. La condición de parada queda garantizada por ser el lenguaje infinito. L(M 2 ) = G(M 1 ) Lema Todo lenguaje recursivo puede ser generado por una máquina de Turing en orden lexicográfico. Sea L = L(M 1 ) un lenguaje recursivo. La máquina M 1 para ante cualquier entrada Σ * w i M 1 M 2 M 1 astará con construir una máquina de Turing M 2 que genere, en orden lexicográfico sólo aquellas cadenas que M 1 acepta. M 2 genera las cadenas de Σ * en orden lexicográfico. La cadena w i se somete al análisis de M 1. Si M 1 acepta w i entonces M 2 la escribe en su cinta de salida. M 2 sólo genera las cadenas de L y además lo hace en orden lexicográfico.

Caracterización de los lenguajes recursivos y recursivamente enumerables (utilización de esquemas) Lenguajes recursivamente enumerables w M S (w L(M)) M <L> (<w 1 #w 2 #...) aceptora L=L(M) generadora L=G(M) Lenguajes recursivos S (w L(M)) w M N (w L(M)) M <L> o.l. (<w 1 #w 2 #...) aceptora L=L(M) generadora L=G(M) Máquinas restringidas equivalentes al modelo básico Máquinas binarias M = (Q, {0,1}, {0,1,}, δ, q 0,, F) Teorema Si L (0+1)* es recursivamente enumerable entonces L es aceptado por una máquina de Turing binaria Sea L = L(M 1 ) con M 1 = (Q 1, {0,1}, Γ, δ 1, q 1,, F 1 ). Construiremos M 2 = (Q 2, {0,1}, {0,1,}, δ 2, q 2,, F 2 ) de forma que L = L(M2) Cada símbolo de Γ se puede codificar con un código binario de k símbolos. Q 2 = Q 1 {0,1,} k F 2 = F 1 k q 2 = [q 1,,,..., ]

w w 1 w 2 w p Γ = {a 1, a 2,, a n } cod(w 1 ) cod(w p ) k celdas k = log 2 n cod(a i ) {0,1} k M 2 M 2 lee la cadena de entrada w y escribe su código en otra cinta. A partir de ese momento la simulación de M 1 se efectúa de la siguiente forma: (1) Leer k celdas de la cinta con la entrada codificada y almacenar sus símbolos en el control finito. (2) Escribir el código del nuevo símbolo de acuerdo con la función δ 1 (3) Cambiar al nuevo estado de acuerdo con la función δ 1 (4) Moverse al comienzo del siguiente código por la derecha o por la izquierda de acuerdo con la función δ 1 Máquinas de Turing y lenguajes de tipo 0 Una gramática de tipo 0 se define por la tupla G=(N,T,P,S) donde las producciones de P son de la forma α β α (N T) + β (N T) * Teorema L es un lenguaje recursivamente enumerable sii L=L(G) donde G es de tipo 0. Relación con la jerarquía de Chomsky L 3 L 2 L 1 L 0 = L r.e.

Autómatas de memoria limitada linealmente y lenguajes de tipo 1 Una gramática de tipo 1 se define por la tupla G=(N,T,P,S) donde las producciones de P son de la forma α β α (N T) + β (N T) * α β S λ sii S no aparece en la parte derecha de ninguna otra producción Un autómata de memoria limitada linealmente (ALL) es una máquina de Turing no determinista monocinta que satisface las dos siguientes condiciones (1) El alfabeto de entrada incluye los limitadores y $ (2) El ALL no mueve su cabeza de cinta fuera de los limitadores ni escribe sobre ellos Se define la clase L ALL Teorema L es un lenguaje sensible al contexto (de tipo 1) sii L es aceptado por un ALL Relación con la jerarquía de Chomsky L 3 L 2 L 1 = L ALL L rec L 0 = L r.e.