INDICE 1.INTRODUCCIÓN................................................................................................3 2.DESARROLLO DEL TEMA...................................................................................4 A.VIDA Y OBRA DE ALAN TURING............................ TURING........................................... ............................. ............................ .................................4 ...................4
LA UNIVERSIDAD Y SUS ESTUDIOS DE COMPUTABILIDAD................ COMPUTABILIDAD.................................................4 .................................4 ANALISIS CRIPTOGRÁFICOS (ruptura de códigos) ...................................... .................................................... .......................5 .........5 ESTUDIOS SOBRE LAS PRIMERAS COMPUTADORAS LA MAQUINA DE TURING...................6 ESTUDIOS SOBRE PATRONES Y LA BIOLOGÍA MATEMÁTICA........................ MATEMÁTICA........................................... ......................6 ...6 EL FINAL DE TURING.......................... TURING........................................ ............................. ............................. ..................................................6 ....................................6 B.INTELIGENCIA ARTIFICIAL................... ARTIFICIAL................................. ............................. ............................. ..................................................7 ....................................7 C.MAQUINAS DE TURING........................... TURING......................................... ............................ ............................. ................................ ................. ...............8
LA HISTORIA DETRÁS DE LA MÁQUINA DE TURING...........................................................8 TURING...........................................................8 LA DEFINICION FORMAL DE LA MÁQUINA DE TURING..................................... TURING................................................... ...................9 .....9 CÓMO FUNCIONA LA MÁQUINA..................... MÁQUINA.................................... ............................. ...................................................10 .....................................10 LA MAQUINA DE TURING COMO DIAGRAMA............................. DIAGRAMA........................................... ................................. .........................10 ......10 Máquina de Turing con cinta infinita a ambos lados....................................................... lados.......................................................11 11 Máquina de Turing con cinta multipista............................. multipista........................................... .............................................11 ...............................11 Máquina de Turing multicinta................... multicinta.................................. ............................. .......................................................11 .........................................11 Máquina de Turing multidimensional............... multidimensional.............................. ............................. ................................................12 ..................................12 MAQUINA DE TURING DETERMINISTA Y NO DETERMINISTA..................... DETERMINISTA................................... ........................12 ..........12 MAQUINA UNIVERSAL UNI VERSAL DE TURING........................... TURING......................................... ............................. ....................................... ...........................13 ...13 3.APLICACIONES...............................................................................................14 4.DESARROLLO DE EJERCICIOS...........................................................................14 OPERACIONES:.................................................................................................14 1) PARAR LA COMPUTACIÓN..............................................................................14 2) MOVERSE UN CUADRADO CUADRADO A LA DERECHA...................................................... ..15 3) MOVERSE UN CUADRADO A LA IZQUIERDA.....................................................15 4) ESCRIBIR EL SÍMBOLO S0 EN LUGAR DE CUALQUIER OTRO QUE ESTE EN EL CUADRADO CUADRADO EXAMINADO................................................................................... .15 5) ESCRIBIR EL SÍMBOLO S1 EN LUGAR DE CUALQUIER OTRO QUE ESTE EN EL CUADRADO CUADRADO EXAMINADO................................................................................... .15 …(N+4) ESCRIBIR EL SÍMBOLO SN EN LUGAR DE CUALQUIER OTRO QUE ESTE EN EL CUADRADO CUADRADO EXAMINADO................................................................................... .15 5.CONCLUSIÓN.................................................................................................22
[2]
1. INTRODUCCIÓN En el presente informe se desarrollará en profundidad el tema de la máquina de Turing, su funcionamiento y características. Además se abordará el papel precursor que desempeñó Alan Turing, en lo referente a autómatas, inteligencia artificial, computación e informática. Será abordada primeramente la biografía y trayectoria del matemático Turing, destacando sus principales logros y aportes en el ámbito científico, detallando algunos de sus más importantes estudios en las diversas ramas de la computación. En segunda instancia se analizará el papel jugado por Turing en el posterior desarrollo de la inteligencia artificial y las redes neuronales, su compresión y estudio. El principal punto de este informe es el desarrollo y explicación del concepto de la máquina de Turing, sus modificaciones, y posteriores aplicaciones y la repercusión de esta abstracción en la computación moderna. Finalizando el informe se puede encontrar algunos ejercicios desarrollados que permitirán una mejor comprensión de la metodología antes mencionada.
[3]
2. DESARROLLO DEL TEMA A. VIDA Y OBRA DE ALAN TURING Alan Mathison Turing, OBE (oficial de la orden del imperio británico) nació un 23 de junio de 1912 en Maida Vale, en Londres, fue un connotado matemático, informático teórico, criptógrafo y filosofo inglés. Es considerado uno de los padres de la Ciencia de la computación siendo el precursor de la informática moderna. Proporcionó una influyente formalización de los conceptos de algoritmo y computación: la máquina de Turing. Formuló su propia versión de la hoy ampliamente aceptada Tesis de Church-Turing, la cual postula que cualquier modelo computacional existente tiene las mismas capacidades algorítmicas, o un subconjunto, de las que tiene una máquina de Turing. Durante la Segunda Guerra Mundial, trabajó en romper los códigos nazis, particularmente los de la máquina Enigma; durante un tiempo fue el director de la sección Naval Enigma del Bletchley Park. Tras la guerra diseñó uno de los primeros computadores electrónicos programables digitales en el Laboratorio Nacional de Física del Reino Unido y poco tiempo después construyó otra de las primeras máquinas en la Universidad de Mánchester . Entre otras muchas cosas, también contribuyó de forma particular e incluso provocativa al enigma de si las máquinas pueden pensar, es decir a la Inteligencia Artificial.
LA UNIVERSIDAD Y SUS ESTUDIOS DE COMPUTABILIDAD Debido a su falta de voluntad para esforzarse con la misma intensidad en el estudio de los clásicos que en el de la ciencia y las matemáticas, Turing suspendió sus exámenes finales varias veces y tuvo que ingresar en la escuela universitaria que eligió en segundo lugar, King's College, Universidad de Cambridge, en vez de en la que era su primera elección, Trinity. Recibió las enseñanzas de Godfrey Harold Hardy, un respetado matemático que ocupó la cátedra
[4]
Sadleirian en Cambridge y que posteriormente fue responsable de un centro de estudios e investigaciones matemáticas de 1931 a 1934. En 1935 Turing fue nombrado profesor del King's College. En su memorable estudio "Los números computables, con una aplicación al Entscheidungsproblem" (publicado en 1936), Turing reformuló los resultados obtenidos por Kurt Gödel en1931 sobre los límites de la demostrabilidad y la computación, sustituyendo al lenguaje formal universal descrito por Gödel por lo que hoy se conoce como Máquina de Turing, unos dispositivos formales y simples. Demostró que dicha máquina era capaz de implementar cualquier problema matemático que pudiera representarse mediante un algoritmo. Las máquinas de Turing siguen siendo el objeto central de estudio en la teoría de la computación. Llegó a probar que no había ninguna solución para el problema de decisión, Entscheidungsproblem, demostrando primero que el problema de la parada para las máquinas de Turing es irresoluble: no es posible decidir algorítmicamente si una máquina de Turing dada llegará a pararse o no. Aunque su demostración se publicó después de la demostración equivalente deAlonzo Church respecto a su cálculo lambda, el estudio de Turing es mucho más accesible e intuitivo. También fue pionero con su concepto de "Máquina Universal (de Turing)", con la tesis de que dicha máquina podría realizar las mismas tareas que cualquier otro tipo de máquina. Su estudio también introduce el concepto de números definibles. La mayor parte de 1937 y 1938 la pasó en la Universidad de Princeton, estudiando bajo la dirección de Alonzo Church. En 1938 obtuvo el Doctorado en Princeton; en su discurso introdujo el concepto de hipercomputación, en el que ampliaba las máquinas de Turing con las llamadas máquinas oráculo, las cuales permitían el estudio de los problemas para los que no existe una solución algorítmica. Tras su regreso a Cambridge en 1939, asistió a las conferencias de Ludwig Wittgenstein sobre las bases de las matemáticas. Ambos discutieron y mantuvieron un vehemente desencuentro, ya que Turing defendía el formalismo matemático y Wittgenstein criticaba que las matemáticas estaban sobrevaloradas y no descubrían ninguna verdad absoluta.
ANALISIS CRIPTOGRÁFICOS (ruptura de códigos) Durante la Segunda Guerra Mundial fue uno de los principales artífices de los trabajos del Bletchley Park para descifrar los códigos secretosnazis. Sus perspicaces observaciones matemáticas contribuyeron a romper los códigos de la máquina Enigma y de los codificadores de teletipos FISH (máquinas de teletipos codificados que fabricaron conjuntamente Lorenz Electric y Siemens&Halske). Sus estudios del sistema Fish ayudarían al desarrollo posterior de la primera computadora programable electrónica digital llamada Colossus, la cual fue diseñada por Max Newman y su equipo, y construida en la Estación de Investigaciones Postales de Dollis Hill por un equipo dirigido por Thomas Flowers en 1943. Dicha computadora se utilizó para descifrar los códigos Fish (en concreto las transmisiones de la máquina Lorenz). Para romper los códigos de la máquina Enigma y permitir a los aliados anticipar los ataques y movimientos militares Nazis, Turing diseñó labombe, una máquina electromecánica —llamada así en reconocimiento de la diseñada por los polacos bomba kryptologiczna— que se utilizaba para eliminar una gran cantidad de claves enigma candidatas. Para cada combinación posible se
[5]
implementaba eléctricamente una cadena de deducciones lógicas. Era posible detectar cuándo ocurría una contradicción y desechar la combinación. La bombe de Turing, con una mejora añadida que sugirió el matemático Gordon Welchman, era la herramienta principal que usaban los criptógrafos aliados para leer las transmisiones Enigma. Los trabajos de ruptura de códigos de Turing han sido secretos hasta los años 1970; ni siquiera sus amigos más íntimos llegaron a tener constancia.
ESTUDIOS SOBRE LAS PRIMERAS COMPUTADORAS LA MAQUINA DE TURING De 1945 a 1948 trabajó en el Laboratorio Nacional de Física en el diseño del ACE (Motor de Computación Automática [Automatic Computer Engine]). En 1949 fue nombrado director delegado del laboratorio de computación de la Universidad de Mánchester y trabajó en el software de una de las primeras computadoras reales — la Manchester Mark I. Durante esta etapa también realizó estudios más abstractos y en su artículo "Máquinas de computación e inteligencia" (octubre de 1950) Turing trató el problema de la inteligencia artificial y propuso un experimento que hoy se conoce como la prueba de Turing, con la intención de definir una prueba estándar por el que una máquina podría catalogarse como "sensible" o "sintiente". En 1952 Turing escribió un programa de ajedrez. A falta de una computadora lo suficientemente potente como para ejecutarlo, él simulaba el funcionamiento de la computadora, tardando más de hora y media en efectuar un movimiento. Una de las partidas llegó a registrarse; el programa perdió frente a un amigo de Turing. Trabajó junto a Norbert Wiener en el desarrollo de la cibernética. Esta rama de estudios se genera a partir de la demanda de sistemas de control que exige el progresivo desarrollo de las técnicas de producción a partir del siglo XX. La cibernética pretende establecer un sistema de comunicación entre el hombre y la máquina como premisa fundamental para administrar los sistemas de control. Sus estudios profundizaron en esta relación estableciendo el concepto de interfaz y cuestionando los límites de simulación del razonamiento humano.
ESTUDIOS SOBRE PATRONES Y LA BIOLOGÍA MATEMÁTICA Turing trabajó desde 1952 hasta que falleció en 1954 en la biología matemática, concretamente en la morfogénesis. Publicó un trabajo sobre esta materia titulado "Fundamentos Químicos de la Morfogénesis" en 1952. Su principal interés era comprender la filotaxis de Fibonacci, es decir, la existencia de los números de Fibonacci en las estructuras vegetales. Utilizó ecuaciones de reacción-difusión que actualmente son cruciales en el campo de la formación de patrones. Sus trabajos po steriores no se publicaron hasta 1992 en el libro "Obras Completas de A. M. Turing".
EL FINAL DE TURING [6]
La carrera de Turing terminó súbitamente cuando fue procesado por su condición de homosexual. No se defendió de los cargos y se le dio a escoger entre la castración química o ir a la cárcel. Eligió lo primero y sufrió importantes consecuencias físicas, entre ellas la impotencia. Dos años después del juicio, el 7 de junio de 1954 en Wilmslow, Cheshire, se suicidó.
B. INTELIGENCIA ARTIFICIAL Las Redes Neuronales Artificiales (RNAs) son una magnífica herramienta para el modelado de diversas acciones complejas -desarrolladas por el sistema nervioso de diferentes seres vivos-, con el fin de acercarse a explicaciones claras sobre su origen y funcionamiento. En las RNAs se simulan las neuronas y sus interconexiones, programándolas en computadores digitales ordinarios, y se introduce un algoritmo de entrenamiento que permita que se ajusten los pesos de conexión entre "nodos" (que simulan neuronas), afinando el funcionamiento de la red hasta convertirla en una máquina específica y dedicada a una función determinada, como desarrollar una nueva tarea de aprendizaje asociativo o predecir los mercados internacionales de divisas. Turing concibió la computadora moderna en 1935. Este matemático británico fue un ser genial, célebre dentro del mundo científico por la máquina y el test que llevan su nombre. Pero no sólo concibió la computadora, sino que también concibió la génesis de los modelos conexionistas actuales (se ha denominado conexionismo al movimiento alrededor del estudio con RNAs), cosa que muy pocos saben, pues se suele identificar como padre del conexionismo a Frank Rosenblatt, quién publicó en 1957 muchos artículos sobre este tema. Sin embargo, Turing ya había investigado las redes conexionistas desde 1948, en el seminal artículo Intelligent Machinery , que apenas es conocido (Copeland y Proudfoot, 1999). Este brillante matemático británico pasó sus primeros trece años en la India, donde su padre trabajaba en la Administración colonial. En 1927 fue capaz de encontrar las series infinitas de la función tangente inversa sin haber cursado cálculo elemental. Al año siguiente, a la edad de 16 años, encontró el trabajo de Albert Einstein, que no sólo fue capaz de comprender, sino también de extrapolar el cuestionamiento que hacía Einstein de las leyes de movimiento de Newton, a partir de un texto donde no se hacía referencia explícita a esta cuestión. Pese a su excelente carrera académica, nunca mostró especial interés en dar difusión a sus ideas, y eso hizo que mucho de su trabajo recibiera poca atención o pasara al olvido. También influyó el que muchas personas de su época no entendieran los alcances reales de las propuestas de Turing. Por ejemplo, el manuscrito de Intelligent Machinery , preparado mientras trabajaba para el Laboratorio Nacional de Física de Londres, no obtuvo el beneplácito de esta institución. Sir Charles Darwin, nieto del naturalista, quien dirigía el laboratorio como si fuera un [7]
colegio, desdeñó el trabajo, calificándolo de "ensayo escolar". En realidad, este artículo, de largas miras, constituía el primer manifiesto en el campo de la inteligencia artificial. Por lo tanto, su trabajo permaneció inédito hasta 1968, 14 años después de su muerte. En el artículo Intelligent Machinery , Turing idea una red neuronal a la que dio el nombre de "Máquina Inorgánica de tipo B", que consistía en neuronas artificiales y dispositivos que modificaban las conexiones entre ellas. Las máquinas tipo B pueden contener neuronas conectadas atendiendo a una configuración cualquiera, con la condición de que cada conexión entre neuronas haya de pasar por un dispositivo modificador. Cada dispositivo modificador tiene dos fibras de entrenamiento: en modo de paso o en modo de interrupción. La presencia de estos modificadores de conexión hace posible el entrenamiento de una máquina inorgánica tipo B, mediante lo que Turing denominó "interferencia adecuada, que remede la educación". Para Turing, "la corteza cerebral infantil constituye una máquina inorgánica, susceptible de organización mediante un entrenamiento interferente adecuado" (Copeland y Proudfoot, 1999). Turing anhelaba simular una red neuronal y su régimen de entrenamiento, valiéndose de un ordenador digital ordinario, pero emprendió su trabajo sobre redes neuronales antes de la introducción de los primeros ordenadores electrónicos de uso general. Sólo hasta 1954, Belmont J. Farley y Wesley A. Clark consiguieron hacer funcionar la primera simulación computarizada de una pequeña red neuronal, en el MIT. En ese mismo año, Turing falleció.
C. MAQUINAS DE TURING Una máquina de 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). Esto se repite según se indique en la función de transición, para finalmente detenerse en un estado final o de aceptación, representando así la salida.
LA HISTORIA DETRÁS DE LA MÁQUINA DE TURING A. Turing 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 Hilbert sobre si las matemáticas son decidibles, es decir, si hay un método definido que pueda aplicarse a cualquier
[8]
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 polinómico 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.
LA DEFINICION FORMAL DE LA MÁQUINA DE TURING Una máquina de Turing con una sola cinta puede definirse como una 7-tupla
donde:
es un conjunto finito de estados. es un conjunto finito de símbolos distinto del espacio en blanco, denominado alfabeto de máquina o de entrada. es un conjunto finito de símbolos de cinta, denominado alfabeto de cinta (
).
es el estado inicial. es un símbolo denominado blanco, y es el único símbolo que se puede repetir un número infinito de veces. es el conjunto de estados finales de aceptación. es una función parcial denominada función de transición, donde
es un movimiento a la izquierda y
[9]
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 de "no movimiento" en un paso de cómputo.
como símbolo
CÓMO FUNCIONA LA MÁQUINA 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. El cómputo es determinado a partir de una tabla de estados de la forma: (estado, valor)
(nuevo estado, nuevo valor, dirección)
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.
LA MAQUINA DE TURING COMO DIAGRAMA Las maquinas de Turing pueden representarse mediante grafos particulares, también llamados diagramas de estados finitos, de la siguiente manera: Los estados se representan como vértices, etiquetados con su nombre en el interior. Una transición desde un estado a otro, se representa mediante una arista dirigida que une a estos vértices, y esta rotulada por símbolo que lee el cabezal/símbolo que escribirá el cabezal, movimiento del cabezal. El estado inicial se caracteriza por tener una a rista que llega a él y que no proviene de ningún otro vértice. El o los estados finales se representan mediante vértices que están encerrados a su vez por otra circunferencia.
[10]
Máquina de Turing con cinta infinita a ambos lados
Máquina de Turing con cinta infinita a ambos lados
Esta modificación se denota al igual que una MT sencilla, lo que la hace diferente es que la cinta es infinita tanto por la derecha como por la izquierda, lo cual permite realizar transiciones iniciales como
.
Máquina de Turing con cinta multipista
Subdivisión de una celda de la cinta.
Es aquella que mediante la cual cada celda de la cinta de una máquina sencilla se divide en subceldas. Cada celda es así capaz de contener varios símbolos de la cinta. Por ejemplo, la cinta de la figura tiene cada celda subdividida en tres subceldas. Se dice que esta cinta tiene múltiples pistas puesto que cada celda de esta máquina de Turing contiene múltiples caracteres, el contenido de las celdas de la cinta puede ser representado mediante n-tuplas ordenadas. Los movimientos que realice está máquina dependerán de su estado actual y de la n-tupla que represente el contenido de la celda actual. Cabe mencionar que posee un solo cabezal al igual q ue una MT sencilla.
Máquina de Turing multicinta
Diagrama de una máquina de Turing multicinta, las flechas indican los cabezales de lectura/escritura.
[11]
Una MT con más de una cinta consiste de un control finito con k cabezales lectores/escritores y k cintas. Cada cinta es infinita en ambos sentidos. La MT define su movimiento dependiendo del símbolo que está leyendo cada uno de sus cabezales, da reglas de sustitución para cada uno de los símbolos y dirección de movimiento para cada uno de los cabezales. Inicialmente la MT empieza con la entrada en la primera cinta y el resto de las cintas en blanco.
Máquina de Turing multidimensional
Diagrama de una máquina de Turing bidimensional.
Una MT multidimensional es aquella cuya cinta puede verse como extendiéndose infinitamente en más de una dirección, el ejemplo más básico sería el de una máquina bidimensional cuya cinta se extendería infinitamente hacia arriba, abajo, derecha e izquierda. En la modificación bidimensional de MT que se muestra en la figura también se agregan dos nuevos movimientos del cabezal {U,D} (es decir arriba y abajo). De esta forma la definición de los movimientos que realiza el cabezal será {L,R,U,D}.
MAQUINA DE TURING DETERMINISTA Y NO DETERMINISTA La entrada de una máquina de Turing viene determinada por el estado actual y el símbolo leído, un par (estado, símbolo), siendo el cambio de estado, la escritura de un nuevo símbolo y el movimiento del cabezal, las acciones a tomar en función de una entrada. En el caso de que para cada par (estado, símbolo) posible exista a lo sumo una posibilidad de ejecución, se dirá que es una máquina de Turing determinista, mientras que en el caso de que exista al menos un par
[12]
(estado, símbolo) con más de una posible combinación de actuaciones se dirá que se trata de una máquina de Turing no determinista. La función de transición δ en el caso no determinista, queda definida como sigue:
¿Cómo sabe una máquina no determinista qué acción tomar de las varias posibles? Hay dos formas de verlo: una es decir que la máquina es "el mejor adivino posible", esto es, que siempre elige la transición que finalmente la llevará a un estado final de aceptación. La otra es imaginarse que la máquina se "clona", bifurcándose en varias copias, cada una de las cuales sigue una de las posibles transiciones. Mientras que una máquina determinista sigue un único "camino computacional", una máquina no determinista tiene un "árbol computacional". Si cualquiera de las ramas del árbol finaliza en un estado de aceptación, se dice que la máquina acepta la entrada. La capacidad de cómputo de ambas versiones es equivalente; se puede demostrar que dada una máquina de Turing no determinista existe otra máquina de Turing determinista equivalente, en el sentido de que reconoce el mismo lenguaje, y viceversa. No obstante, la velocidad de ejecución de ambos formalismos no es la misma, pues si una máquina no determinista M reconoce una cierta palabra de tamaño n en un tiempo
, la máquina
determinista equivalente reconocerá la palabra en un tiempo . Es decir, el no determinismo permitirá reducir la complejidad de la solución de los problemas, permitiendo resolver, por ejemplo, problemas de complejidad exponencial en un tiempo polinómico.
MAQUINA UNIVERSAL DE TURING Una máquina de Turing computa una determinada función parcial de carácter definido y unívoca, definida sobre las secuencias de posibles cadenas de símbolos de su alfabeto. En este sentido se puede considerar como equivalente a un programa de ordenador, o a un algoritmo. Sin embargo es posible realizar una codificación de la tabla que representa a una máquina de Turing, a su vez, como una secuencia de símbolos en un determinado alfabeto; por ello, podemos construir una máquina de Turing que acepte como entrada la tabla que representa a otra máquina de Turing, y, de esta manera, simule su comportamiento. En 1947, Turing indicó: “Se puede demostrar que es posible construir una máquina especial de este tipo que pueda realizar el trabajo de todas las demás. Esta máquina especial puede ser denominada máquina universal.” Esta fue, posiblemente, la idea germinal del concepto de sistema operativo, un programa que puede, a su vez, ejecutar, en el sentido de controlar otros programas, demostrando su existencia, y abriendo camino para su construcción real. Con esta codificación de tablas como cadenas, se abre la posibilidad de que unas máquinas de Turing se comporten como otras máquinas de Turing. Sin embargo, muchas de sus
[13]
posibilidades son indecidibles, pues no admiten una solución algorítmica. Por ejemplo, un problema interesante es determinar si una máquina de Turing cualquiera se parará en un tiempo finito sobre una determinada entrada; problema conocido como problema de la parada, y que Turing demostró que era indecidible. En general, se puede demostrar que cualquier cuestión no trivial sobre el comportamiento o la salida de una máquina de Turing es un problema indecidible.
3. APLICACIONES Las computadoras como hoy las conocemos fueron diseñadas por Von Newman, el cual afirma que la base de la computadora es un aparato que implementa una máquina de Turing. A este aparato lo conocemos como unidad central de procesamiento o bien, procesador. Gracias a la demostración de que una máquina de Turing puede inclusive simular otra máquina de Turing, se inventaron los sistemas operativos multitarea. El sistema operativo multitarea es una máquina de Turing y cada programa también es una máquina de Tuiring, pero están siendo "simuladas" por la única implementación de la máquina de Turing que es el procesador. Por la misma razón, es posible hacer un emulador de otras computadoras dentro de las nuestras, un claro y básico ejemplo, es cómo podemos emular el super-nintendo (otra máquina de Turing) y cada uno de sus cartuchos con el programa Zsnes. Es por eso que sabemos que con las computadoras de hoy se puede hacer lo mismo que con las del futuro con las únicas limitaciones de la velocidad o de la memoria, un ejemplo claro de esta afirmación, se puede sacar de NASA, quienes siguen usando muchas computadoras de los 80s. Además se sabe que inclusive es posible simular una computadora del futuro en una actual.
4. DESARROLLO DE EJERCICIOS Operaciones: 1) Parar la computación.
[14]
2) Moverse un cuadrado a la derecha. 3) Moverse un cuadrado a la izquierda. 4) Escribir el símbolo S0 en lugar de cualquier otro que este en el cuadrado examinado. 5) Escribir el símbolo S1 en lugar de cualquier otro que este en el cuadrado examinado. …(n+4) Escribir el símbolo Sn en lugar de cualquier otro que este en el cuadrado examinado. Ejemplo 1 escribe S1 S1 S1
[15]
[16]
Ejemplo 2 Duplicación del número de 1s
[17]
[18]
Ejemplo 3 Escribir 2n unos en una cinta en blanco y parar, examinando el uno que está en el extremo izquierdo.
[19]
[20]
[21]
5. CONCLUSIÓN Para concluir el trabajo se puede resumir que Turing, en sus años pese a ser un aventajado en lo referente a computación, informática e inteligencia artificial se vio limitado por los paradigmas que en ese entonces regían en el ámbito de su aplicación, aún superando los inconvenientes que se le presentaron su obra fue menospreciada y desvalorada debido a sus conductas inmorales en la sociedad europea del siglo XX. Pese a lo antes mencionado su aporte con el paso del tiempo, ha recobrado el valor que nunca debió perder, y se le han dado los créditos y reconocimientos meritorios, en relación a las repercusiones que han tenido sus logros y descubrimientos en todo el campo informático y computacional, dándole el crédito por sus innovaciones y siendo considerado como el padre de la inteligencia artificial, y el creador de las bases de toda la computación moderna. La máquina de Turing, en conclusión es la idea de trasfondo de lo que hoy se entiende por procesador, donde éste puede reconocer lenguajes, y generar operaciones en base a la lógica aplicada décadas antes en una abstracción imaginativa del científico Turing, permitiendo a través de su estudio y comprensión el desarrollo de hitos tan importantes como lo es la multitarea o la emulación, dos conceptos muy familiares que tienen su origen en lo antes desarrollado por Turing.
[22]