Máquina de Turing

24
Máquina de Turing. Lenguajes y Autómatas I

Transcript of Máquina de Turing

Mquina de Turing.

Mquina de Turing.Lenguajes y Autmatas I

Unamquina de Turinges 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 cualquieralgoritmodecomputadoray es particularmente til en la explicacin de las funciones de unCPUdentro de una computadora.Definicin.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 unmatemtico,lgico,cientfico de la computacin, criptgrafoyfilsofobritnico.Es considerado uno de los padres de laciencia de la computacinsiendo el precursor de lainformticamoderna.Proporcion una influyente formalizacin de los conceptos dealgoritmoy computacin: lamquina de Turing.

Formul su propia versin de la hoy ampliamente aceptadaTesis 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 cdigosnazis, particularmente los de la mquinaEnigma; durante un tiempo fue el director de la seccinNaval EnigmadelBletchley Park. Tras la guerra dise uno de los primeros computadores electrnicos programables digitales en elLaboratorio Nacional de Fsicadel Reino Unidoy poco tiempo despus construy otra de las primeras mquinas en laUniversidad de Mnchester. Entre otras muchas cosas, tambin contribuy de forma particular al enigma de si las mquinas pueden pensar, es decir a laInteligencia Artificial.

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". Definicin informal de la mquina de Turing.

Unacintaque 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.Una mquina de Turing consta de:Uncabezalque 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.Unregistro de estadoque 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.

Unatablafinita de instrucciones (tabla de accinofuncin de transicin). Las instrucciones son usualmente 5-tuplas: qiajqi1aj1dk, (a veces 4-tuplas), que, dado elestado(qi) la mquina est actualmente enyelsmbolo(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 ajcon aj1),y entoncesMueve el cabezal (que es descrito por dky 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 luegoAsume 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 smboloo(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 deespacio de almacenamiento.

La mquina de Turing puede considerarse como unautmatacapaz 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 elautmata finito, o elautmata con pila, o igual a otros modelos con la misma potencia computacional.

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 estadoxleyendo la posiciny, donde hay escrito el smboloz, 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".

Funcionamiento.

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.

Aplicacin.

Comprobacin de la aceptacin de la cadena w = aabbcc:

CONSTRUCCIN MODULAR DE LAS MAQUINAS DE TURING.Mediante esta tcnica se pueden desarrollar maquinas de Turing complejas a partir debloques de elementales que parten de maquinas ms pequeasmediante 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 formacinde 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.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.

Pasos para la construccin de una mquina de Turing.Ejemplificacin dedicha construccin.

Mquina de Turing Compuesta.