Beruflich Dokumente
Kultur Dokumente
Mquina de Turing
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 un CPU dentro de un computador. La mquina de Turing fue descrita por 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 movers 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 formal teora de la computacin conocida como la tesis de Church-Turing. La tesis seala que las mquinas de Turing de hecho capturan la nocin informal de un mtodo eficaz en la lgica y las matemticas y proporcionan una precisa definicin 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.
Mquina de Turing
Historia
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 Representacin artstica de una mquina de Turing. 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.[3] 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.
Descripcin informal
La mquina de Turing modela matemticamente a una mquina que opera mecnicamente sobre una cinta. En esta cinta hay smbolos que la mquina puede leer y escribir, uno a la vez, usando un Aqu se muestra el estado interno (q1) dentro del cabezal, y la ilustracin describe cabezal lector/escritor de cinta. La operacin la cinta como siendo infinita y lledada previamente con '0', el smbolo sirviendo est completamente determinada por un como blanco. El estado completo del sistema (su configuracin) consiste del estado conjunto finito de instrucciones elementales interno, el contenido de las casillas sombreadas incluyendo el blanco ledo el como "en el estado 42, si el smbolo visto es cabezal ("11B") y la posicin del cabezal. (Dibujo despus de Minsky (1967) p. 121). 0, escribe un 1; Si el smbolo visto es 1, cambia al estado 17; en el estado 17, si el smbolo visto es 0, escribe un 1 y cambia al estado 6; etc". En el artculo original ("Sobre nmeros computables con una aplicacin al Entscheidungsproblem"), Turing no imagina un mecanismo, sino una
Mquina de Turing
persona a la que l llama la "computadora", quien ejecuta servilmente estas reglas mecnicas deterministas (o como Turing pone, "de una manera desganada"). Ms precisamente, una mquina de Turing consta de: 1. Una cinta que se divide en celdas, una al lado de la otra. Cada celda contiene un smbolo de algn alfabeto finito. El alfabeto contiene un smbolo especial llamado blanco (aqu escrito como 'B') y uno o ms smbolos adicionales. La cinta se supone que es arbitrariamente extensible hacia la izquierda y hacia la derecha, es decir, la mquina de Turing siempre es suministrada con tanta cinta como necesite para su computacin. Las celdas que no se hayan escrito Animacin de la mquina de Turing previamente se asumen que estn rellenas con el smbolo blanco. En algunos modelos la cinta tiene un extremo izquierdo marcado con un smbolo especial; la cinta se extiende o es indefinidamente extensible hacia la derecha. 2. Un cabezal que puede leer y escribir smbolos en la cinta y mover la cinta a la izquierda y a la derecha una (y slo una) celda a la vez. En algunos modelos el cabezal se mueve y la cinta es estacionaria. 3. Un registro de estado que almacena el estado de la mquina de Turing, uno de los estados finitos. Hay un especial estado inicial con que el registro de estado es iniciado. Turing escribe que estos estados reemplazan el "estado de la mente" en que ordinariamente estara una persona realizando clculos. 4. Una tabla finita de instrucciones (llamada ocasionalmente como tabla de accin o funcin de transicin). Las instrucciones son usualmente 5-tuplas: qiajqi1aj1dk, (a veces 4-tuplas), que, dado el estado (qi) la mquina est actualmente en y el smbolo (aj) 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): Borra o escribe un smbolo (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 uno 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 smbolo (aj1) y mover el cabezal a la izquierda o la derecha (dk). Especficamente, la tabla indica a la mquina: (ia) borrar o escribir un smbolo 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 instruccin. En algunos modelos, si no hay ninguna entrada en la tabla para la actual combinacin de smbolo y estado, la mquina se detendr; otros modelos requieren que estn llenas todas las entradas. Note que cada parte de la mquina su estado y colecciones de smbolos 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.
Definicin formal
Una mquina de Turing [4]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
Mquina de Turing 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 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. Mover el cabezal lector/escritor hacia la izquierda. El cmputo se determina a partir de una tabla de estados de la forma: (estado, valor) direccin) (nuevo estado, nuevo valor,
Visualizacin de una mquina de Turing, en la que se ve el cabezal y la cinta que se lee.
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.
Mquina de Turing
Descripcin instantnea
Es una secuencia de la forma contiene la cadena donde y que escribe el estado de una MT. La cinta . seguida de infinitos blancos. El cabezal seala el primer smbolo de
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
Mquina de Turing 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 transicin es la siguiente:
Estado Smbolo ledo Smbolo escrito Mov. Estado sig. 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 1
y el estado inicial es
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 9 10 11 12 13 14 15 Parada 11 01 010 0100 0101 0101 0101 1101 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,
Mquina de Turing 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
Mquina de Turing
Diagrama de una mquina de Turing multicinta, las flechas indican los cabezales de lectura/escritura.
La entrada de una mquina de Turing viene determinada por el estado actual y el smbolo ledo, un par (estado, smbolo), siendo Diagrama de una mquina de Turing bidimensional. 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.
Mquina de Turing 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 complejidad exponencial en un tiempo polinmico. . Es decir, el no determinismo permitir
reducir la complejidad de la solucin de los problemas, permitiendo resolver, por ejemplo, problemas de
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.
son los smbolos auxiliares utilizados por M (cada MT utiliza su propia coleccin finito de
Mquina de Turing
10
Smbolo
Codificacin 1 11
. . .
. . .
se codifica usando ceros como separadores entre los estados, los smbolos del alfabeto de . As, la transicin
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.
Mquina de Turing
11
Enlaces externos
Wikimedia Commons alberga contenido multimedia sobre Mquina de TuringCommons. JTV (Java Turing Visual) [7] permite construir y ejecutar MT Sitio web de Stephen Wolfram [8] Demuestran que la mquina de Turing (2,3) es universal [9] Mquina de Turing construida sobre hardware [10] Video de mquina de Turing mecnica [11] en Youtube
Referencias
Notas al pie
[1] 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] See the definition of "innings" on Wiktionary [3] Gmez de Silva Garza, Gmez de Silva Garza (2008) (en espaol). Introduccin a la computacin. pp.522. [4] Teora de Autmatas (http:/ / teoriaautomatas. blogspot. com. es/ 2012/ 02/ turing. html). Teora de Autmatas, RAI 2012 Universidad Carlos III [5] Prez, Ivn (2005) (en espaol). Lenguaje y Compiladores. pp.137. [6] Paun, Gheorghe (2002). II. Prerequisites (http:/ / dl. acm. org/ citation. cfm?id=581822) (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. [7] http:/ / www. dcc. uchile. cl/ jtv/
Mquina de Turing
[8] http:/ / www. wolframscience. com [9] http:/ / neofronteras. com/ ?p=1008 [10] http:/ / aturingmachine. com/ [11] http:/ / www. youtube. com/ watch?v=aBToqFJLrl4
12
Bibliografa
Feynman, Richard (1996). Conferencias sobre computacin (http://books.google.cl/ books?id=nMhfwj9WGz4C&printsec=frontcover&dq=conferencias+sobre+computacion&hl=es& ei=Ul85TOfaKtCQuAe17bWXBA&sa=X&oi=book_result&ct=book-thumbnail&resnum=1& ved=0CC8Q6wEwAA#v=onepage&q&f=false). Graficromo. ISBN 84-8432-444-3. Consultado el 11 de julio de 2010. Viso, Elisa (2008). Introduccin a la teora de la computacin (http://books.google.cl/ books?id=NXQE8NJw9d4C&pg=PA254&dq=maquina+de+turing&hl=es& ei=J2A5TPXsD4SRuAfshLSkBA&sa=X&oi=book_result&ct=result&resnum=4& ved=0CDsQ6AEwAw#v=onepage&q=maquina de turing&f=false). ISBN 978-970-32-5415-6. Consultado el 11 de julio de 2010. De Castro, Rodrigo (2004). Teora de la computacin : lenguajes, autmatas, gramticas (http://books.google. cl/books?id=EAbc79tlWD4C&pg=PA201&dq=codificacion+de+una+maquina+de+turing&hl=es& ei=QF8-TIeCCoWKlwf19-T4BQ&sa=X&oi=book_result&ct=result&resnum=1& ved=0CCgQ6AEwAA#v=onepage&q&f=false). Consultado el 15 de julio de 2010. on computable numbers,with an application to the entscheidungsproblem (http://www.thocp.net/biographies/ papers/turing_oncomputablenumbers_1936.pdf) (en espaol). Consultado el 15 de juliode 2010. Variantes de una Mquina de Turing (http://sistemas.itlp.edu.mx/tutoriales/teoriadelacomputacion/t44. htm) (en espaol). Consultado el 11 de juliode 2010.
13
Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/