Professional Documents
Culture Documents
Una mquina de Turing es un dispositivo que manipula smbolos sobre una tira de cinta de
acuerdo a una tabla de reglas. A pesar de su simplicidad, una mquina de Turing puede ser
adaptada para simular la lgica de cualquier algoritmo de computador y es particularmente til
en la explicacin de las funciones de una CPU dentro de un computador.
Originalmente fue definida por el matemtico ingls Alan Turing como una mquina
automtica en 1936, en la revista Proceedings of the London Mathematical Society,1 La
mquina de Turing no est diseada como una tecnologa de computacin prctica, sino como
un dispositivo hipottico que representa una mquina de computacin. Las mquinas de
Turing ayudan a los cientficos a entender los lmites del clculo mecnico.
Turing dio una definicin sucinta del experimento en su ensayo de 1948, Mquinas
inteligentes. Refirindose a su publicacin de 1936, Turing escribi que la mquina de Turing,
aqu llamada una mquina de computacin lgica, consista en:
...una ilimitada capacidad de memoria obtenida en la forma de una cinta infinita marcada con cuadrados,
en cada uno de los cuales podra imprimirse un smbolo. En cualquier momento hay un smbolo en la
mquina; llamado el smbolo ledo. La mquina puede alterar el smbolo ledo y su comportamiento est
en parte determinado por ese smbolo, pero los smbolos en otros lugares de la cinta no afectan el
comportamiento de la mquina. Sin embargo, la cinta se puede mover hacia adelante y hacia atrs a
travs de la mquina, siendo esto una de las operaciones elementales de la mquina. Por lo tanto
cualquier smbolo en la cinta puede tener finalmente una oportunidad. 2
Turing (1948, p. 61)
Una mquina de Turing que es capaz de simular cualquier otra mquina de Turing es llamada
una mquina universal de Turing (UTM, o simplemente una mquina universal). Una definicin
ms matemticamente orientada, con una similar naturaleza "universal", fue presentada
por Alonzo Church, cuyo trabajo sobre el clculo lambda se entrelaza con el de Turing en una
teora formal de la computacin conocida como la tesis de Church-Turing. La tesis seala que
las mquinas de Turing capturan, de hecho, la nocin informal de un mtodo eficaz en
la lgica y las matemticas y proporcionan una definicin precisa de un algoritmo o
'procedimiento mecnico'.
Estudiando sus propiedades abstractas, la mquina de Turing produce muchas perspectivas
en las ciencias de la computacin y en la teora de la complejidad.
ndice
[ocultar]
1 Historia
2 Descripcin informal
3 Definicin formal
o
3.1 Funcionamiento
4 Ejemplo
5 Modificaciones equivalentes
o
11 Vase tambin
12 Referencias
12.2 Bibliografa
13 Enlaces externos
Historia[editar]
Descripcin informal[editar]
Aqu se muestra el estado interno (q1) dentro del cabezal, y la ilustracin describe la cinta como siendo
infinita y llenada previamente con '0', el smbolo sirviendo como blanco. El estado completo del sistema
(su configuracin) consiste del estado interno, el contenido de las casillas sombreadas incluyendo el
blanco ledo el cabezal ("11B") y la posicin del cabezal. (Dibujo despus de Minsky (1967) p. 121).
encuentra actualmente y el smbolo (aj) que se est leyendo en la cinta (el smbolo
actualmente debajo del cabezal) le indica a la mquina hacer lo siguiente en
secuencia (para los modelos de 5-tupla):
Definicin formal[editar]
Una mquina de Turing4 es un modelo computacional que realiza una lectura/escritura de
manera automtica sobre unaentrada llamada cinta, generando una salida en esta misma.
Este modelo est formado por un alfabeto de entrada y uno de salida, un smbolo especial
llamado blanco (normalmente b,
o 0), un conjunto de estados finitos y un conjunto de
transiciones entre dichos estados. Su funcionamiento se basa en una funcin de
transicin, que recibe un estado inicial y una cadena de caracteres (la cinta, la cual puede
ser infinita) pertenecientes al alfabeto de entrada. La mquina va leyendo una celda de la
cinta en cada paso, borrando el smbolo en el que se encuentra posicionado su cabezal y
escribiendo un nuevo smbolo 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 segn se
indique en la funcin de transicin, para finalmente detenerse en un estado final o de
aceptacin, representando as la salida.
Una mquina de Turing con una sola cinta puede definirse como una 7-tupla
donde:5
es el estado inicial.
es un smbolo denominado blanco, y es el nico smbolo que se puede
repetir un nmero infinito de veces.
de transicin, donde
derecha.
Funcionamiento[editar]
La mquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que
el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las
operaciones que se pueden realizar en esta mquina se limitan a:
y el estado final es
, el lenguaje de salida
, posee el
con
El estado inicial se caracteriza por tener una arista que llega a l y que no
proviene de ningn otro vrtice.
Descripcin instantnea[editar]
Es una secuencia de la forma
donde
escribe el estado de una MT. La cinta contiene la cadena
infinitos blancos. El cabezal seala el primer smbolo de
que
seguida de
Ejemplo[editar]
Definimos una mquina de Turing sobre el alfabeto
, donde 0 representa el smbolo blanco.
La mquina comenzar su proceso situada sobre un smbolo "1" de una serie. La mquina de
Turing copiar el nmero de smbolos "1" que encuentre hasta el primer blanco detrs de dicho
smbolo blanco. Es decir, posiciona el cabezal sobre el 1 situado en el extremo izquierdo, doblar
el nmero de smbolos 1, con un 0 en medio. As, si tenemos la entrada "111" devolver "1110111",
con "1111" devolver "111101111", y sucesivamente.
El conjunto de estados es
funcin de transicin es la siguiente:
y el estado inicial es
Estado
Smbolo ledo
Smbolo escrito
El funcionamiento de una computacin de esta mquina puede mostrarse con el siguiente ejemplo
(en negrita se resalta la posicin de la cabeza lectora/escritora):
Paso
Estado
010
0100
0101
101
101
101
1001
10
1001
11
10010
12
10011
13
10011
14
0011
15
11011
Parada
La mquina realiza su proceso por medio de un bucle, en el estado inicial , reemplaza el primer 1
con un 0, y pasa al estado , con el que avanza hacia la derecha, saltando los smbolos 1 hasta
un 0 (que debe existir), cuando lo encuentra pasa al estado , con este estado avanza saltando
los 1 hasta encontrar otro 0 (la primera vez no habr ningn 1). Una vez en el extremo derecho,
aade un 1. Despus comienza el proceso de retorno; con
vuelve a la izquierda saltando los 1,
cuando encuentra un 0 (en el medio de la secuencia), pasa a
que contina a la izquierda
saltando los 1 hasta el 0 que se escribi al principio. Se reemplaza de nuevo este 0 por 1, y pasa al
smbolo siguiente, si es un 1, se pasa a otra iteracin del bucle, pasando al estado s1 de nuevo. Si
es un smbolo 0, ser el smbolo central, con lo que la mquina se detiene al haber finalizado el
cmputo.
Modificaciones equivalentes[editar]
Una razn para aceptar la mquina de Turing como un modelo general de cmputo es que el
modelo que hemos definido anteriormente es equivalente a muchas versiones modificadas que en
principio pareciera incrementar el poder computacional.
Donde
lo tanto,
significa que se pasa del estado q al p, se escribe
actual y la cabeza se queda sobre la celda actual.
en la celda
Esta modificacin se denota al igual que una MT sencilla, lo que la hace diferente es que la cinta
es infinita tanto por la derecha como por la izquierda, lo cual permite realizar transiciones iniciales
como
Es aquella que mediante la cual cada celda de la cinta de una mquina sencilla se divide en
subceldas. Cada celda es as capaz de contener varios smbolos de la cinta. Por ejemplo, la cinta
de la figura tiene cada celda subdividida en tres subceldas.
Se dice que esta cinta tiene mltiples pistas puesto que cada celda de esta mquina de Turing
contiene mltiples caracteres, el contenido de las celdas de la cinta puede ser representado
mediante n-tuplas ordenadas. Los movimientos que realice esta mquina dependern 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.
Diagrama de una mquina de Turing multicinta, las flechas indican los cabezales de lectura/escritura.
Una MT con ms de una cinta consiste de un control finito con k cabezales lectores/escritores
yk cintas. Cada cinta es infinita en ambos sentidos. La MT define su movimiento dependiendo del
smbolo que est leyendo cada uno de sus cabezales, da reglas de sustitucin para cada uno de
los smbolos y direccin de movimiento para cada uno de los cabezales. Inicialmente la MT
empieza con la entrada en la primera cinta y el resto de las cintas en blanco.
Una MT multidimensional es aquella cuya cinta puede verse como extendindose infinitamente en
ms de una direccin, el ejemplo ms bsico sera el de una mquina bidimensional cuya cinta se
extendera infinitamente hacia arriba, abajo, derecha e izquierda.
En la modificacin bidimensional de MT que se muestra en la figura tambin se agregan dos
nuevos movimientos del cabezal {U,D} (es decir arriba y abajo). De esta forma la definicin de los
movimientos que realiza el cabezal ser {L,R,U,D}.
La entrada de una mquina de Turing viene determinada por el estado actual y el smbolo ledo, un
par (estado, smbolo), siendo el cambio de estado, la escritura de un nuevo smbolo y el
movimiento del cabezal, las acciones a tomar en funcin de una entrada. En el caso de que para
cada par (estado, smbolo) posible exista a lo sumo una posibilidad de ejecucin, se dir que es
una mquina de Turing determinista, mientras que en el caso de que exista al menos un par
(estado, smbolo) con ms de una posible combinacin de actuaciones se dir que se trata de una
mquina de Turing no determinista.
La funcin de transicin
Cmo sabe una mquina no determinista qu accin tomar de las varias posibles? Hay dos
formas de verlo: una es decir que la mquina es "el mejor adivino posible", esto es, que siempre
elige la transicin que finalmente la llevar a un estado final de aceptacin. La otra es imaginarse
que la mquina se "clona", bifurcndose en varias copias, cada una de las cuales sigue una de las
posibles transiciones. Mientras que una mquina determinista sigue un nico "camino
palabra en un tiempo
. Es decir, el no determinismo permitir reducir la complejidad de la
solucin de los problemas, permitiendo resolver, por ejemplo, problemas de complejidad
exponencial en un tiempo polinmico.
donde
es alfabeto de entrada y
Smbolo
.
.
.
Smbolo
.
.
.
transicin
se codifica usando ceros como separadores entre los estados,
los smbolos del alfabeto de cinta y la directriz de desplazamiento . As, la
transicin
se codifica como
donde
es
donde
es la codificacin de la -sima transicin de M. Puesto que el orden en que se
representen las transiciones de una MT no es relevante, una misma MT tiene varias codificaciones
diferentes. Esto no representa ninguna desventaja prctica o conceptual ya que no se pretende
que las codificaciones sean nicas.
Una mquina de Turing computa una determinada funcin parcial de carcter definido y unvoca,
definida sobre las secuencias de posibles cadenas de smbolos de su alfabeto. En este sentido se
puede considerar como equivalente a unprograma de ordenador, o a un algoritmo. Sin embargo es
posible realizar una codificacin de la tabla que representa a una mquina de Turing, a su vez,
como una secuencia de smbolos en un determinado alfabeto; por ello, podemos construir una
mquina de Turing que acepte como entrada la tabla que representa a otra mquina de Turing, y,
de esta manera, simule su comportamiento.
En 1947, Turing indic:
Se puede demostrar que es posible construir una mquina especial de este tipo que pueda realizar el trabajo
de todas las dems. Esta mquina especial puede ser denominada mquina universal.
Con esta codificacin de tablas como cadenas, se abre la posibilidad de que unas mquinas de
Turing se comporten como otras mquinas de Turing. Sin embargo, muchas de sus posibilidades
son indecidibles, pues no admiten una solucin algortmica. Por ejemplo, un problema interesante
es determinar si una mquina de Turing cualquiera se parar en un tiempo finito sobre una
determinada entrada; problema conocido como problema de la parada, y que Turing demostr que
era indecidible. En general, se puede demostrar que cualquier cuestin no trivial sobre el
comportamiento o la salida de una mquina de Turing es un problema indecidible.
El concepto de Mquina de Turing universal est relacionado con el de un sistema
operativo bsico, pues puede ejecutar cualquier instruccin computable sobre l. 6
En 1985, Deutsch present el diseo de la primera Mquina cuntica basada en una mquina de
Turing. Con este fin enunci una nueva variante la tesis de Church-Turing dando lugar al
denominado "principio de Church-Turing-Deutsch".
La estructura de una mquina de Turing cuntica es muy similar a la de una mquina de Turing
clsica. Est compuesta por los tres elementos clsicos:
Un procesador finito.
Un cabezal.
El procesador contiene el conjunto de instrucciones que se aplica sobre el elemento de la cinta
sealado por el cabezal. El resultado depender del qubit de la cinta y del estado del procesador.
El procesador ejecuta una instruccin por unidad de tiempo.
La cinta de memoria es similar a la de una mquina de Turing tradicional. La nica diferencia es
que cada elemento de la cinta de la mquina cuntica es un qubit. El alfabeto de esta nueva
mquina est formado por el espacio de valores delqubit. La posicin del cabezal se representa
con una variable entera.
Vase tambin[editar]
Teora de autmatas
Sistema combinacional
Autmata finito
Mquina abstracta
Problema de la parada
Jerarqua de Chomsky
Juego de la vida
Clculo lambda
Referencias[editar]
Notas al pie[editar]
1.
Volver arriba The idea came to him in mid-1935 (perhaps, see more in the History
section) after a question posed by M. H. A. Newman in his lectures -- "Was there a definite method, or as
Newman put it, a mechanical process which could be applied to a mathematical statement, and which would
come up with the answer as to whether it was provable" (Hodges 1983:93). Turing envi su artculo el 31 de
mayo de 1936 a la London Mathematical Society para su publicacin en la revista Proceedings (cf Hodges
1983:112), pero no fue publicada hasta principios de 1937 (cf Hodges 1983:129).
2.
3.
4.
5.
6.
Volver arriba Prez, Ivn (2005). Lenguaje y Compiladores (en espaol). p. 137.
Volver arriba Paun, Gheorghe (2002). II. Prerequisites. Membrane Computing: An
Introduction (en ingls). 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.