Está en la página 1de 18

Mquina de Turing

Programacin II
Margarita lvarez
Mquina de Turing
1937 Alan Mathison Turing: On computable numbers with an application to
the Entscheidungsproblem
Una Mquina de Turing es un dispositivo matemtico abstracto de clculo que
introduce el concepto de algoritmo. Es un hecho universalmente aceptado que la
mquina de Turing es una contrapartida formal, totalmente satisfactoria, de la nocin
de algoritmo. De hecho nadie ha podido encontrar un proceso que pueda
naturalmente ser llamado un procedimiento general y no pueda realizarse con una
mquina de Turing.
La trascendencia del argumento de Turing es que toda mquina es capaz de
ejecutar todo procedimiento general o efectivo. Se conoce en la actualidad como
Tesis de Turing.
Esta hiptesis, que no es matemticamente demostrable o rechazable, ha
resistido las pruebas del tiempo, ya que nadie hasta hoy a propuesto un modelo de
computacin terico ms general.
Precursora abstracta de las mquinas de calcular automticas.
Demuestra la existencia de problemas irresolubles, los que ninguna mquina de
Turing (y ningn ordenador) puede resolver o calcular. (Teora de la
Computabilidad).
Descripcin informal
Una mquina de Turing es un autmata que consiste de:
1) Una unidad de control
2) Una memoria auxiliar que es una cinta infinita con acceso relativamente
no-restringido. La cinta infinita se considera como dividida en cuadrados, cada uno
contiene un smbolo (incluyendo un smbolo que opera como espacio en blanco). La
cabeza lectora/grabadora de la cinta puede moverse a lo largo de la cinta en ambas
direcciones leyendo y/o escribiendo el contenido de un cuadrado uno a uno.
La cinta almacena inicialmente la entrada y subsecuentemente la mquina
de Turing usa su cinta como almacenamiento operacional.
Cabeza de lectura / escritura
Cinta infinita
Descripcin formal
Una mquina de Turing es:
A = (Q, E,t, o,q
0
,F) donde:
Q es un conjunto finito y no vaco de estados.
E es el alfabeto de entrada, no vaco.
t es el alfabeto de la cinta, no vaco, E c t* .
q
0
e Q es el estado inicial.
F _ Q es el conjunto de estados finales.
o es la funcin de transicin directa. Es una proyeccin:
Q x t en subconjuntos finitos de Q x t x {D,I,N}
Descripcin formal
El funcionamiento de la mquina de Turing est dado por la funcin de
transicin directa:
o(q,A
1
) = (p,A
2
,d) significa que:
1) La unidad de control de la mquina de Turing est actualmente en
el estado q eQ y el smbolo A
1
e t se lee mediante la cabeza de la cinta.
2) Al realizar un movimiento atmico, la unidad de control de la
mquina de Turing cambia al estado p e Q, el smbolo A
1
se reemplaza por
A
2
, y la cabeza lectora/escritora se mueve un cuadrado en direccin d {D, I,
,N}.
Si d = D la cabeza se mueve un cuadrado a la derecha, si d = I la
cabeza se mueve un cuadrado a la izquierda, si d = N la cabeza no se mueve.
Representacin grfica
o(q, X) = (r, Y, D) se puede representar
grficamente de la siguiente manera
q r
X,Y, D
Interpretaciones de la Mquina de Turing
Como un procedimiento: M realizar una serie de computaciones y
eventualmente se detendr con una cadena yet * en su cinta. Esto
ser as para cada posible cadena de entrada. De tal modo, M
establece una relacin entre sus entradas y sus salidas. Para cada
posible xeE * produce a lo sumo un yet *, es decir, define una
funcin parcial FM: E* t *. Las funciones definidas mediante este
mecanismo reciben el nombre de funciones Turing-computables.
Como reconocedora de un lenguaje: Dada una cadena x eE*_ t*,
como entrada a M, puede suceder que la mquina de Turing se
detenga o no. Si Mse detiene, con su unidad de control en estado q,
se dice que Macepta x si q eF, y que Mrechaza x si q eF.
Si Mno se detiene, entonces se dice que ni acepta ni rechaza a x.
Los lenguajes reconocidos por mquinas de Turing reciben el
nombre de lenguajes recursivamente numerables.
Interpretaciones
Ejemplos
L={0
n
1
n
/ n 1}
T = ({q
0
,q
1
,q
2
,q
3
,q
4
,q
5
} , {0,1} , {0,1,B,X,Y} ,o , q
0
, {q
5
})
La funcin o esta dada por la siguiente tabla:
q
0
q
1
0,X,D
0,0,D
Y,Y,D
q
5
1,Y,I
Y,Y,I
X,X,D
Y,Y,D
B,B,N
0,0,I
q
2
q
3
q
4
0 1 B X Y
q
0
q
1
, X, D
q
1
q
1
, 0, D q
2
, Y, I q
1
, Y, D
q
2
q
4
, 0, I q
3
, X, D q
2
, Y, I
q
3
q
5
, B, N q
3
, Y, D
q
4
q
4
, 0, I q
0
, X, D
q
5
Ejemplos
La mquina de Turing que suma dos nmeros naturales expresados en notacin unaria.
q
0
q
1
+,1,D
1,1,D
q
3
+,B,D
B,B,I q
2
T = ({q
0
,q
1
,q
2
,q
3
} , {1,+} , {1,B,+} ,o , q
0
, {q
3
})
La funcin o esta dada por la siguiente tabla:
1 + B
q
0
q
0
, 1, D q
1
, +, D
q
1
q
2
, +, I q
3
,B,I
q
2
q
0
, 1, D
q
3
q
3
,B,D
Mquina de Turing multicinta
Consta de un nmero arbitrario (aunque finito) de
cintas y de cabezas de lectura/escritura por cinta.
Cada tipo de cinta es una secuencia de celdas
infinitas a derecha.
Se asume que el modelo consta de una cinta de
entrada (T
I
) de la que slo se puede leer (no se puede
escribir) ni moverse a izquierda.
Una cinta de salida (T
O
) en la que slo se puede
escribir no puede leer, ni moverse a izquierda.
Un nmero determinado de cintas de trabajo.
En las dos primeras las cabezas slo pueden moverse a la derecha, en tanto que a
las cintas de trabajo se les permite leer y escribir y mover las cabezas en ambos
sentidos.
Con estas observaciones, el funcionamiento de una mquina de Turing multicinta
se puede describir en trminos anlogos que en el caso de la mquina ordinaria.
Descripcin informal
Consta de:
Una cinta de entrada T
I
.
Una cinta de salida T
0
.
k cintas de memoria T
1
, ... , T
k
.
U.C.
T
I
T
1
T
K
T
0
---
---
---
---
La mquina realiza las siguientes
operaciones:
1. La UC cambia de estado.
2. Imprime nuevos smbolos sobre
los smbolos actuales en las
celdas bajo inspeccin (excepto
en T
I
).
3. Se mueven algunas o todas las
cabezas de cintas,
independientemente una de otra
hacia la derecha, izquierda o
permanece en el lugar. Excepto
las cabezas de T
I
y T
O
que no se
pueden mover a la izquierda.
Descripcin formal
Una mquina de Turing de k cintas es una 9-tupla:
M = ( Q, , t, O , o, q, q
o
, z
o
, F ) donde:
Q : conjunto finito de estados.
: alfabeto finito de entrada.
t : alfabeto finito de memoria (de la cinta).
O : alfabeto finito de salida
F _ Q : conjunto de estados finales.
q
o
e Q : estado inicial.
z
o
e t : smbolo inicial del alfabeto de la cinta.
( , t, O : contienen el smbolo especial blanco)
o : funcin de transicin (posiblemente parcial)
o : (Q-F) x E x t
k
Q x t
k
x {D, I, N}
k+1
q : es la funcin (posiblemente parcial) de salida
q : (Q-F) x E x t
k
O x {D, N} definida siempre y cuando o est
definida.
Convenciones
Las funciones de transicin de una mquina de Turing multicinta se
representan por una terna separada por barras, donde cada elemento de la
terna es un conjunto de smbolos que expresan la lectura, escritura y
movimientos respectivos.
x, y
1
, ... , y
k
/ y
1
, ... , y
k
, z / d, d
1
, ... ,d
k
, d
donde:
x: representa el smbolo ledo en T
I
. (x e E)
y
r
: representa el smbolo ledo/escrito en T
r
con 1 s r s k. (y
r
e t)
z: representa el smbolo que se escribe en T
O
. (z e O)
d e { D, N }
d
r
e{ D, I, N } con 1 s r s k
Ejemplo
q
0
q
1
a,Z
0
/Z
0
/N,D
a,B/*/D,D
q
4
b,B/B/N,I
b,*/*/D,I
c,*/*/D,D
B,B/B/N,N
q
2
q
3
c,Z
0
/Z
0
/N,D
La mquina de Turing multicinta (k = 1) que reconoce el lenguaje:
L(G) = { a
n
b
n
c
n
/ n > 1} es la siguiente:
En este caso la mquina de Turing funciona como reconocedora de lenguaje, por lo
tanto no se utiliza la cinta T
O
.
Ejemplo
La mquina de Turing multicinta (k = 2) que calcula n
2
expresado en notacin
unaria es la siguiente:
q
0
q
1
1,Z
0,
Z
0
/ /N,D,D,N
1,B,B/1,X, / D,D,D,N
q
4
B,B,B/ /N,I,I,N
B,1,Y / /N,I,N,N
B,1,X / /N,I,I,N
B,1,Y/, , 1/N,D,N,D
q
2
q
3
B,Z
0
,Z
0
/ / N,D,D,N
B,Z
0
,Y / N,D,D,N
B,B,Y/ /N,I,N,N
B,1,X/ ,Y,1/N,D,N,D
B,1,B/ /N,N,N,N
Mquina de Turing Universal
Turing demostr que la actuacin de una mquina de Turing arbitraria M sobre
una sucesin cualquiera x de smbolos de su cinta puede ser simulada por otra
mquina, la Mquina Universal de Turing.
Los smbolos que la mquina universal va registrando y reconociendo en su cinta
estn agrupados en dos secciones principales: a la izquierda est la descripcin
codificada de la mquina M; a la derecha est la sucesin de smbolos x que M
encontrar al ir inspeccionando la cinta que le es propia.
La mquina universal se construye entonces de modo que su cabezal vaya y
venga entre las dos secciones, izquierda y derecha de la cinta.
Mediante un complejo sistema de marcadores, la mquina universal lleva la
cuenta del estado codificado de M que se est consultando. Turing demostr que el
efecto de la mquina universal sobre la sucesin de smbolos x es exactamente el que
producira Msobre la misma sucesin.
La idea bsica de una mquina universal se trata sencillamente de un intrprete.
En efecto, en la cinta de la mquina universal se puede codificar el programa (es
decir, la funcin de transicin) de toda otra mquina y los datos con que se desea
ejecutar el programa. La mquina universal puede simular entonces, paso a paso, la
ejecucin de dicho programa con esos datos.
Mquina de Turing Universal
Los smbolos del alfabeto pueden codificarse como cadenas de ceros y unos.
Las operaciones sobre los smbolos pueden reducirse a otras ms elementales que
slo operan sobre 0 y 1.
Los estados pueden representarse por nmeros naturales (1, 2, ... , n) expresados
en notacin binaria. Se pueden tambin eliminar los movimientos correspondientes a d.
Con estas convenciones, veremos como se puede representar una mquina de
Turing como una cadena sobre el alfabeto {0,1,c,I,D} donde c es un smbolo especial
usado como separador de instrucciones. Claramente, todo lo que hay que codificar es,
la funcin de transicin. Esto se hace tratando de reproducir la tabla correspondiente.
Se comienza la cadena con ccc y luego se reproduce cada uno de los cuadros de la tabla
lnea por lnea, separndolos entre si por una c, y cada lnea de la siguiente por cc.
La funcin de transicin no especificadas se representan en la codificacin con 0.
La codificacin de la tabla finaliza con ccc.
Mquina de Turing Universal
Smbolo
1 + b
Estado 1 0 01
001 1 1, 1, D 2, 0, D
010 2 3, 0, I 4, 01, I
011 3 1, 1, D
100 4 4, 01, D
ccc 001 1 D c 0100 D c 0 cc 0110 I c 0 c 10001 I cc 0 c 0011 D c 0 cc 0 c 100 01 D c 0 ccc
1
3
+,1,D
1,1,D
4
+,B,D
B,B,I 2
Suma de dos nmeros en notacin unaria.

También podría gustarte