Está en la página 1de 14

Mquina de Turing

Saltar a: navegacin, bsqueda Para otros usos de este trmino, vase Turing (desambiguacin).

Una mquina de Turing (MT) 1 es un modelo computacional que realiza una lectura/escritura de manera automtica 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 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.

Contenido

1 Historia 2 Definicin formal o 2.1 Funcionamiento o 2.2 Representacin como diagrama de estados o 2.3 Descripcin instantnea 3 Ejemplo 4 Modificaciones equivalentes o 4.1 Mquina de Turing con movimiento stay o "esperar" o 4.2 Mquina de Turing con cinta infinita a ambos lados o 4.3 Mquina de Turing con cinta multipista o 4.4 Mquina de Turing multicinta o 4.5 Mquina de Turing multidimensional

5 Mquina de Turing determinista y no determinista 6 Problema de la parada (halting problem) 7 Codificacin de una mquina de Turing 8 Mquina de Turing universal 9 Mquina de Turing cuntica 10 Vase tambin 11 Enlaces externos 12 Referencias o 12.1 Notas al pie
o

12.2 Bibliografa

Historia

Representacin artstica de una mquina de Turing. Alan Turing introdujo el concepto de mquina de Turing en el trabajo On computable numbers, with an application to the Entscheidungsproblem, publicado por la Sociedad Matemtica de Londres en 1936, en el que se estudiaba la cuestin planteada por David Hilbert sobre si las matemticas son decidibles, es decir, si hay un mtodo definido que pueda aplicarse a cualquier sentencia matemtica y que nos diga si esa sentencia es cierta o no. Turing ide un modelo formal de computador, la mquina de Turing, y demostr que existan problemas que una mquina no poda resolver. Con este aparato extremadamente sencillo es posible realizar cualquier cmputo que un computador digital sea capaz de realizar. Mediante este modelo terico y el anlisis de la complejidad de los algoritmos, fue posible la categorizacin de problemas computacionales de acuerdo a su comportamiento, apareciendo as, el conjunto de problemas denominados P y NP, cuyas soluciones pueden encontrarse en tiempo polinmico por mquinas de Turing deterministas y no deterministas, respectivamente. Precisamente, la tesis de Church-Turing formulada por Alan Turing y Alonzo Church, de forma independiente a mediados del siglo XX caracteriza la nocin informal de computabilidad con la computacin mediante una mquina de Turing.2 La idea subyacente es el concepto de que una mquina de Turing puede verse como un autmata ejecutando un procedimiento efectivo definido formalmente, donde el espacio de memoria de trabajo es ilimitado, pero en un momento determinado slo una parte finita es accesible.

Definicin formal
Una mquina de Turing con una sola cinta puede definirse como una 7-tupla

donde:3

es un conjunto finito de estados. es un conjunto finito de smbolos distinto del espacio en blanco, denominado alfabeto de mquina o de entrada. es un conjunto finito de smbolos de cinta, denominado alfabeto de cinta ( ). es el estado inicial. es un smbolo denominado blanco, y es el nico smbolo que se puede repetir un nmero infinito de veces. es el conjunto de estados finales de aceptacin. es una funcin parcial denominada funcin de transicin, donde es un movimiento a la izquierda y es el movimiento a la derecha.

Existen en la literatura un abundante nmero de definiciones alternativas, pero todas ellas tienen el mismo poder computacional, por ejemplo se puede aadir el smbolo como smbolo de "no movimiento" en un paso de cmputo.

Funcionamiento
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:

Mover el cabezal lector/escritor hacia la derecha.

Visualizacin de una mquina de Turing, en la que se ve el cabezal y la cinta que se lee.

Mover el cabezal lector/escritor hacia la izquierda.

El cmputo se determina a partir de una tabla de estados de la forma: (estado, valor) (nuevo estado, nuevo valor, direccin)

Esta tabla toma como parmetros el estado actual de la mquina y el carcter ledo de la cinta, dando la direccin para mover el cabezal, el nuevo estado de la mquina y el valor a escribir en la cinta. La memoria es la cinta de la mquina que se divide en espacios de trabajo denominados celdas, donde se pueden escribir y leer smbolos. Inicialmente todas las celdas contienen un smbolo especial denominado "blanco". Las instrucciones que determinan el funcionamiento de la mquina tienen la forma, "si estamos en el estado x leyendo la posicin y, donde hay escrito el smbolo z, entonces este smbolo debe ser reemplazado por este otro smbolo, y pasar a leer la celda siguiente, bien a la izquierda o bien a la derecha". La mquina de Turing puede considerarse como un autmata capaz de reconocer lenguajes formales. En ese sentido, es capaz de reconocer los lenguajes recursivamente enumerables, de acuerdo a la jerarqua de Chomsky. Su potencia es, por tanto, superior a otros tipos de autmatas, como el autmata finito, o el autmata con pila, o igual a otros modelos con la misma potencia computacional.

Representacin como diagrama de estados


Las maquinas de Turing pueden representarse mediante grafos particulares, tambin llamados diagramas de estados finitos, de la siguiente manera:

Esta mquina de Turing est definida sobre el alfabeto , posee el conjunto de estados , con las transiciones que se pueden ver. Su estado inicial es y el estado final es , el lenguaje de salida siendo el smbolo denominado "blanco". Esta mquina reconoce la expresin regular de la forma con .

Los estados se representan como vrtices, etiquetados con su nombre en el interior. Una transicin desde un estado a otro, se representa mediante una arista dirigida que une a estos vrtices, y esta rotulada por smbolo que lee el cabezal/smbolo que escribir el cabezal, movimiento del cabezal. El estado inicial se caracteriza por tener una arista que llega a l y que no proviene de ningn otro vrtice. El o los estados finales se representan mediante vrtices que estn encerrados a su vez por otra circunferencia.

Descripcin instantnea
Es una secuencia de la forma donde de una MT. La cinta contiene la cadena seala el primer smbolo de . Por ejemplo, para la mquina de Turing y que escribe el estado seguida de infinitos blancos. El cabezal

con las transiciones

La descripcin instantnea para la cinta 1011 es:

Ejemplo
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 y el estado inicial es describe la funcin de transicin es la siguiente: Estado Smbolo ledo Smbolo escrito Mov. Estado sig. 1 1 0 1 . La tabla que

0 0 1 1 0 1 0

0 1 1 1 0 1 1

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 Cinta 1 2 3 4 5 6 7 8 11 01 010 0100 0101 0101 0101 1101

9 10 11 12 13 14 15 Parada

1001 1001 10010 10011 10011 10011 11011

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

Mquina de Turing con movimiento stay o "esperar"


La funcin de transicin de la MT sencilla esta definida por

la cual puede ser modificada como

Donde significa "permanecer" o "esperar", es decir no mover el cabezal de lectura/escritura. Por lo tanto, significa que se pasa del estado q al p, se escribe en la celda actual y la cabeza se queda sobre la celda actual.

Mquina de Turing con cinta infinita a ambos lados

Mquina de Turing con cinta infinita a ambos lados 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 .

Mquina de Turing con cinta multipista

Subdivisin de una celda de la cinta. 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 est 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.

Mquina de Turing multicinta

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 y k 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.

Mquina de Turing multidimensional

Diagrama de una mquina de Turing bidimensional. 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}.

Mquina de Turing determinista y no determinista


Vase tambin: Complejidad computacional

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 en el caso no determinista, queda definida como sigue:

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 computacional", una mquina no determinista tiene un "rbol computacional". Si cualquiera de las ramas del rbol finaliza en un estado de aceptacin, se dice que la mquina acepta la entrada. La capacidad de cmputo de ambas versiones es equivalente; se puede demostrar que dada una mquina de Turing no determinista existe otra mquina de Turing determinista equivalente, en el sentido de que reconoce el mismo lenguaje, y viceversa. No obstante, la velocidad de ejecucin de ambos formalismos no es la misma, pues si una mquina no determinista M reconoce una cierta palabra de tamao n en un tiempo , la mquina determinista equivalente reconocer la 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.

Problema de la parada (halting problem)


Vase tambin: Problema de la parada

El problema de la parada o problema de la detencin (halting problem en ingls) para mquinas de Turing consiste en: dada una MT M y una palabra w, determinar si M terminar en un nmero finito de pasos cuando se ejecuta usando w como entrada. Alan Turing, en su famoso artculo "On computable numbers, with an application to the Entscheidungsproblem" (1936), demostr que el problema de la parada de la mquina de Turing es indecidible, en el sentido de que ninguna mquina de Turing lo puede resolver.

Codificacin de una mquina de Turing


Toda mquina de Turing puede codificarse como una secuencia binaria finita, es decir una secuencia finita de ceros y unos. Para simplificar la codificacin, suponemos que toda MT tiene un nico estado inicial denotado por , y un nico estado final denotado . Tendremos que para una MT M de la forma

donde

representa el smbolo blanco 0,

b (segn se desee denotar), es alfabeto de entrada y son los smbolos auxiliares utilizados por M (cada MT utiliza su propia coleccin finito de smbolos auxiliares).

Todos estos smbolos se codifican como secuencias de unos:

Smbolo Codificacin 1 11 111 . . . . . .

Los estados de una MT Smbolo Codificacin 1 11 . . . . . .

se codifican tambin con secuencias de unos:

Las directrices de desplazamiento

y se codifican con 1, 11, 111, respectivamente.

Una 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

En general, la codificacin de una transicin cualquiera

es

donde

, segn la direccin sea .

Una MT se codifica escribiendo consecutivamente las secuencias de las modificaciones de todas sus transiciones. Ms precisamente, la codificacin de una MT M es de la forma , 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.

Mquina de Turing universal


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 un programa 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.4

Mquina de Turing cuntica

Ilustracin de una mquina de Turing cuntica. 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:

una cinta de memoria infinita en donde cada elemento es un qubit, un procesador finito y 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 del qubit. La posicin del cabezal se representa con una variable entera.

Vase tambin

Problema de la parada Jerarqua de Chomsky Juego de la vida Clculo lambda Teora de autmatas Sistema combinacional Autmata finito Autmata con pila

Enlaces externos

Wikimedia Commons alberga contenido multimedia sobre Mquina de Turing. JTV (Java Turing Visual) permite construir y ejecutar MT Sitio web de Stephen Wolfram Demuestran que la mquina de Turing (2,3) es universal Mquina de Turing construida sobre hardware

Referencias
Notas al pie
1. Teora de Autmatas. Teora de Autmatas, RAI 2012 Universidad Carlos III 2. Gmez de Silva Garza, Gmez de Silva Garza (2008) (en espaol). Introduccin a la computacin. pp. 522. 3. Prez, Ivn (2005) (en espaol). Lenguaje y Compiladores. pp. 137. 4. Paun, Gheorghe (2002). II. Prerequisites (en ingls). Membrane Computing: An Introduction. New 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.

Bibliografa

Feynman, Richard (1996). Conferencias sobre computacin. Graficromo. ISBN 848432-444-3. Consultado el 11 de julio de 2010. Viso, Elisa (2008). Introduccin a la teora de la computacin. ISBN 978-970-325415-6. Consultado el 11 de julio de 2010. De Castro, Rodrigo (2004). Teora de la computacin : lenguajes, autmatas, gramticas. Consultado el 15 de julio de 2010. on computable numbers,with an application to the entscheidungsproblem (en espaol). Consultado el 15 de julio de 2010. Variantes de una Mquina de Turing (en espaol). Consultado el 11 de julio de 2010.