Vous êtes sur la page 1sur 14

Mquina de Turing

Para otros usos de este trmino, vase Turing (desambiguacin).

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

mtodo eficaz en la lgica y las matemticas y proporcionan una definicin precisa 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.
ndice
[ocultar]

1 Historia

2 Descripcin informal

3 Definicin formal

3.1 Funcionamiento

3.2 Representacin como diagrama de estados

3.3 Descripcin instantnea

4 Ejemplo

5 Modificaciones equivalentes

5.1 Mquina de Turing con movimiento stay o "esperar"

5.2 Mquina de Turing con cinta infinita a ambos lados

5.3 Mquina de Turing con cinta multipista

5.4 Mquina de Turing multicinta

5.5 Mquina de Turing multidimensional

6 Mquina de Turing determinista y no determinista

7 Problema de la parada (halting problem)

8 Codificacin de una mquina de Turing

9 Mquina de Turing universal

10 Mquina de Turing cuntica

11 Vase tambin

12 Referencias

12.1 Notas al pie

12.2 Bibliografa

13 Enlaces externos

Historia[editar]

Estatua de Turing en la Universidad de Surrey.

Representacin artstica de una mquina deTuring.

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 porDavid

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

Animacin de la mquina de Turing

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 cabezal lector/escritor de cinta. La operacin est completamente
determinada por un conjunto finito de instrucciones elementales como "en el estado 42, si el

smbolo visto es 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 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 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 estado inicial especial con el que el registro de estado se inicia.
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 un 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 q i1).

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

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[editar]


Las mquinas 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


de estados
inicial es

, posee el conjunto

, con las transiciones que se pueden ver. Su estado


y el estado final es
siendo

regular de la forma

, el lenguaje de salida
el smbolo denominado "blanco". Esta mquina reconoce la expresin

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

El o los estados finales se representan mediante vrtices que estn encerrados a su


vez por otra circunferencia.

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

con las transiciones

La descripcin instantnea para la cinta 1011 es:

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

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

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.

Mquina de Turing con movimiento stay o "esperar"[editar]


La funcin de transicin de la MT sencilla est 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[editar]

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[editar]

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

Mquina de Turing multicinta[editar]

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[editar]

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[editar]


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.

Vous aimerez peut-être aussi