You are on page 1of 10

Captulo X Mquinas de Turing 101

Captulo X

Mquinas de Turing

En este captulo se considerar a las Mquinas de Turing, mecanismo formal base de la


computabilidad. Se definir una Mquina de Turing, su funcionamiento mediante su
configuracin tanto funcional como grficamente, se estudiaran diferentes tipos de
Mquinas de Turing, entre ellas Mquinas de Turing Computables, decidibles y
aceptables. Por ltimo se considerar la Tesis de Church y las extensiones de una Mquina
de Turing.

10.1 Qu es una Mquina de Turing?

Esquemticamente, una Mquina de Turing esta constituida por:

Cinta de Entrada

Cabezal de
Lectura y
Escritura Movimiento
Bidireccional

q0
q1
qn
q2 UNIDAD DE
CONTROL
q7 q3

q6 q4 Proceso de Transicin
q5
Conjunto de Estados

La cinta de entrada, contiene una cadena de tamao n, tiene una base y un lado
derecho infinito.

Lic. M.Sc. Benjamn H. Buitrago Conde


Captulo X Mquinas de Turing 102

En la cinta se introduce la cadena y es en la misma cinta donde se obtiene el resultado.


El cabezal es bidireccional, de lectura y escritura, es decir que puede sobre-escribirse la
cadena en la cinta de entrada.
Existen dos smbolos especiales : L (Izquierda) y R (Derecha), es decir existe la
opcin de mover el cabezal de lectura y escritura a la izquierda o la derecha.
El resto de los smbolos que no estn ocupados por la cadena de entrada son blancos
(#).
La mquina no tiene un conjunto de estados finales.
Existe un estado llamado h, cuando la Mquina llega a este estado ya no continua con
el proceso de calculo.

Este tipo de mquinas son llamadas Mquinas de Turing o Autmatas de Turing, donde
una Maquina de Turing es la base fundamental de la computabilidad, que establece
mediante la tesis de Church que todo lo que una Mquina de Turing puede realizar lo puede
realizar tambin la computadora.

10.2 Definicin.
Una Mquina de Turing M es una cudrupla, formada por:

M = ( K, , S, )

Donde:

K : Conjunto de estados ( h K )
: Alfabeto de la cinta ( # , (L, R) )
S : Estado Inicial
: Funcin de Transicin:

K K {h} {L, R}

Si q K, a (q,a) = (p,b) entonces cuando M, este en el estado q y se


encuentre leyendo a de la cinta pasa al estado p donde:

Si b , se sobre-escribe el smbolo a con b.


Si b {L,R}, entonces el cabezal se mueve a la izquierda o a la derecha
respectivamente (direccin de b).

Lic. M.Sc. Benjamn H. Buitrago Conde


Captulo X Mquinas de Turing 103

Por ejemplo:

Sea M = ( K, , , S)

K = { q0, q1 }
= { a, # }
S = { q0 }
:

(q0,a) = (q1, #)
(q0,#) = (h, #)
(q1,a) = (q0, a)
(q1,#) = (q0, R)

10.3 Representacin Grfica de una Mquina de Turing


Para la representacin grfica de una mquina de Turing, se utiliza un grafo dirigido y
etiquetado, la etiqueta de cada arco esta compuesta de:

( Smbolo de Entrada ; Smbolo de Salida o Movimiento )

Por ejemplo, la Mquina de Turing descrita anteriormente, tiene la siguiente representacin


grfica:

(a ; #)

(a; a) q1

(#;R)
q0

(#;#)

Lic. M.Sc. Benjamn H. Buitrago Conde


Captulo X Mquinas de Turing 104

Configuracin

K * * (( - { # } ) { } )

Sea M = (K, , S, ) y sean qi, qj K, w1, w1, w2, w2 * entonces:

(qi,w1,a,w1) ( qj, w2, b, w2)

si y slo si

c { L, R } (qi,a) = (qj,c)

Donde:

1. Si c , entonces c = b
2. Si c = L, entonces w2 = aw1 si w1 = a = # entonces w2=
3. Si c = R, entonces w2 = w1a si w1 = entonces w2 =

Por ejemplo:

1. Si (qi,a) = (qj,b) entonces (qi,wau) (qj,w,bu)


2. Si (qi,a) = (qj,L) entonces (qi,wau) (qi,wau)
3. Si (qi,a) = (qj,R) entonces (qi,wau) (qi,wau)

Clausura de *
Sea M una mquina de Turing y sean Co, Cm dos configuraciones de M, entonces:

Co * Cm

Si y slo si existen C1, C2, C3, ... Cm-1 configuraciones de M, tal que:

Co C1 C2 ... Cm-1 Cm

La longitud del calculo es m , m 0.

Por ejemplo, considere la anterior Mquina de Turing y la cadena aaa

(q0,aaa#) (q1,#aa#) (q0,#aa#) (q1,##a#) (q0,##a#) (q1,####) (q0,####)


(h, ####)

Lic. M.Sc. Benjamn H. Buitrago Conde


Captulo X Mquinas de Turing 105

Por ejemplo, considrese la siguiente Mquina de Turing

(a;L)

q0

(#;#)
h

Para la cadena: aa

(q0,aa) (q0. ... )

La mquina se cuelga.

Para evitar que la mquina se cuelgue, se consideran las siguientes convenciones:

Convenciones

1. La cadena de entrada tiene # a la izquierda y derecha, adems se encuentra pegada a la


base de la mquina.
2. El calculo se inicia con la cabezal sobre el blanco a la derecha de la cadena y en el
estado inicial.

Por ejemplo, en la configuracin anterior:

(q0,#aa#) (q0,#aa#) (q0, #aa#) (q0,#aa#) (h,#aa#)

10.4 Mquinas de Turing Computables


Una mquina de Turing es computable cuando transforma una cadena de entrada en una
cadena de salida, donde la cadena de salida puede o no ser igual a la cadena de entrada.

F : 1* 2*

Donde:

1* : Indica como se van a conformar las cadenas en la entrada.


2* : Indica como va a ser la cadena de salida.

Lic. M.Sc. Benjamn H. Buitrago Conde


Captulo X Mquinas de Turing 106

Los smbolos de 1 y 2 se relacionan con de la siguiente manera:

= 1 2 { # }

Convenciones.

Al terminar el calculo la configuracin final debe ser de la forma:

( h, #w#), donde w es el resultado.

Entonces una Mquina de Turing Computable, calcula F : 1* 2* si y slo si

(S, #w#) * (h,#w#)

w 1* , w 2*

f (w) = w

Por ejemplo, construir una Mquina de Turing Computable, para:

#ab# #ba#

(a;R)

(b;R)
q1
(#;L)
(a;L) (#;#)
q0
(b;L)

(#;R)
(a;b) q1
h
(b;a)

Caso Especial (Cadena Vaca)

(q0,##) (h,##)

Lic. M.Sc. Benjamn H. Buitrago Conde


Captulo X Mquinas de Turing 107

10.4.1 Funciones con Varios Parmetros.

F : o* 1* 2* 3* ... n* n+1*

Este tipo de Mquinas toma varias cadenas y devuelve una cadena solamente:

Se tiene el autmata:

M = ( K, , S, )

Donde:

= o 1 2 ... n n+1 { # }

Donde todos los i (i=1 ... n+1) son distintos entre si

: K K { h } { L, R }

Configuracin Inicial.

( S, #w1#w2# ... #wn# ) * ( h, # w #)

si y slo si

f(w1, w2, w3, ...wn ) = w

Manejo de Nmeros Naturales.


Los nmeros naturales se pueden representar mediante el sistema unario, de la siguiente
manera:

Para 0 : ##
Para 1: #1#
Para 2: #11#
Para 3: #111#
....

Entonces se representa como{1}*

Lic. M.Sc. Benjamn H. Buitrago Conde


Captulo X Mquinas de Turing 108

Por tanto, M = ( K, , S, ), donde = {1,#}

Por ejemplo: Construir una Maquina de Turing para las siguientes funciones:

1. f(n) = n+1

(#;1)
q2

q0
(1;R)

(1;1)
(#;#)

h
q1
(1;1)
(#;#)

2. f(n,m) = n + m

(1;L)
(#;L) q1
(1;#)

(#;L) q3
q0

q2

(#;#)
(1;1)
(#;L)

(1;1)
(#;#)
q4
error
h
(#;#) (1;R)
(1;1)

Lic. M.Sc. Benjamn H. Buitrago Conde


Captulo X Mquinas de Turing 109

10.5 Mquina de Turing Decidible.

Sea un alfabeto tal que # . Sean Y N dos smbolos que no estn en entonces un
lenguaje L*.

D : * { Y, N }

D esta definido como :

Y si w L

D(w)

N si w L

Por ejemplo, construir una Mquina de Turing Decidible para:

L = { w * / |w| es impar}

(#;L) (#;R)
q1 q5 (#;N)

q0 (a;#)

(N;R)
(#;L) q6
q2

h
(#;L)
q4
(a;#)
(Y;R)
q3 (#;R) (#;Y) q8
q7

10.6 Mquina de Turing Aceptable.

Si ( S, #w#) * (q,#w#) ; Si q = h entonces w L. Si q K entonces w L.

Sean un alfabeto tal que # . Diremos que una Mquina de Turing acepta una cadena
w * si M se detiene para w.

Lic. M.Sc. Benjamn H. Buitrago Conde


Captulo X Mquinas de Turing 110

Por lo tanto, M acepta el lenguaje L. L * si y slo si

L = { w * / M acepta w }

Por ejemplo, construir una Mquina de Turing aceptable, para el siguiente lenguaje
L={w* / |w| es impar }

(#;#)
(#;L) (#;R)
q4
q4
q0
(a;#)
(a;a)

(a;#)
q4

(#;R)
q4

(#;R)

Lic. M.Sc. Benjamn H. Buitrago Conde

You might also like