Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ir a la navegaciónIr a la búsqueda
Para otros usos de este término, véase Turing (desambiguación).
Teoría de autómatas.svg
Acerca de esta imagen
Una máquina de Turing es un dispositivo que manipula símbolos sobre una tira de
cinta de acuerdo con una tabla de reglas. A pesar de su simplicidad, una máquina de
Turing puede ser adaptada para simular la lógica de cualquier algoritmo de
computador y es particularmente útil en la explicación de las funciones de una CPU
dentro de un computador.
Originalmente fue definida por el matemático inglés Alan Turing como una «máquina
automática» en 1936 en la revista Proceedings of the London Mathematical
Societynota 1. La máquina de Turing no está diseñada como una tecnología de
computación práctica, sino como un dispositivo hipotético que representa una
máquina de computación. Las máquinas de Turing ayudan a los científicos a entender
los límites del cálculo mecánico34
Turing dio una definición sucinta del experimento en su ensayo de 1948, «Máquinas
inteligentes». Refiriéndose a su publicación de 1936, Turing escribió que la
máquina de Turing, aquí llamada una máquina de computación lógica, consistía en:
... una ilimitada capacidad de memoria obtenida en la forma de una cinta infinita
marcada con cuadrados, en cada uno de los cuales podría imprimirse un símbolo. En
cualquier momento hay un símbolo en la máquina; llamado el símbolo leído. La
máquina puede alterar el símbolo leído y su comportamiento está en parte
determinado por ese símbolo, pero los símbolos en otros lugares de la cinta no
afectan el comportamiento de la máquina. Sin embargo, la cinta se puede mover hacia
adelante y hacia atrás a través de la máquina, siendo esto una de las operaciones
elementales de la máquina. Por lo tanto cualquier símbolo en la cinta puede tener
finalmente una oportunidad.5
Turing (1948, p. 61.)
Una máquina de Turing que es capaz de simular cualquier otra máquina de Turing es
llamada una máquina universal de Turing (UTM, o simplemente una máquina universal).
Una definición más matemáticamente orientada, con una similar naturaleza
"universal", fue presentada por Alonzo Church, cuyo trabajo sobre el cálculo lambda
se entrelaza con el de Turing en una teoría formal de la computación conocida como
la tesis de Church-Turing. La tesis señala que las máquinas de Turing capturan, de
hecho, la noción informal de un método eficaz en la lógica y las matemáticas y
proporcionan una definición precisa de un algoritmo o 'procedimiento mecánico'.
Índice
1 Historia
2 Descripción informal
3 Definición formal
3.1 Funcionamiento de la máquina de Turing
3.2 Representación como diagrama de estados
3.3 Descripción instantánea
4 Ejemplo
5 Modificaciones equivalentes
5.1 Máquina de Turing con movimiento de espera
5.2 Máquina de Turing con cinta infinita a ambos lados
5.3 Máquina de Turing con cinta multipista
5.4 Máquina de Turing multicinta
5.5 Máquina de Turing multidimensional
6 Máquina de Turing determinista y no determinista
7 Problema de la parada (halting problem)
8 Codificación de una máquina de Turing
9 Máquina de Turing universal
10 Máquina de Turing cuántica
11 Modelos equivalentes
12 Véase también
13 Notas
14 Referencias
15 Bibliografía
16 Enlaces externos
Historia
Con este aparato extremadamente sencillo es posible realizar cualquier cómputo que
un computador digital sea capaz de realizar.7)
La idea subyacente es el concepto de que una máquina de Turing puede verse como un
autómata ejecutando un procedimiento efectivo definido formalmente, donde el
espacio de memoria de trabajo es ilimitado, pero en un momento determinado sólo una
parte finita es accesible.
Descripción informal
Una cinta que se divide en celdas, una al lado de la otra. Cada celda contiene un
símbolo de algún alfabeto finito. El alfabeto contiene un símbolo especial llamado
blanco (aquí escrito como 'B') y uno o más símbolos adicionales. La cinta se supone
que es arbitrariamente extensible hacia la izquierda y hacia la derecha, es decir,
la máquina de Turing siempre es provista con tanta cinta como necesite para su
computación. Las celdas que no se hayan escrito previamente se asumen que están
rellenas con el símbolo blanco. En algunos modelos la cinta tiene un extremo
izquierdo marcado con un símbolo especial; la cinta se extiende o es
indefinidamente extensible hacia la derecha.
Un cabezal que puede leer y escribir símbolos en la cinta y mover la cinta a la
izquierda y a la derecha una (y sólo una) celda a la vez. En algunos modelos el
cabezal se mueve y la cinta es estacionaria.
Un registro de estado que almacena el estado de la máquina de Turing, uno de los
estados finitos. Hay un estado inicial especial con el que el registro de estado se
inicia. Turing escribe que estos estados reemplazan el "estado de la mente" en que
ordinariamente estaría una persona realizando cálculos.
Una tabla finita de instrucciones (llamada ocasionalmente como tabla de acción o
función de transición). Las instrucciones son usualmente 5-tuplas: qiaj→qi1aj1dk,
(a veces 4-tuplas), que, dado el estado (qi) en que la máquina se encuentra
actualmente y el símbolo (aj) que se está leyendo en la cinta (el símbolo
actualmente debajo del cabezal) le indica a la máquina hacer lo siguiente en
secuencia (para los modelos de 5-tupla):
Borra o escribe un símbolo (reemplazando aj con aj1), y entonces
Mueve el cabezal (que es descrito por dk y puede tener los valores: 'L' para un
paso a la izquierda, o 'R' para un paso a la derecha, o 'N' para permanecer en el
mismo lugar) y luego
Asume el mismo o un nuevo estado como prescrito (ve al estado qi1).
En los modelos de 4-tupla, son especificadas como instrucciones separadas: borrar o
escribir un símbolo (aj1) y mover el cabezal a la izquierda o la derecha (dk).
Específicamente, la tabla indica a la máquina: (ia) borrar o escribir un símbolo o
(ib) mover el cabezal a la izquierda o a la derecha, y luego (ii) asumir el mismo o
un nuevo estado, pero no las dos acciones (ia) y (ib) en la misma instrucción. En
algunos modelos, si no hay ninguna entrada en la tabla para la actual combinación
de símbolo y estado, la máquina se detendrá; otros modelos requieren que estén
llenas todas las entradas.
Note que cada parte de la máquina — su estado y colecciones de símbolos — y sus
acciones — imprimir, borrar, movimiento de la cinta — es finito, discreto y
distinguible; es la cantidad potencialmente ilimitada de cinta lo que le da una
cantidad ilimitada de espacio de almacenamiento.
Definición formal
Una máquina de Turing10es un modelo computacional que realiza una lectura/escritura
de manera automática sobre una entrada llamada cinta, generando una salida en esta
misma.
Este modelo está formado por un alfabeto de entrada y uno de salida, un símbolo
especial llamado blanco (normalmente b, {\displaystyle \Delta }\Delta o 0), un
conjunto de estados finitos y un conjunto de transiciones entre dichos estados. Su
funcionamiento se basa en una función de transición, que recibe un estado inicial y
una cadena de caracteres (la cinta, la cual puede ser infinita) pertenecientes al
alfabeto de entrada. La máquina va leyendo una celda de la cinta en cada paso,
borrando el símbolo en el que se encuentra posicionado su cabezal y escribiendo un
nuevo símbolo perteneciente al alfabeto de salida, para luego desplazar el cabezal
a la izquierda o a la derecha (solo una celda a la vez). Esto se repite según se
indique en la función de transición, para finalmente detenerse en un estado final o
de aceptación, representando así la salida.
Una máquina de Turing con una sola cinta puede definirse como una 7-tupla
Modificaciones equivalentes
Una razón para aceptar la máquina de Turing como un modelo general de cómputo es
que el modelo que hemos definido anteriormente es equivalente a muchas versiones
modificadas que en principio pareciera incrementar el poder computacional.
Se dice que esta cinta tiene múltiples pistas puesto que cada celda de esta máquina
de Turing contiene múltiples caracteres, el contenido de las celdas de la cinta
puede ser representado mediante n-tuplas ordenadas. Los movimientos que realice
esta máquina dependerán de su estado actual y de la n-tupla que represente el
contenido de la celda actual. Cabe mencionar que posee un solo cabezal al igual que
una MT sencilla.
MT bidimensional.
Máquina de Turing determinista y no determinista
Véase también: Complejidad computacional
La entrada de una máquina de Turing viene determinada por el estado actual y el
símbolo leído, un par (estado, símbolo), siendo el cambio de estado, la escritura
de un nuevo símbolo y el movimiento del cabezal, las acciones a tomar en función de
una entrada. En el caso de que para cada par (estado, símbolo) posible exista a lo
sumo una posibilidad de ejecución, se dirá que es una máquina de Turing
determinista, mientras que en el caso de que exista al menos un par (estado,
símbolo) con más de una posible combinación de actuaciones se dirá que se trata de
una máquina de Turing no determinista.
Símbolo Codificación
{\displaystyle s_{1}}s_{1} 1
{\displaystyle s_{2}}s_{2} 11
{\displaystyle s_{3}}s_{3} 111
.
.
. .
.
.
{\displaystyle s_{m}}s_{m} {\displaystyle 1^{m}}1^{m}
{\displaystyle s_{p}}s_{p} {\displaystyle 1^{p}}1^{p}
Los estados de una MT {\displaystyle q_{1},q_{2},q_{3},\ldots
,q_{n}\!}q_{1},q_{2},q_{3},\ldots ,q_{n}\! se codifican también con secuencias de
unos:
Símbolo Codificación
{\displaystyle q_{1}({\rm {inicial)}}}q_{1}({\rm {inicial)}} 1
{\displaystyle q_{2}({\rm {final)}}}q_{2}({\rm {final)}} 11
.
.
. .
.
.
{\displaystyle q_{n}}q_{n} {\displaystyle 1^{n}}1^{n}
Las directrices de desplazamiento {\displaystyle R\!}R\!, {\displaystyle L\!}L\! y
{\displaystyle S\!}S\! se codifican con 1, 11, 111, respectivamente. Una transición
{\displaystyle \delta (q,a)=(p,c,R)\!}\delta (q,a)=(p,c,R)\! se codifica usando
ceros como separadores entre los estados, los símbolos del alfabeto de cinta y la
directriz de desplazamiento {\displaystyle R\!}R\!. Así, la transición
{\displaystyle \delta (q_{3},s_{2})=(q_{5},s_{3},R)\!}\delta
(q_{3},s_{2})=(q_{5},s_{3},R)\! se codifica como
{\displaystyle 01110110111110111010.\!}01110110111110111010.\!
En general, la codificación de una transición cualquiera {\displaystyle \delta
(q_{i},s_{k})=(q_{j},s_{l},R)\!}{\displaystyle \delta
(q_{i},s_{k})=(q_{j},s_{l},R)\!} es
{\displaystyle
01^{i}01^{k}01^{j}01^{l}01^{t},\!}01^{{i}}01^{{k}}01^{{j}}01^{{l}}01^{{t}},\!
donde {\displaystyle t\in \{1,2,3\}\!}t\in \{1,2,3\}\!, según la dirección sea
{\displaystyle \mathrm {derecha} (R),\ \mathrm {izquierda} (L),\ \mathrm {esperar}
(S)}\mathrm {derecha} (R),\ \mathrm {izquierda} (L),\ \mathrm {esperar} (S).
Modelos equivalentes
Dos modelos matemáticos equivalentes a los de las máquinas de Turing son las
máquinas de Post, creadas en forma paralela por Emil Leon Post,13 y el cálculo
lambda, introducido por Alonzo Church y Stephen Kleene en los años 1930, y también
usado por Church para demostrar en 1936 el Entscheidungsproblem.
Véase también
Teoría de autómatas
Sistema combinacional
Autómata finito
Autómata con pila
Máquina abstracta
Máquina de Turing universal
Máquina de Turing alternante
Problema de la parada
Jerarquía de Chomsky
Juego de la vida
Cálculo lambda
Notas
Turing envió su artículo el 31 de mayo de 1936 a la London Mathematical Society
para su publicación en la revista Proceedings,1 pero no fue publicada hasta
principios de 1937.2
Referencias
Hodges, 1983, p. 112.
Hodges, 1983, p. 129.
Minsky, 1967, p. 107.
Stone, 1972, p. 8.
See the definition of "innings" on Wiktionary
Hodges, 1983.
A.M. Turing (1948). «Intelligent Machinery (manuscript)». The Turing Archive. p.
3.
Gómez de Silva Garza, Gómez de Silva Garza (2008). Introducción a la computación.
p. 522.
Minsky, 1967, p. 121.
«Teoría de Autómatas». Teoría de Autómatas, RAI 2012 Universidad Carlos III
Pérez, Iván (2005). Lenguaje y Compiladores. p. 137.
Paun, Gheorghe (2002). «II. Prerequisites». Membrane Computing: An Introduction
(en inglés). Nueva York: Springer-Verlag. ISBN 3540436014. Consultado el 24 de
junio de 2012. «The parallelism with a computer, as we know computers in their
general form, is clear: the code of a Turing machine is its program, the strings to
be recognized represent the input data, and the universal Turing machine is the
computer itself, with the instructions of the universal Turing machine
corresponding to the operating system of a computer.»
Emil Post (1936), "Finite Combinatory Processes—Formulation 1", Journal of
Symbolic Logic, 1, 103–105, 1936. Reimpreso en The Undecidable, p. 289ff