Está en la página 1de 5

Mquina de turing

Necesitamos reconstruir nuestra teora sobre la indecidibilidad (Problema de decisin, Kurt Gdel), no basndonos en programas en C o en otro lenguaje, sino en un modelo de computadora muy simple: la mquina de Turing. Bsicamente, este dispositivo es un autmata finito que dispone de una nica cinta de longitud infinita en la que se pueden leer y escribir datos. Una ventaja de la mquina de Turing sobre los programas como representacin de lo que se puede calcular es que la mquina de Turing es lo suficientemente simple como para que podamos representar su configuracin de manera precisa. En cambio, aunque los programas en C tienen un estado, que implica a todas las variables en cualquier secuencia de llamadas a funcin que se realice, la notacin para describir estos estados es demasiado compleja como para poder realizar demostraciones formales comprensibles. Con la notacin de la mquina de Turing, demostraremos que ciertos problemas, que aparentemente no estn relacionados con la programacin, son indecidibles. Podemos visualizar una mquina de Turing como se muestra en la Figura 8.8. La mquina consta de una unidad de control, que puede encontrarse en cualquiera de un conjunto finito de estados. Hay una cinta dividida en cuadrados o casillas y cada casilla puede contener un smbolo

de entre un nmero finito de smbolos.

Inicialmente, la entrada, que es una cadena de smbolos de longitud finita elegidos del alfabeto de entrada, se coloca en la cinta. Las restantes casillas de la cinta, que se extiende infinitamente hacia la izquierda y la derecha, inicialmente almacenan un smbolo especial denominado espacio en blanco. El espacio en blanco es un smbolo de cinta, pero no un smbolo de entrada, y pueden existir tambin otros smbolos de cinta adems de los smbolos de entrada y del espacio en blanco. Existe una cabeza de la cinta que siempre est situada en una de las casillas de la cinta. Se dice que la mquina de Turing seala dicha casilla. Inicialmente, la cabeza de la cinta est en la casilla ms a la izquierda que contiene la entrada. Un movimiento de la mquina de Turing es una funcin del estado de la unidad de control y el smbolo de cinta al que seala la cabeza. En un movimiento, la mquina de Turing: 1. Cambiar de estado. El siguiente estado puede ser opcionalmente el mismo que el estado actual. 2. Escribir un smbolo de cinta en la casilla que seala la cabeza. Este smbolo de cinta reemplaza a cualquier smbolo que estuviera anteriormente en dicha casilla. Opcionalmente, el smbolo escrito puede ser el mismo que el que ya se encontraba all. 3. Mover la cabeza de la cinta hacia la izquierda o hacia la derecha. En nuestro formalismo, exigiremos que haya un movimiento y no permitiremos que la cabeza quede estacionaria. Esta restriccin no limita lo que una mquina de Turing puede calcular, ya que cualquier secuencia de movimientos con una cabeza estacionaria podra condensarse, junto con el siguiente movimiento de la cabeza de la cinta, en un nico cambio de estado, un nuevo smbolo de cinta y un movimiento hacia la izquierda o hacia la derecha. El comportamiento de la mquina est definido por una funcin de transicin (programa). La notacin formal que vamos a emplear para una mquina de Turing (MT) es similar a la que hemos empleado para los autmatas. Describimos un MT mediante la siguiente sptupla:

M = (Q, , , ,q0,B,F).

Q El conjunto finito de estados de la unidad de control. (sigma) El conjunto finito de smbolos de entrada. (Gamma) El conjunto completo de smbolos de cinta; siempre es un subconjunto de . (delta) La funcin de transicin. Los argumentos de (q,X) son un estado q y un smbolo de cinta X. El valor de (q,X), si est definido, es (p,Y,D), donde: 1. p es el siguiente estado de Q. 2. Y es el smbolo de , que se escribe en la casilla que seala la cabeza y que sustituye a cualquier smbolo que se encontrara en ella. 3. D es una direccin y puede ser L o R, lo que nos indica la direccin en que la cabeza se mueve, izquierda (L) o derecha (R), respectivamente. q0 El estado inicial, un elemento de Q, en el que inicialmente se encuentra la unidad de control. B El smbolo espacio en blanco. Este smbolo pertenece a pero no a ; es decir, no es un smbolo de entrada. El espacio en blanco aparece inicialmente en todas las casillas excepto en aqullas que se almacenan los smbolos de la entrada. F El conjunto de los estados finales o de aceptacin, un subconjunto de Q.

Ejemplo para calcular la suma de nmeros:

M = ((A,B), (0,1), (0,1,#,$), ,e0,$,#).


S R W M N

A 0 0 R A A 1 0 R B B 1 1 R B B 0 1 #

Ejemplo para convertir la entrada 11000 en 11011: M = ((e1, e2, e3, e4), (0,1), (0,1,#,$), ,e0,$,#).

S R W M N e0 1 0 R e1 e1 1 1 R e1 e1 0 0 R e2 e2 0 1 L e3

e2 1 1 R e2 e3 1 1 e3 0 0 e4 1 1 L e3 L e4 L e4

e4 0 1 R e0

Ejercicio: Que realiza la siguiente instruccin en la mquina de turing ?

0
I (L,0,L) J (j,0,R)

1 (I,1,L) (k,0,R)

K (a,0,R) (k,1,R) L (O,1,L) (M,1,L) M (N,1,R) (M,1,L) N O ,@,0

(K,1,R) @,0'

a).- Realizar 3 ejemplos de cada entrada de aceptacin b).- Dibujar el grafo.

También podría gustarte