lunes, 3 de octubre de 2011

máquina de Turing

Una maquina turing (MT) es un modelo computacional que realiza una lectura/escritura de manera automática 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 símbolo 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 función de transición, que recibe un estado inicial y una cadena de caracteres (la cinta, la cual puede ser infinita) pertenecientes al alfabeto de entrada. La máquina va leyendo una celda de la cinta en cada paso, borrando el símbolo en el que se encuentra posicionado su cabezal y escribiendo un nuevo símbolo perteneciente al alfabeto de salida, para luego desplazar el cabezal a la izquierda o a la derecha (solo una celda a la vez
HISTORIA: 
Alan  Turin introdujo el concepto de máquina de Turing en el trabajo On computable numbers, with an application to the Entscheidungsproblem, publicado por la Sociedad Matemática de Londres en 1936, en el que se estudiaba la cuestión planteada por david gilbert sobre si las matemáticas son decidibles, es decir, si hay un método definido que pueda aplicarse a cualquier sentencia matemática y que nos diga si esa sentencia es cierta o no. Turing ideó un modelo formal de computador, la máquina de Turing, y demostró que existían problemas que una máquina no podía resolver.
Con este aparato extremadamente sencillo es posible realizar cualquier cómputo que un computador digital sea capaz de realizar.
Mediante este modelo teórico y el análisis de la complejidad de los algoritmos, fue posible la categorización de problemas computacionales de acuerdo a su comportamiento, apareciendo así, el conjunto de problemas denominados P y NP, cuyas soluciones pueden encontrarse en Tiempo Polinomico  por máquinas 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 xx caracteriza la noción informal de computabilidad con la computación mediante una máquina de Turing.
La idea subyacente es el concepto de que una máquina de Turing puede verse como un autómata ejecutando un procedimiento efectivo definido formalmente, donde el espacio de memoria de trabajo es ilimitado, pero en un momento determinado sólo una parte finita es accesible.

DEFINICION FORMAL 

Una máquina de Turing con una sola cinta puede definirse como una TUPLA
M=(Q, \Sigma, \Gamma, s, b, F, \delta),\!
donde:
  • Q\! es un conjunto finito de ESTADOS
  • \Sigma\! es un conjunto finito de símbolos distinto del espacio en blanco, denominado alfabeto de máquina o de entrada.
  • \Gamma\! es un conjunto finito de símbolos de cinta, denominado alfabeto de cinta (\Sigma \subseteq\Gamma).
  • s \in Q es el estado inicial.
  • b \in \Gamma es un símbolo denominado blanco, y es el único símbolo que se puede repetir un número infinito de veces.
  • F \subseteq Q es el conjunto de estados finales de aceptación.
  • \delta: Q \times \Gamma \rightarrow Q \times \Gamma \times \{L,R\} es una FUNCION PARCIAL  denominada función de transición, donde L\! es un movimiento a la izquierda y R\! es el movimiento a la derecha.
Existen en la literatura un abundante número de definiciones alternativas, pero todas ellas tienen el mismo poder computacional, por ejemplo se puede añadir el símbolo S\! como símbolo de "no movimiento" en un paso de cómputo.

Funcionamiento

La máquina 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 máquina se limitan a:
  • Avanzar el cabezal lector/escritor hacia la derecha.
  • Avanzar el cabezal lector/escritor hacia la izquierda.
(estado, valor) \rightarrow (nuevo estado, nuevo valor, dirección)
El cómputo es determinado a partir de una tabla de estados de la forma:
Esta tabla toma como parámetros el estado actual de la máquina y el carácter leído de la cinta, dando la dirección para mover el cabezal, el nuevo estado de la máquina y el valor a escribir en la cinta.
La memoria es la cinta de la máquina que se divide en espacios de trabajo denominados celdas, donde se pueden escribir y leer símbolos. Inicialmente todas las celdas contienen un símbolo especial denominado "blanco". Las instrucciones que determinan el funcionamiento de la máquina tienen la forma, "si estamos en el estado x leyendo la posición y, donde hay escrito el símbolo z, entonces este símbolo debe ser reemplazado por este otro símbolo, y pasar a leer la celda siguiente, bien a la izquierda o bien a la derecha".
La máquina de Turing puede considerarse como un AUTÓMATA capaz de reconocer LENGUAJES FORMALES. En ese sentido, es capaz de reconocer los lenguajes recursivamente enumerables, de acuerdo a la JERARQUÍA DE  CHOMSKY. Su potencia es, por tanto, superior a otros tipos de autómatas, como el AUTÓMATA FINITO, o el AUTÓMATA CON PILA, o igual a otros modelos con la misma potencia computacional.

Definimos una máquina de Turing sobre el alfabeto {0,1}, donde 0 representa el símbolo blanco. La máquina comenzará su proceso situada sobre un símbolo "1" de una serie. La máquina de Turing copiará el número de símbolos "1" que encuentre hasta el primer blanco detrás de dicho símbolo blanco. Es decir, posicionad el cabezal sobre el 1 situado en el extremo izquierdo, doblará el número de símbolos 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 \{s_1, s_2, s_3, s_4, s_5\}\! y el estado inicial es s_1\!. La tabla que describe la función de transición es la siguiente:
EstadoSímbolo leídoSímbolo escritoMov.Estado sig.
s_1 \,\!10R \,\!s_2 \,\!
s_2 \,\!11R \,\!s_2 \,\!
s_2 \,\!00R \,\!s_3 \,\!
s_3 \,\!01L \,\!s_4 \,\!
s_3 \,\!11R \,\!s_3 \,\!
s_4 \,\!11L \,\!s_4 \,\!
s_4 \,\!00L \,\!s_5 \,\!
s_5 \,\!11L \,\!s_5 \,\!
s_5 \,\!01R \,\!s_1 \,\!

No hay comentarios:

Publicar un comentario