Sei sulla pagina 1di 24

Lenguajes y Autmatas I

Definicin.
Una mquina de Turing es un dispositivo que manipula smbolos sobre una tira de cinta de acuerdo a una tabla de reglas. A pesar de su simplicidad, una mquina de Turing puede ser adaptada para simular la lgica de cualquier algoritmo de computadora y es particularmente til en la explicacin de las funciones de un CPU dentro de una computadora.


Una mquina de Turing es un autmata que se mueve sobre una secuencia lineal de datos. En cada instante la mquina puede leer un solo dato de la secuencia (generalmente un carcter) y realiza ciertas acciones en base a una tabla que tiene en cuenta su "estado" actual (interno) y el ltimo dato ledo. Entre las acciones est la posibilidad de escribir nuevos datos en la secuencia; recorrer la secuencia en ambos sentidos y cambiar de "estado" dentro de un conjunto finito de estados posibles.

Alan Turing. Alan Mathison Turing, fue un matemtico, lgico, cientfico


de la computacin, criptgrafo y filsofo britnico. Es considerado uno de los padres de la ciencia de la computacin siendo el precursor de la informtica moderna. Proporcion una influyente formalizacin de los conceptos de algoritmo y computacin: la mquina de Turing.

Formul su propia versin de la hoy ampliamente aceptada Tesis de Church-Turing, la cual postula que cualquier modelo computacional existente tiene las mismas capacidades algortmicas, o un subconjunto, de las que tiene una mquina de Turing. Durante la Segunda Guerra Mundial, trabaj en descifrar los cdigos nazis, particularmente los de la mquina Enigma; durante un tiempo fue el director de la seccin Naval Enigma del Bletchley Park. Tras la guerra dise uno de los primeros computadores electrnicos programables digitales en el Laboratorio Nacional de Fsica del Reino Unido y poco tiempo despus construy otra de las primeras mquinas en la Universidad de Mnchester. Entre otras muchas cosas, tambin contribuy de forma particular al enigma de si las mquinas pueden pensar, es decir a la Inteligencia Artificial.

Definicin informal de la mquina de Turing.

La mquina de Turing modela matemticamente a una mquina que opera mecnicamente sobre una cinta. En esta cinta hay smbolos que la mquina puede leer y escribir, uno a la vez, usando un cabezal lector/escritor de cinta. La operacin est completamente determinada por un conjunto finito de instrucciones elementales como "en el estado 42, si el smbolo visto es 0, escribe un 1; Si el smbolo visto es 1, cambia al estado 17; en el estado 17, si el smbolo visto es 0, escribe un 1 y cambia al estado 6; etc".

Una mquina de Turing consta de:

Una cinta que se divide en celdas, una al lado de la otra. Cada celda contiene un smbolo de algn alfabeto finito. El alfabeto contiene un smbolo especial llamado blanco y uno o ms smbolos adicionales. La cinta se supone que es arbitrariamente extensible hacia la izquierda y hacia la derecha, es decir, la mquina de Turing siempre es suministrada con tanta cinta como necesite para su computacin. Las celdas que no se hayan escrito previamente se asumen que estn rellenas con el smbolo blanco. En algunos modelos la cinta tiene un extremo izquierdo marcado con un smbolo especial; la cinta se extiende o es indefinidamente extensible hacia la derecha.


Un cabezal que puede leer y escribir smbolos en la cinta y mover la cinta a la izquierda y a la derecha una (y slo una) celda a la vez. En algunos modelos el cabezal se mueve y la cinta es estacionaria. Un registro de estado que almacena el estado de la mquina de Turing, uno de los estados finitos. Hay un especial estado inicial con que el registro de estado es iniciado. Turing escribe que estos estados reemplazan el "estado de la mente" en que ordinariamente estara una persona realizando clculos.


Una tabla finita de instrucciones (tabla de accin o funcin de transicin). Las instrucciones son usualmente 5-tuplas: qiajqi1aj1dk, (a veces 4-tuplas), que, dado el estado (qi) la mquina est actualmente en y el smbolo (aj) se est leyendo en la cinta (el smbolo actualmente debajo del cabezal) le indica a la mquina hacer lo siguiente en secuencia (para los modelos de 5-tupla):
Borra o escribe un smbolo (reemplazando aj con aj1), y entonces Mueve el cabezal (que es descrito por dk y puede tener los valores: 'L' para un paso a la izquierda, o 'R' para uno paso a la derecha, o 'N' para permanecer en el mismo lugar) y luego Asume el mismo o un nuevo estado como prescrito (ve al estado qi1).

En los modelos de 4-tupla, son especificadas como instrucciones separadas: borrar o escribir un smbolo (aj1) y mover el cabezal a la izquierda o la derecha (dk). Especficamente, la tabla indica a la mquina: (ia) borrar o escribir un smbolo o (ib) mover el cabezal a la izquierda o a la derecha, y luego (ii) asumir el mismo o un nuevo estado, pero no las dos acciones (ia) y (ib) en la misma instruccin. En algunos modelos, si no hay ninguna entrada en la tabla para la actual combinacin de smbolo y estado, la mquina se detendr; otros modelos requieren que estn llenas todas las entradas.Note que cada parte de la mquina su estado y colecciones de smbolos y sus acciones imprimir, borrar, movimiento de la cinta es finito, discreto y distinguible; es la cantidad potencialmente ilimitada de cinta lo que le da una cantidad ilimitada de espacio de almacenamiento.


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.

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: Mover el cabezal lector/escritor hacia la derecha. Visualizacin de una mquina de Turing, en la que se ve el cabezal y la cinta que se lee. Mover el cabezal lector/escritor hacia la izquierda. El cmputo se determina 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 escribir en la cinta. La memoria es la cinta de la mquina que 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".

Aplicacin.
1. Se cambia la a por una X y se mueve hacia la derecha pasando por encima de todas las a e Y, hasta llegar a la primera b, cambia la primera b por una Y, se mueve a la derecha pasando por encima de las b y Z, y luego encuentra la primera c y la cambia por Z y se mueve a la izquierda. 2. Luego se mueve a la izquierda pasando por encima de b, Y, a, hasta encontrar la X, la reemplaza por una X y repite el proceso anterior, cuando la mquina reemplaza la cadena X, Y y Z reconoce la cadena vaca y busca el estado de aceptacin.


Comprobacin de la aceptacin de la cadena w = aabbcc:


Mediante esta tcnica se pueden desarrollar maquinas de Turing complejas a partir de bloques de elementales que parten de maquinas ms pequeas mediante diagramas de transiciones. La construccin de maquinas de Turing se lleva a cabo por medio de los diagramas de transicin al combinarlos de manera parecida a lo que se realiza en la formacin de la unin y concatenacin de los autmatas finitos.


Las maquinas de Turing adems de utilizarse para el reconocimiento de lenguajes, tambin se toman como modelos tericos de las computadoras. Se puede combinar dos mquinas de Turing permitiendo que compartan la misma cinta y, que cuando una termine su ejecucin, la otra empiece. El contenido de la cinta cuando comienza la ejecucin de la segunda mquina de Turing, est formado por todo lo que dej la primera mquina.

Pasos para la construccin de una mquina de Turing.

Elimine las caractersticas de inicio de los estados iniciales de las maquinas, excepto la de aquel donde iniciara la maquina compuesta. Elimine las caractersticas de detencin de los estados de parada de todas la maquinas e introduzca un nuevo estado de parada que nos se encuentre en ninguno de los diagramas que se combinan. Para cada uno de los antiguos estados de parada p y cada x en y.

Ejemplificacin de dicha construccin.

Mquina de Turing Compuesta.