Académique Documents
Professionnel 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 decomputador y es particularmente
til en la explicacin de las funciones de una 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 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
1 Historia
2 Descripcin informal
3 Definicin formal
3.1 Funcionamiento
4 Ejemplo
5 Modificaciones equivalentes
11 Vase tambin
12 Referencias
12.2 Bibliografa
13 Enlaces externos
Historia[editar]
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 XXcaracteriza 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[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).
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 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.
3.
4.
Mueve el cabezal (que es descrito por dk y puede tener los valores: 'L' para un
paso a la izquierda, o 'R' para un paso a la derecha, o 'N' para permanecer en el mismo
lugar) y luego
Definicin formal[editar]
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 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 movimiento a la izquierda y
es el movimiento a la 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:
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.
, posee el conjunto
regular de la forma
, el lenguaje de salida
el smbolo denominado "blanco". Esta mquina reconoce la expresin
con
Una transicin desde un estado a otro, se representa mediante una arista dirigida que
une a estos vrtices, y est 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.
Descripcin instantnea[editar]
Es una secuencia de la forma
donde
y
que escribe el estado
de una MT. La cinta contiene la cadena
seguida de infinitos blancos. El cabezal
seala el primer smbolo de
.
Por ejemplo, para la mquina de Turing
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
y el estado inicial es
describe la funcin de transicin es la siguiente:
Estado
. La tabla que
Smbolo ledo
Smbolo escrito
10
11
Estado
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[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
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.
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 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