MAQUINAS DE TURING

Post on 03-Jul-2015

893 views 4 download

Tags:

Transcript of MAQUINAS DE TURING

Autómatas y Lenguajes Formales

LAS MAQUINAS DE TURING

LA MÁQUINA DE TURING

Es un modelo computacional introducido por Alan Turing en el trabajo “ON COMPUTABLE NUMBERS, WITH AN APPLICATION TO THE NTSCHEIDUNGSPROBLEM”,

Publicado por la Sociedad Matemática de Londres en 1936

“ON COMPUTABLE NUMBERS, WITH AN APPLICATION TO THE NTSCHEIDUNGSPROBLEM”,

¿Existe algún procedimiento mecánico

general que pueda, en principio,

resolver todos los problemas

de las matemáticas, que

pertenezcan a alguna clase

bien definida?

LA MÁQUINA DE TURING es una caja negra (tan simple como una máquina de escribir y tan

compleja como un ser humano) capaz no sólo de leer y escribir un alfabeto de símbolos finito a partir de una cantidad finita pero muy grande de cinta de papel, sino de modificar su propia configuración o

"estado mental".

LA MÁQUINA DE TURING se convirtió en un instrumento ideal para probar si un procedimiento

es efectivamente computable o no.

En realidad LA MÁQUINA DE TURING es másuna abstracción matemática queun dispositivo físico o mecánico.

El hecho que se le denomine "máquina" sedebe a que su funcionamiento puede ser descrito en términos de operaciones individuales muy sencillas que sugieren unaimplementación real muy simple.

TURING construyó un modelo formal de computador,

LA MÁQUINA DE TURING, y demostró que existían

problemas que una máquina no podía resolver.

LA MÁQUINA DE TURING Es un modelo matemático abstracto que

formaliza el concepto de algoritmo.

TEOREMA DE TURING “Cualquier cosa que puede hacer una computadora

puede ser descrita de manera precisa”

Pero además, es posible afirmar (aunque no probar) que si un procedimiento es considerado

intuitivamente eficaz podrá realizarse mediante una máquina:

“Cualquier procedimiento que puede ser descrito con precisión puede ser programado para que lo realice

una computadora” - TESIS TURING-CHURCH

UNA MÁQUINA DE TURING es un autómata que se mueve sobre una secuencia lineal de datos.

En cada instante la máquina puede leer un solo dato de la secuencia (generalmente un carácter) y realiza ciertas acciones en base a una tabla que tiene en cuenta su "estado" actual (interno) y el último dato leído.

Entre las acciones está *la posibilidad de escribir nuevos datos en la secuencia; *recorrer la sec en ambos sentidos *y cambiar de "estado" dentro de un conjunto finito de estados posibles.

ESQUEMA DE UNA MAQUINA DE TURING

¡Aquí hay una b!

a

cabeza: lee / escribe

movimientos: izda / dcha

cinta infinita

Existen diversas "variedades" de una MÁQUINA DE TURING, pero la más simple puede ser descrita diciendo que es cualquier dispositivo que cumple las siguientes condiciones:

Tiene una cinta sobre la que puede desplazarse aizquierda y derecha un cabezal de lectura/escritura.La cinta contiene una serie de celdas, y en cada unade ellas puede escribirse un símbolo de un conjuntofinito; denominado EL ALFABETO DE LA MÁQUINA .

En principio todas las celdas que no se hayan escritoantes contienen un carácter especial nulo (0 o #).La cinta puede contener tantas celdas a derecha eizquierda del cabezal como sean necesarias para el funcionamiento de la máquina.

El cabezal puede moverse a derecha (R) aizquierda (L) de su posición actual, así como leer el contenido de una celda o escribir en ellacualquier carácter de su alfabeto.

Existe un registro de estado que almacena el estado de la máquina. El número de estados posibles es finito, y no se exige ningún estadoespecial con el que sea iniciada la máquina.

Existe una tabla de acción, que contiene lasinstrucciones de lo que hará el autómata. Estas instrucciones representan en cierta forma el"PROGRAMA" de la máquina. Las ejecución de cada instrucción de la tabla deacción incluye cuatro pasos:

1. Leer un carácter en la posición actual.

2. Escribir un nuevo símbolo en esta posición(puede ser el mismo que había). El símbolo aescribir es alguno del alfabeto de la máquina, y depende del carácter leído y del estado actual.

3. Desplazar el cabezal una celda a derecha oizquierda (R/L); en algunos modelos eldesplazamiento puede ser nulo (detener H).

4. Decidir cual será el nuevo estado en función delcarácter que se acaba de leer y del estado actual.

Si la tabla de acción no contiene ninguna correspondencia con el estado actual y el símbolo leído, entonces la máquina detiene su Funcionamiento.

DEFINICIÓN FORMAL DE LA MAQUINA DE TURING

Una máquina de Turing determinista es una tupla formada por varios objetos.

1. Q - un conjunto finito de estados.

2. Σ - El alfabeto de entrada: Un conjunto finito de símbolos que no contiene al símbolo blanco.

3. Γ - el alfabeto de cinta, tal que: Σ Γ⊆ y en símbolo “_” está en Γ.

4. δ:Q×Γ→Q×Γ×{I,D} – la función de transición.

5. q0 Q ∈ – el estado inicial

6. qsi Q∈ – el estado aceptador.

En los modelos didácticos computarizados la tabla suele definirse mediante una matriz de cinco columnas que contiene:

Estado/Carácter-leído/Carácter-a-escribir/Movimiento/Nuevo-estado

S: Estado anterior R: Símbolo leído W: Símbolo a escribir M: Movimiento (R, L). N: Nuevo estado.

FUNCIONAMIENTO DE UNA MAQUINA DE TURING

Estado actual

Símbolo leído Operación Estado

siguiente Comentarios

S0 b R S0 Buscando el primer 1

S0 1 R S1 Primer 1 encontrado

S1 1 R S1 Buscando blanco de separación

S1 b 1 S2 Blanco encontrado, se cambia por 1

S2 1 L S2 Buscando blanco de la izquierda

S2 b R S3 Hallado blanco, cambiar el 1 siguiente

S3 1 b S4 Se cambia el primer 1 por blanco

S4 b H S0 Fin del proceso

EJEMPLO DE PROGRAMA PARA UNA MAQUINA DE TURING

Maquina de Turing para sumar 2 números

CLASES DE MÁQUINAS DE TURING

MÁQUINAS DE TURING DETERMINISTAS Y NO DETERMINISTAS

En el caso de que para cada par [estado y símbolo]posible exista a lo sumo una posibilidad de ejecución, se dirá que es DETERMINISTA,Mientras que en el caso de que exista al menos unpar [estado, símbolo] con más de una posible combinación de actuaciones se dirá que se trata de una máquina NO DETERMINISTA.

MÁQUINA UNIVERSAL DE TURING

La MTu es, en efecto una máquina universal, ya que simula el comportamiento de cualquier otra máquina codificada en su cinta.La máquina universal de Turing es un modelo de modelos, un modelo universal.

La máquina de Turing es el modelo teórico de la computabilidad por excelencia.

Supongamos que tenemos una Máquina de Turing dada, MTo, que realiza algún proceso de computo. Por ejemplo la suma de 2 enteros, la tabla de transiciones de esta maquina MTo es la siguiente:

*Esta maquina MTo solamente tiene esa función, no puede calcular la multiplicación o la raíz cuadrada

Pero, seria posible codificar esta maquina utilizando un alfabeto mas complejo?,,,Si fuera posible podríamos colocar la tabla codificada de MTo en la cinta de otra Maquina de Turing.

La tabla de MTo podría ser codificada como una secuencia lineal de símbolos para escribirla en una cinta.

Una opción seria:

Donde al inicio se escribe el estado inicial y las transiciones se separan con el Símbolo *. La entrada para la MTo comienza después del símbolo E

Ahora tenemos una nueva maquina MTu, que tiene escrita en su cinta la tabla de otra maquina de Turing.Solamente resta construir la tabla para la nueva maquina. La tabla de Transiciones de MTu tendría las instrucciones que le indicarían como seguir las instrucciones de la tabla MTo codificada en su cinta.

Las transiciones de MTu harán que se comporte de la misma manera que MTo. Es decir,

• MTu se detendrá cuando MTo lo haga y no lo hará si MTo no se detiene.• Cuando MTu se detenga, la cinta lucirá como si se hubiese ejecutado Mto.

MTu simulara cualquier MAQUINA DE TURING con una entrada arbitraria

Aunque el computador actual tiene antecedentes tan antiguos como las calculadoras mecánicas de Leibniz y Pascal (s. XVII), hoy se acepta que el

concepto generador de todos los ordenadores es

LA MÁQUINA UNIVERSAL DE TURING, Ideada en 1936.

SHIRLEY ESPITIA GONZALEZ

JOSE MARIA ESPINOSA BUELVAS

FRANKLIN GUIHUR MONTALVAN

GERARDO PADILLA DE LOS RIOS

GRACIAS!