MAQUINA DE TURING INTRODUCCION BIOGRAFIA : Alan Mathison Turing (1912 - 1954)
Naci en Londres (Gran Bretaa), desde muy temprana edad Turing demostr su inteligencia. Alos 3 aos tena una inusual capacidad para recordar palabras y a los 8 aos se interes por la qumica montando un laboratorio en su casa. Con 13 aos ingres en la escuela Sherborne, en la que ya demostraba su facilidad para las matemticas, teniendo una gran capacidad para realizar clculos mentalmente. Obtuvo una beca para estudiar en la universidad de Cambridge, en donde se gradu de la licenciatura de matemticas con honores en 1934. En abril de 1936, public el artculo "On computable numbers, with an application to the Entscheidungsproblem" en el que introduce el concepto de algoritmo y de mquina de Turing. Este artculo da respuesta (negativa) al problema de la decisin formulada por Hilbert en 1900, probando que existen problemas sin solucin algortmica y es uno de los cimientos ms importantes de la teora de la computacin. En septiembre de 1936, Turing ingres en la universidad de Princeton ([Link]). Su artculo atrajo la atencin de uno de los cientficos ms destacados de la poca, John von Neumann, quien le ofreci una beca en el Instituto de Estudios Avanzados. Turing obtuvo su doctorado en matemticas en 1938. Tras su graduacin, von Neumann le ofreci una plaza como su asistente, pero Turing rechaz la oferta y volvi a Inglaterra, en donde vivi de una beca universitaria mientras estudiaba filosofa de las matemticas entre 1938 y 1939. En 1939, con el comienzo de la Segunda Guerra Mundial, Turing fue reclutado por el ejrcito britnico para descifrar los cdigos emitidos por
la mquina Enigma utilizada por los alemanes. En el deseo de obtener mejores mquinas descifradoras, se comenz a construir la primera computadora electrnica, llamada Colossus, bajo la supervisin de Turing, se construyeron 10 unidades, y la primera empez a operar en 1943. Por su trabajo en el Colossus, Turing recibi la Orden del Imperio Britnico en 1946. En 1944, Turing fue contratado por el Laboratorio Nacional de Fsica (NLP) para competir con el proyecto americano EDVAC, de von Neumann. Turing ejerci como Oficial Cientfico Principal a cargo del Automatic Computing Engine (ACE). Hacia 1947, Turing concibi la idea de las redes de cmputo y el concepto de subrutina y biblioteca de software. Tambin describi las ideas bsicas de lo que hoy se conoce como red neuronal. Abandon la NLP en 1948. Turing se adelant al proyecto de construccin de un ordenador de acuerdo con la arquitectura de von Neumann. El Manchester Mark I, estuvo acabado en 1948 antes que el EDVAC. Turing dise para esta mquina un lenguaje de programacin basado en el cdigo empleado por los teletipos. Otro de los campos de investigacin de Turing fue la inteligencia artificial, se puede decir que esta disciplina naci a partir del artculo titulado "Computing Machinery and Inteligence" publicado por Turing en 1950. Es muy famosa la primera frase de este artculo: " Propongo considerar la siguiente cuestin: Pueden pensar las mquinas? ". Turing propuso un mtodo llamado el test de Turing para determinar si las mquinas podran tener la capacidad de pensar. En 1951, es nombrado miembro de la Sociedad Real de Londres por sus contribuciones cientficas. Y en su honor, la Association for Computing Machinery llama "Turing Award" a su premio ms importante, el cual se otorga desde 1966 a los expertos que han realizado las mayores contribuciones al avance de la computacin.
MAQUINA DE TURING Historia El concepto de Mquina de Turing fue introducido por Alan Turing en el trabajo On computable numbers, with an application to the Entscheidungsproblem, publicado por la Sociedad Matemtica de Londres en 1936, en el cual se estudiaba la cuestin planteada por David 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 complejidad de 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 en tiempo polinmico son encontradas segn el determinismo y no determinismo respectivamente de la mquina de Turing. De hecho, se puede probar matemticamente que para cualquier programa de computadora es posible crear una mquina de Turing equivalente. Esta prueba resulta de la Tesis de Church-Turing, formulada por Alan Turing y Alonzo Church, de forma independiente a mediados del siglo XX. La idea subyacente es el concepto de que una mquina de Turing es una persona 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.
1.-DEFINICION Mquina de Turing (MT) 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 conformado 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 es finita por la izquierda) pertenecientes al alfabeto de entrada. Luego va leyendo una celda de la cinta, borrando el smbolo, escribir el nuevo smbolo perteneciente al alfabeto de salida y finalmente avanza a la izquierda o a la derecha(solo una celda a la vez), repitiendo esto segn se indique en la funcin de transicin, para finalmente detenerse en un estado final o de aceptacin, representando as la salida.
2.- Funcionamiento 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:
avanzar el cabezal lector/escritor hacia la derecha.
Visualizacin de una Maquina de Turing, en la que se ve el cabezal y la cinta que se lee
avanzar el cabezal lector/escritor hacia la izquierda.
El cmputo es determinado 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 ser escrito en la cinta. La memoria ser la cinta la cual 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.
3.-TABLAS Y DIAGRAMAS En los modelos didcticos computarizados la tabla suele definirse mediante una matriz de cinco columnas que contiene: Estado/Carcter-ledo/Carcter-aescribir/Movimiento/Nuevo-estado
En el recuadro se incluye una muestra de una de estas tablas. Representa el comportamiento de una mquina de Turing que es capaz de sumar 1 a cualquier nmero unario (0.1). El alfabeto solo tiene dos smbolos: Vaco (0) y valor (1). La mquina puede adoptar tres estados diferentes numerados del 0 al 2 (es costumbre sealar el estado inicial con 0). El movimiento H ("Halt") significa no desplazar el cabezal. En este caso la mquina se detiene (o entra en un bucle sin fin).
+---+---++---+---+---+ | S | R || W | M | N | +---+---++---+---+---+ | 0 | 0 || 0 | R | 0 | | 0 | 1 || 1 | R | 1 | | 1 | 0 || 1 | R | 2 | | 1 | 1 || 1 | R | 1 | | 2 | 0 || 0 | H | 2 | | 2 | 1 || 0 | H | 2 | +---+---++---+---+---+ S = Estado actual R = Carcter ledo W = Carcter escrito M = Direccin del movimiento N = Nuevo estado
Tambin es posible representar la tabla de accin mediante un grafo. Los diferentes estados internos se representan por crculos. Los cambios de estado con flechas a las que se aade una leyenda. Generalmente se utiliza una flecha para sealar el estado inicial. En la figura 1 se muestra el grafo correspondiente a la tabla. Es notable que el diseo de Turing contiene de forma implcita la idea de que el autmata puede alterar su propio programa, pero el punto ms significativo de su filosofa de funcionamiento es que se comporta como la mente, en el sentido que la configuracin interna de la mquina establece el entorno en el que se toman las decisiones, de forma que la accin depende de dos factores: el estado interno y la informacin externa que puede "ver" a travs de su cabezal. La consecuencia es que es imposible predecir su comportamiento de la simple inspeccin de su tabla de accin, ya que el comportamiento depende tambin de la entrada recibida. El hecho que el nmero de estados posibles y su alfabeto sea finitos, califica a estos autmatas como mquinas de estados finitos FSM ("Finite State Machine"). Nota: algunos tericos sostienen que la genuina mquina de Turing solo utiliza un alfabeto unario, mientras que una mquina de estados finitos es ms general y puede utilizar un alfabeto con ms smbolos.
Es significativo que la cinta puede extenderse indefinidamente a derecha e izquierda, lo que hace que en la prctica sea imposible construir un modelo real de lo que se denomina un sistema de Turing completo. Es tambin destacable que la mquina da a la cinta tres utilizaciones distintas:
Como elemento de almacenamiento de los datos de entrada (de capacidad potencialmente ilimitada)
Como elemento de salida (de cualquier cantidad de datos) Como almacenamiento de informacin intermedia durante el proceso (puede ser de cualquier tamao).
Aunque tanto el alfabeto utilizado como el nmero de estados son finitos, lo que confiere su potencia a la mquina de Turing (adems de su diseo genial) es su almacenamiento ilimitado. Turing prob que este autmata es tambin un computador universal. Es decir, que puede emular el comportamiento de cualquier dispositivo cuyo comportamiento pueda ser expresado simblicamente mediante un algoritmo.
Representacin como diagrama de estados. Las maquinas de Turing se pueden representar mediante grafos particulares, tambin llamados diagramas de estados finitos, de la siguiente manera:
Esta Mquina de Turing est definido sobre el alfabeto ={a,b,c}, posee el conjunto de estados Q={qo,q1,q2,q3,q4,q5,q6}, con las transiciones que se pueden ver. Su estado inicial es q1 y el estado final es q2, el lenguaje de salida ={X,Y,Z,B} siendo B el smbolo denominado Blanco . Esta Mquina reconoce la expresin regular de la forma {a^n b^n c^n,n>=0} .
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 esta 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,
proveniente de ningn otro vrtice. El o los estados finales se representan mediante vrtices que estn encerrados a su vez por otra circunferencia.
Descripcin instantnea(DI). Secuencia de la forma 1q2 donde 1,2 y . Describe la situacin de una MT La cinta contiene la cadena 12 seguida de infinitos blancos. El cabezal seala el primer smbolo de 2. ejemplo: Para la MT=({p,q},{0,1},{0,1,x}, ,p,,{q}) con las transiciones (p,1)=(p,x,D) (p,0)=(p,0,D) (p,)=(q,,D) Realizaremos la DI para la cinta 1011. p1011.. xp011.. x0p11.. x0xp1.. x0xxp.. x0xxq.. Ejemplo Definimos una mquina de Turing sobre el alfabeto {0,1}, 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, situada 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 Smbolo ledo Smbolo escrito Mov. Estado sig. 1 1 0 0 0 1 0 1 . La tabla que
1 1 0 1 0
1 1 0 1 1
El funcionamiento de una computacin de esta mquina se puede mostrar con el siguiente ejemplo (en negrita se resalta la posicin de la cabeza lectora/escritora):
Paso Estado Cinta 1 2 3 4 5 6 11 01 010 0100 0101 0101
7 8 9 10 11 12 13 14 15 Parada
0101 1101 1001 1001 10010 10011 10011 10011 11011
La mquina realiza su proceso por medio de un bucle, en el estado inicial s1, reemplaza el primer 1 con un 0, y pasa al estado s2, con el que avanza hacia la derecha, saltando los smbolos 1 hasta un 0 (que debe existir), cuando lo encuentra pasa al estado s3, con este estado avanza saltando los 1 hasta encontrar otro 0 (la primera vez no habra ningn 1). Una vez en el extremo derecho, aade un 1. Despus comienza el proceso de retorno; con s4 vuelve a la izquierda saltando los 1, cuando encuentra un 0 (en el medio de la secuencia), pasa a s5 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 su cmputo.
Mquinas de Turing deterministas y no deterministas 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 las acciones a tomar en funcin de una entrada. En el caso de que para cada par estado y 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 cul de las varias actuaciones tomar? Hay dos formas de verlo: una es decir que la mquina es "el mejor adivino posible", esto es, que siempre elige la transicin que eventualmente 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 solo "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 O(t(n)), la mquina determinista equivalente reconocer la palabra en un tiempo O(2t(n)). 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.
Problema de la parada (halting problem)
El problema de la parada o problema de la detencin (halting problem en ingles) para mquinas de Turing consiste en: dada una MT M y una palabra w, determinar si M terminar en un nmero finito de pasos cuando es ejecutada usando w como dato de entrada. Alan Turing, en su famoso artculo "On Computable Numbers, with an Application to the Entscheidungsproblem" (1936), demostr que el problema de la parada de la Mquina de Turing es indecidible, en el sentido de que ninguna mquina de Turing lo puede resolver.