4.5 y 4.6

7
4.5 Máquina de Turing Universal En ciencias de la computación, una máquina universal de Turing (UTM) es una máquina de Turing que puede simular una máquina de Turing arbitraria en la entrada arbitraria. La máquina universal esencialmente logra esto mediante la lectura de tanto la descripción de la máquina a ser simulada como también la entrada misma de su propia cinta. Alan Turing introdujo esta máquina en 1936-1937. Este modelo es considerado por algunos (por ejemplo, Martin Davis (2000)) el origen del computador de programa almacenado — usado por John von Neumann (1946) para el "instrumento de computación electrónica" que ahora lleva el nombre de von Neumann: la arquitectura de von Neumann. Es también conocida como una máquina de computación universal, máquina universal. En términos de complejidad computacional, una máquina universal de Turing de múltiple cinta sólo necesita ser más lenta por un factor logarítmico, comparada con las máquinas que simula. Toda máquina de Turing computa una cierta función parcial computable fija desde las cadenas de entrada sobre su alfabeto. En ese sentido se comporta como un computador con un programa fijo. Sin embargo, la tabla de acción, de cualquier máquina de Turing, puede ser codificada en una cadena. Así, se puede construir una máquina de Turing que espera en su cinta una cadena describiendo la tabla de acción (de otra máquina de Turing), seguida de una cadena que describe la cinta de entrada (de la otra máquina), y luego computa la cinta que la máquina de Turing codificada habría computado. Turing describió tal construcción en completo detalle en su papel de 1936:

description

,,,,,,,,,,,,,,,,,,,,,,, ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd

Transcript of 4.5 y 4.6

Page 1: 4.5 y 4.6

4.5 Máquina de Turing Universal

En ciencias de la computación, una máquina universal de Turing (UTM) es una máquina de Turing que puede simular una máquina de Turing arbitraria en la entrada arbitraria. La máquina universal esencialmente logra esto mediante la lectura de tanto la descripción de la máquina a ser simulada como también la entrada misma de su propia cinta. Alan Turing introdujo esta máquina en 1936-1937. Este modelo es considerado por algunos (por ejemplo, Martin Davis (2000)) el origen del computador de programa almacenado — usado por John von Neumann (1946) para el "instrumento de computación electrónica" que ahora lleva el nombre de von Neumann: la arquitectura de von Neumann. Es también conocida como una máquina de computación universal, máquina universal.

En términos de complejidad computacional, una máquina universal de Turing de múltiple cinta sólo necesita ser más lenta por un factor logarítmico, comparada con las máquinas que simula.

Toda máquina de Turing computa una cierta función parcial computable fija desde las cadenas de entrada sobre su alfabeto. En ese sentido se comporta como un computador con un programa fijo. Sin embargo, la tabla de acción, de cualquier máquina de Turing, puede ser codificada en una cadena. Así, se puede construir una máquina de Turing que espera en su cinta una cadena describiendo la tabla de acción (de otra máquina de Turing), seguida de una cadena que describe la cinta de entrada (de la otra máquina), y luego computa la cinta que la máquina de Turing codificada habría computado. Turing describió tal construcción en completo detalle en su papel de 1936:

"Es posible inventar una única máquina que puede ser usada para computar cualquier secuencia computable. Si esta máquina U es provista con una cinta en el principio de que está escrito el S.D ["Descripción estándar" de una tabla de acción] de alguna máquina de computación M, entonces U computará la misma secuencia que M".

Teoría matemática

Con esta codificación de tablas de acción como cadenas en principio se hace posible para máquinas de Turing responder preguntas sobre el comportamiento de otras máquinas de Turing. Sin embargo, la mayoría de estas preguntas, son indecidibles, lo que significa que la función en cuestión no puede ser calculada mecánicamente. Por ejemplo, el problema de determinar si una máquina de Turing arbitraria se detendrá en una entrada, o en todas las entradas, conocido como el problema de la parada, en el papel original de Turing ha demostrado ser, en general, indecidible. El teorema de Rice muestra que cualquier pregunta no trivial sobre la salida de una máquina de Turing es indecidible.

Page 2: 4.5 y 4.6

Una máquina universal de Turing puede calcular cualquier función recursiva, decidir cualquier lenguaje recursivo y aceptar cualquier lenguaje recursivamente enumerable. De acuerdo a la tesis de Church-Turing, los problemas solucionables por una máquina universal de Turing son exactamente esos problemas solucionables por un algoritmo o un método efectivo de computación, para cualquier definición razonable de esos términos. Por estas razones, una máquina universal de Turing sirve como un estándar contra el cual comparar sistemas computacionales, y un sistema que puede simular una máquina universal de Turing es llamado Turing completo.

Una versión abstracta de la máquina universal de Turing es la función universal, una función computable que puede ser usada para calcular cualquier otra función computable. El teorema utm demuestra la existencia de dicha función.

Eficiencia

Sin pérdida de generalidad, la entrada de la máquina de Turing puede asumirse en el alfabeto {0, 1}; cualquier otro alfabeto finito puede ser codificado sobre {0, 1}. El comportamiento de una máquina de Turing M está determinado por su función de transición. Esta función puede ser fácilmente codificada como una cadena sobre el alfabeto {0, 1}. El tamaño del alfabeto de M, el número de cintas que tiene, y el tamaño del espacio de estado puede deducirse de la tabla de la función de transición. Los distinguidos estados y símbolos pueden ser identificados por su posición, por ejemplo, los dos primeros estados pueden ser por convención los estados iniciar y parar. En consecuencia, toda máquina de Turing puede codificarse como una cadena sobre el alfabeto {0, 1}. Adicionalmente, se conviene a que toda codificación no válida se mapea a una máquina de Turing trivial que se detiene inmediatamente, y que cada máquina de Turing puede tener un número infinito de codificaciones al rellenar la codificación con un número arbitrario de (digamos) 1 al final, al igual que trabajan los comentarios en un lenguaje de programación. No debería ser sorpresa que podemos lograr esta codificación dada la existencia de un número de Gödel y la equivalencia computacional entre las máquinas de Turing y las funciones recursivas-μ. Similarmente, nuestra construcción asocia a cada cadena binaria α, una máquina de Turing Mα.

A partir de la codificación anterior, en 1966 F. C. Hennie y R. E. Stearns mostraron que dada una máquina de Turing Mα que se detiene con la entrada x en N pasos, entonces existe una máquina universal de Turing multicinta que se detiene en las entradas α, x (dada en diferentes cintas) en CN log N, donde C es una constante específica de la máquina que no depende de la longitud de la entrada x, pero depende del tamaño del alfabeto de M, número de cintas y varios estados. Efectivamente es una simulación O(N log N).

Page 3: 4.5 y 4.6

Máquinas más pequeñas

Cuando Alan Turing vino con la idea de una máquina universal tenía en mente el más simple modelo de computación lo suficientemente poderoso como para calcular todas las posibles funciones que pueden ser calculadas. En 1956 Claude Shannon primero planteó explícitamente la cuestión de encontrar la más pequeña máquina universal de Turing posible. Él mostró que dos símbolos eran suficientes, siempre y cuando fueran usados suficiente estados (o viceversa), y que siempre era posible intercambiar estados por símbolos.

En 1962 Marvin Minsky descubrió una máquina universal de Turing de 7 estados 4 símbolos mediante sistemas 2 tag. Desde entonces han sido encontradas otras pequeñas máquinas universales de Turing por Yuri Rogozin y otros al extender este acercamiento de simulación de sistema de tag. Si denotamos por (m, n) la clase de UTMs con m estados y n símbolos, han sido encontradas las siguientes tuplas: (15, 2), (9, 3), (6, 4), (5, 5), (4, 6), (3, 9) y (2, 18).4 5 6 La máquina (4, 6) de Rogozhin usa solo 22 instrucciones, y no es conocida una UTM estándar de menor complejidad descripcional.

Sin embargo, generalizando el modelo de máquina de Turing estándar admite UTMs aún más pequeñas. Una de esas generalizaciones es permitir una palabra infinitamente repetida en uno o ambos lados de la entrada de la máquina de Turing, extendiendo así la definición de universalidad y conocida como universalidad "parcialmente débil" o "débil", respectivamente. Máquinas universales Turing pequeñamente débiles que simulan el autómata celular regla 110 ha sido dado por los pares de estado símbolo (6, 2), (3, 3) y (2, 4).7 La prueba de universalidad de la máquina de Turing de 2 estados 3 símbolos de Wolfram extiende más la noción de universalidad débil al permitir ciertas configuraciones iniciales no periódicas. Otras variantes en el modelo de máquina de Turing estándar que dieron UTMs pequeñas incluyen máquinas con múltiples cintas o cintas de múltiples dimensiones y máquinas acopladas con un autómata finito.

Page 4: 4.5 y 4.6

Ilustración 1.- Modelo de la Máquina de Turing Universal

4.6 Modelos de computación y la tesis Church-Turing

Históricamente, el modelo de la “máquina de Turing” fue presentado en 1936 como un mecanismo abstracto de cómputo capaz de ejecutar algoritmos paso a paso. La máquina de Turing antecedió en varias décadas a la implementación física de los computadores digitales y se ha usado desde entonces como el modelo teórico fundamental de la noción de computación secuencial.

Hay varias razones por las cuales la máquina de Turing sigue siendo un formalismo útil y ampliamente utilizado:

1. La noción de ‘paso computacional’ está claramente definida. Esto permite precisar sin ambigüedades el concepto de ‘tiempo de computación’.

2. La noción de ‘lugar de almacenamiento’ está también claramente presentada, por medio de las casillas individuales en la cinta.

3. Estos dos recursos, ‘tiempo’ y ‘espacio’, aparecen en la máquina de Turing de una manera muy realista y permiten analizar los efectos de imponer limitaciones sobre ellos, lo cual es muy adecuado en las investigaciones sobre complejidad computacional.

Ningún modelo computacional captura de manera tan satisfactoria tales aspectos de la computación.

Diseñar una MT es completamente similar a escribir un programa computacional, lo cual establece una conexión intuitiva directa entre máquinas de Turing y algoritmos. Esta conexión es el fundamento de la afirmación conocida como Tesis de Church-Turing y que puede ser enunciada de la manera más directa como:

Page 5: 4.5 y 4.6

4.6.1 Tesis de Church-Turing.

Todo algoritmo puede ser descrito por medio de una máquina de Turing. En su formulación más amplia, la Tesis de Church-Turing abarca tanto los algoritmos que producen una salida para cada entrada como aquellos que no terminan (ingresan en bucles infinitos) para algunas entradas. También se incluyen los algoritmos deterministas y los no-deterministas. Para apreciar su significado y su alcance, hay que enfatizar que la Tesis de Church-Turing no es un enunciado matemático susceptible de demostración, ya que involucra la noción intuitiva de algoritmo. En otras palabras, la tesis no se puede demostrar. Se podría refutar, no obstante, exhibiendo un procedimiento efectivo, que todo el mundo acepte que es un verdadero algoritmo y que no pueda descrito por una máquina de Turing. Pero tal refutación no se ha producido hasta la fecha; de hecho, la experiencia acumulada durante décadas de investigación ha corroborado una y otra vez la Tesis de Church-Turing. Entre los hechos que contribuyen a apoyar la tesis podemos destacar los dos siguientes:

1. La adición de recursos computacionales a las máquinas de Turing (múltiples pistas o cintas, no determinismo, etc.) no incrementa el poder computacional del modelo básico. Esto es un indicativo de que el modelo de MT es lo suficientemente poderoso como para simular todas las acciones consideradas computacionalmente válidas.

2. Todos los modelos o mecanismos computacionales propuestos para describir formalmente la noción de algoritmo han resultado ser equivalentes a la máquina de Turing, en el sentido de que lo que se puede hacer con ellos también se puede hacer con una MT adecuada, y viceversa. Entre los modelos de computación secuencial equivalentes a la máquina de Turing podemos citar: las funciones parciales recursivas (modelo de Gödel y Kleene, 1936), el cálculo-λ (modelo de Church, 1936), los sistemas de deducción canónica (modelo de Post, 1943), los algoritmos de Markov (modelo de Markov, 1951) y las máquinas de registro (modelo de Shepherdson-Sturgis, 1963).