Maquinas de Turing

12
Maquinas de Turing

Transcript of Maquinas de Turing

Maquinas de Turing

4.1 Definición formal MT

La M.T. es un modelo matemático para representar a una maquina teórica. A pesar de su simplicidad la M.T. tiene el mismo poder computacional que una computadora de propósito general. La M.T. es interesante, sobre todo, por el conjunto de lenguajes que permite reconocer y también generar (lenguajes recursivamente enumerables) y por el conjunto de funciones que puede computar (funciones calculables).

El modelo básico de M.T. esta formado por un autómata finito, con un dispositivo de lectura/escritura que controla una cinta de longitud infinita.

Formalmente la M.T. se define como una tupla: MT ={Q,Σ,Γ,f,q 0,b,F}

Q es el conjunto finito de estados

Σ es el alfabeto de la cadena de entrada

Γ es el alfabeto de la cinta q0 ∈ Q es el estado inicial b es el espacio en blanco b ∈ Γ, pero b/ ∈ Σ F ⊂ Q es el conjunto de estados finales f : Q×Γ −→ Q×Γ×{I,D}

Inicialmente, en la cinta hay una colección finita de símbolos de Σ precedida y seguida por blancos (b), el estado de la M.T. es q0 y la cabeza de lectura/escritura suele apuntar al primer símbolo distinto de b que hay en la cinta.

Funcionamiento de la maquina de Turing

La maquina de Turing tiene, un control finito, una cabeza lectora y una cinta donde puede haber caracteres, y donde eventualmente viene la palabra de entrada. La cinta es de longitud infinita hacia la derecha, hacia donde se extiende indefinidamente, llenándose los espacios con el carácter blanco (que representaremos con “t”). La cinta no es infinita hacia la izquierda, por lo que hay un cuadro de la cinta que es el extremo izquierdo.

En la MT la cabeza lectora es de lectura y escritura, por lo que la cinta puede ser modificada en curso de ejecución. Además, en la MT la cabeza se mueve bidireccionalmente (izquierda y derecha), por lo que puede pasar repetidas veces sobre un mismo segmento de la cinta.

La operación de la MT consta de los siguientes pasos:

I. Lee un carácter en la cinta

II. Efectúa una transición de estado

III. Realiza una acción en la cinta

Las acciones que puede ejecutar en la cinta la MT pueden ser: Escribe un símbolo en la cinta

Mueve la cabeza a la izquierda o a la derecha

4.2 Construcción modular de una MT

El objetivo de la creación modular de una maquina de Turing es poder desarrollar máquinas complejas a partir de bloques elementales, a partir de maquinas más pequeñas, mediante diagramas de transiciones. La construcción de máquinas de Turing se lleva a cabo mediante los diagramas de transición y combinarlos de manera parecida a lo que se realiza en la formación de la unión y concatenación de los autómatas finitos.

Pasos para la construcción de una máquina de Turing:

1. Elimine las características de inicio de los estados iniciales de las maquinas, excepto la de aquel donde iniciara la maquina compuesta.

2. Elimine las características de detención 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.

3. Para cada uno de los antiguos estados de parada p y cada x en y.

Ejemplificación de la construcción.

4.3 Lenguajes aceptados por la MT

Una máquina de Turing se puede comportar como un aceptador de un lenguaje. Si colocamos una cadena w en la cinta, situamos la cabeza de lectura/escritura sobre el símbolo del extremo izquierdo de la cadena w y ponemos en marcha la  máquina a partir  de su estado inicial. Entonces w es aceptada si, después de una secuencia de movimientos, la máquina de Turing llega a un estado final y para. Por tanto w es aceptada. Si qw  *  w1pw2 para algún estado final p y unas cadenas w1 y w2.

 Entonces, se obtiene la siguiente definición: Sea M = (Q, S , G, q0=q1, B, F, d) una máquina de Turing. Entonces el lenguaje aceptado por M es: L(M) = {wÎ S*½q1w   *   w1pw2 para pÎF y wiÎG*}.

Los lenguajes formales que son aceptados por una máquina de Turing son exactamente aquellos que pueden ser generados por una gramática formal. 

Esta formado por la cadenas definidas sobre el alfabeto Σ que hacen que la M.T. llegue a un estado final, partiendo de una situación inicial en que la cadena está en la cinta de entrada, q0 es el estado inicial y la cabeza de lectura/escritura apunta a la celda ocupada por el primer carácter de dicha cadena.

L(MT)={w ∈ Σ∗/q 0w −→ ∗ α1pα2 donde p ∈ Fα 1,α 2 ∈ Γ∗}

Palabra Aceptada

Una palabra w ∈ Σ∗, es aceptada por una MT M si [[s,ε,t,w]] `∗ [[h,α,a,β]]

donde a,∈ Γ, α,β ∈ Γ. Como se ve, el único criterio para que la palabra de entrada w se acepte es que se llegue a halt en algún momento, independientemente del contenido final de la cinta, el cual es visto como “basura”. Por ejemplo, la MT del ultimo ejemplo acepta cualquier palabra de entrada.

Decimos de que un lenguaje L es Turing-aceptable si hay alguna MT que da halt para toda entrada w ∈ L.