Documente Academic
Documente Profesional
Documente Cultură
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:
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.
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
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
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.
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 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 .
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.
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.
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}.
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.
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.
donde
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).
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
es
donde
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.
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.