Академический Документы
Профессиональный Документы
Культура Документы
Máquina de Turing
Máquina de Turing (MT) es 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á conformado por un alfabeto de entrada y uno de salida, un símbolo 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 función de transición, que recibe un estado inicial y una cadena de caracteres(la cinta,
la cual es finita por la izquierda) pertenecientes al alfabeto de entrada. Luego va leyendo una celda de la cinta,
borrando el símbolo, escribir el nuevo símbolo perteneciente al alfabeto de salida y finalmente avanza a la izquierda
o a la derecha(solo una celda a la vez), repitiendo esto 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.
Historia
El concepto de Máquina de Turing fue
introducido por Alan Turing en el trabajo
On computable numbers, with an
application to the Entscheidungsproblem,
publicado por la Sociedad Matemática de
Londres en 1936, en el cual se estudiaba la
cuestión planteada por David Hilbert sobre
si las matemáticas son decidibles, es decir,
si hay un método definido que pueda Diagrama artístico de una máquina de Turing.
Con este aparato extremadamente sencillo es posible realizar cualquier cómputo que un computador digital sea capaz
de realizar.
Mediante este modelo teórico y el análisis de complejidad de algoritmos, fue posible la categorización de problemas
computacionales de acuerdo a su comportamiento, apareciendo así, el conjunto de problemas denominados P y NP,
cuyas soluciones en tiempo polinómico son encontradas según el determinismo y no determinismo respectivamente
de la máquina de Turing.
De hecho, se puede probar matemáticamente que para cualquier programa de computadora es posible crear una
máquina de Turing equivalente. Esta prueba resulta de la Tesis de Church-Turing, formulada por Alan Turing y
Alonzo Church, de forma independiente a mediados del siglo XX.[1]
La idea subyacente es el concepto de que una máquina de Turing es una persona 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.
Máquina de Turing 2
Definición formal
Una máquina de Turing con una sola cinta puede ser definida como una 7-tupla ,
[2]
donde:
• es un conjunto finito de estados.
• es un conjunto finito de símbolos distinto del espacio en blanco, denominado alfabeto de máquina o de
entrada.
• es un conjunto finito de símbolos de cinta, denominado alfabeto de cinta. ( )
• es el estado inicial.
• es un símbolo denominado blanco, y es el único símbolo que se puede repetir un número infinito de veces.
• es el conjunto de estados finales de aceptación.
• es una función parcial denominada función de transición, donde es un
movimiento a la izquierda y es el movimiento a la derecha.
Existen en la literatura un abundante número de definiciones alternativas, pero todas ellas tienen el mismo poder
computacional, por ejemplo se puede añadir el símbolo como símbolo de "no movimiento" en un paso de
cómputo.
Funcionamiento
La máquina 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 máquina se
limitan a:
• avanzar el cabezal lector/escritor hacia la derecha.
• avanzar el cabezal lector/escritor hacia la izquierda.
El cómputo es determinado a partir de una tabla de
estados de la forma:
(estado, valor) (nuevo estado, nuevo valor,
dirección)
Esta tabla toma como parámetros el estado actual de la Visualización de una Maquina de Turing, en la que se ve el cabezal y
la cinta que se lee
máquina y el carácter leído de la cinta, dando la
dirección para mover el cabezal, el nuevo estado de la
máquina y el valor a ser escrito en la cinta.
La memoria será la cinta la cual se divide en espacios de trabajo denominados celdas, donde se pueden escribir y leer
símbolos. Inicialmente todas las celdas contienen un símbolo especial denominado “blanco”. Las instrucciones que
determinan el funcionamiento de la máquina tienen la forma, “si estamos en el estado x leyendo la posición y, donde
hay escrito el símbolo z, entonces este símbolo debe ser reemplazado por este otro símbolo, y pasar a leer la celda
siguiente, bien a la izquierda o bien a la derecha”. La máquina de Turing puede considerarse como un autómata
capaz de reconocer lenguajes formales. En ese sentido es capaz de reconocer los lenguajes recursivamente
enumerables, de acuerdo a la jerarquía de Chomsky. Su potencia es, por tanto, superior a otros tipos de autómatas,
como el autómata finito, o el autómata con pila, o igual a otros modelos con la misma potencia computacional.
Máquina de Turing 3
Descripción instantánea(DI).
Secuencia de la forma α1qα2 donde α1,α2 y . Describe la situación de una MT La cinta contiene la
cadena α1α2 seguida de infinitos blancos. El cabezal señala el primer símbolo de α2. ejemplo:
Para la MT=({p,q},{0,1},{0,1,x}, δ,p,Δ,{q}) con las transiciones
δ(p,1)=(p,x,D) δ(p,0)=(p,0,D)
δ(p,Δ)=(q,Δ,D)
Realizaremos la DI para la cinta 1011.
p1011ΔΔ.. → xp011ΔΔ.. → x0p11ΔΔ.. → x0xp1ΔΔ.. → x0xxpΔΔ.. → x0xxqΔΔ..
Ejemplo
Definimos una máquina de Turing sobre el alfabeto , donde 0 representa el símbolo blanco. La máquina
comenzará su proceso situada sobre un símbolo "1" de una serie. La máquina de Turing copiará el número de
símbolos "1" que encuentre hasta el primer blanco detrás de dicho símbolo blanco. Es decir, situada sobre el 1
situado en el extremo izquierdo, doblará el número de símbolos 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 . La tabla que describe la función de
transición es la siguiente:
Máquina de Turing 4
1 0
1 1
0 0
0 1
1 1
1 1
0 0
1 1
0 1
El funcionamiento de una computación de esta máquina se puede mostrar con el siguiente ejemplo (en negrita se
resalta la posición de la cabeza lectora/escritora):
1 11
2 01
3 010
4 0100
5 0101
6 0101
7 0101
8 1101
9 1001
10 1001
11 10010
12 10011
13 10011
14 10011
15 11011
Parada
La máquina realiza su proceso por medio de un bucle, en el estado inicial s1, reemplaza el primer 1 con un 0, y pasa
al estado s2, con el que avanza hacia la derecha, saltando los símbolos 1 hasta un 0 (que debe existir), cuando lo
encuentra pasa al estado s3, con este estado avanza saltando los 1 hasta encontrar otro 0 (la primera vez no habría
ningún 1). Una vez en el extremo derecho, añade un 1. Después comienza el proceso de retorno; con s4 vuelve a la
izquierda saltando los 1, cuando encuentra un 0 (en el medio de la secuencia), pasa a s5 que continúa 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 símbolo siguiente,
si es un 1, se pasa a otra iteración del bucle, pasando al estado s1 de nuevo. Si es un símbolo 0, será el símbolo
central, con lo que la máquina se detiene al haber finalizado su cómputo.
Máquina de Turing 5
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.
En esta modificación de la MT también se agrega dos nuevos movimientos del cabezal {U,D} (es decir arriba y
abajo). De esta forma la definición de los movimientos que realiza el cabezal será {L,R,U,D}.
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 las acciones a tomar en
función de una entrada. En el caso de que para cada par estado y 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.
La función de transición en el caso no determinista, queda definida como sigue:
¿Cómo sabe una máquina no determinista cuál de las varias actuaciones tomar? Hay dos formas de verlo: una es
decir que la máquina es "el mejor adivino posible", esto es, que siempre elige la transición que eventualmente la
llevará a un estado final de aceptación. La otra es imaginarse que la máquina se "clona", bifurcándose en varias
copias, cada una de las cuales sigue una de las posibles transiciones. Mientras que una máquina determinista sigue
un solo "camino computacional", una máquina no determinista tiene un "árbol computacional". Si cualquiera de las
ramas del árbol finaliza en un estado de aceptación, se dice que la máquina acepta la entrada.
La capacidad de cómputo de ambas versiones es equivalente; se puede demostrar que dada una máquina de Turing
no determinista existe otra máquina de Turing determinista equivalente, en el sentido de que reconoce el mismo
lenguaje, y viceversa. No obstante, la velocidad de ejecución de ambos formalismos no es la misma, pues si una
máquina no determinista M reconoce una cierta palabra de tamaño n en un tiempo , la máquina
determinista equivalente reconocerá la palabra en un tiempo . Es decir, el no determinismo permitirá
reducir la complejidad de la solución de los problemas, permitiendo resolver, por ejemplo, problemas de
complejidad exponencial en un tiempo polinómico.
Máquina de Turing 7
El problema de la parada o problema de la detención (halting problem en ingles) para máquinas de Turing
consiste en: dada una MT M y una palabra w, determinar si M terminará en un número finito de pasos cuando es
ejecutada usando w como dato de entrada. Alan Turing, en su famoso artículo "On Computable Numbers, with an
Application to the Entscheidungsproblem" (1936), demostró que el problema de la parada de la Máquina de Turing
es indecidible, en el sentido de que ninguna máquina de Turing lo puede resolver.
Símbolo Codificación
11
111
. .
. .
. .
Símbolo Codificación
11
. .
. .
. .
Las directrices de desplazamiento R,L y S se codifican con 1,11,111, respectivamente. Una transición δ(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 R. Así, la transición δ( , R) se codifica como 01110110111110111010. En
general, la codificación de una transición cualquiera δ( , R) es donde t= 1 ó
2 ó 3, según la dirección sea derecha(R), izquierda(L), esperar(S). Una MT se codifica escribiendo consecutivamente
las secuencias de las modificaciones de todas sus transiciones.Mas precisamente, la codificación de una MT M es de
la forma donde son las codificaciones de las transiciones 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 práctica o conceptual ya que no se pretende que las codificaciones sean únicas.
Máquina de Turing 8
Véase también
• Problema de la parada
• Jerarquía de Chomsky
• Juego de la vida
Enlaces externos
• Wikimedia Commons alberga contenido multimedia sobre Máquina de Turing.Commons
• JTV (Java Turing Visual) [3] permite construir y ejecutar MT
• Sitio web de Stephen Wolfram [4]
• Demuestran que la máquina de Turing 2,3 es universal [5]
• Máquina de Turing construida sobre Hardware [6]
Referencias
Bibliografía
• Feynman, Richard (1996). Conferencias sobre computación [7], graficromo. ISBN 84-8432-444-3. Consultado el 11
de Julio del 2010.
• Viso, Elisa (2008). Introducción a la teoría de la computación [8]. ISBN 978-970-32-5415-6. Consultado el 11 de Julio
del 2010.
• De Castro, Rodrigo (2004). Teoria de la computacion : lenguajes, automatas, gramaticas [9]. Consultado el 15 de
Julio del 2010.
• «on computable numbers,with an application to the entscheidungsproblem [10]» (en español). Consultado el 15 de
Julio de 2010.
• «Variantes de una Máquina de Turing [11]» (en español). Consultado el 11 de Julio de 2010.
Referencias
[1] Gomez De Silva Garza, Gomez De Silva Garza (2008) (en español). Introducción a la computación. pp. 522.
[2] perez, ivan (2005) (en español). Lenguaje y Compiladores. pp. 137.
[3] http:/ / www. dcc. uchile. cl/ jtv/
[4] http:/ / www. wolframscience. com
[5] http:/ / neofronteras. com/ ?p=1008
[6] http:/ / aturingmachine. com/
[7] 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
[8] 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%20de%20turing& f=false
[9] 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
[10] http:/ / www. thocp. net/ biographies/ papers/ turing_oncomputablenumbers_1936. pdf
[11] http:/ / sistemas. itlp. edu. mx/ tutoriales/ teoriadelacomputacion/ t44. htm
Fuentes y contribuyentes del artículo 10
Licencia
Creative Commons Attribution-Share Alike 3.0 Unported
http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/