Alan Turing

Alan Turing

sábado, 20 de noviembre de 2010

EL FUNCIONAMIENTO DE LA MAQUINA DE TURING MULTICINTAS


La MT de dos cintas que reconoce el lenguaje:






Se coloca la cadena de entrada en la primera cinta, la idea es copiar en la segunda cinta una X por cada a y cuando encuentre la primera b, se detiene en la primea cinta, luego se avanza a la derecha en la primera cinta y se avanza a la izquierda en la segunda cinta, cuando encuentra la primera c las dos cintas avanzan hacia la derecha.

La función de transición  es la siguiente, sea:



RECONOCIMIENTO DE CADENAS UTILIZANDO LA MAQUINA DE TURING

 
Es importante porque a través de esta tecnología vemos el progreso de la humanidad  través de los desarrollos de los científicos de la NASA con este sofisticado robot que con la información que perciben del medio ambiente a través de censores y actuadores pueden tomar decisiones razonables en terrenos difíciles.

Claro que si lo considero pertinente para el contenido del curso, por que tradicionalmente los robots han tenido poca interacción con los humanos, por ejemplo los robots industriales, e incluso algunos robots de servicio (aspiradores, cortar pasto).

Este acercamiento al hombre implicará que los robots tengan una serie de  características determinadas que el hombre considera necesarias para aceptarlo. A dichos robots se les puede denominar sociales.

Un punto de partida importante para llegar a considerar la necesidad de tener robots sociales o sociables es considerar y reconocer que el hombre es una especie profundamente social. A menudo el hombre aplica modelos sociales para explicar, comprender y predecir el comportamiento de lo que le rodea.

CONSTRUCCIÓN MODULAR DE LAS MAQUINAS DE TURING

Mediante esta técnica se puedan desarrollarse maquinas de Turing complejas a partir de  bloques de elementales a partir de maquinas mas pequeñas  mediaste diagramas de transiciones.
La construcción de maquinas 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
a)    Elimine las características de inicio de los estados iniciales de las maquinas, excepto la de aquel donde iniciara la maquina compuesta.
b)    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.
c)    Para cada uno de los antiguos estados de parada p y cada x en y.


Ejemplificación de  dicha construcción






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 secuencia en ambos sentidos y cambiar de "estado" dentro de un conjunto finito de estados posibles.


 


LOS LENGUAJES ACEPTADOS PARA UNA MAQUINA DE TURING (Ejemplos)

Aceptan lenguajes formales que pueden ser generados por una gramática de tipo 0: recursivamente innumerable (r.e) Las maquinas de turing son los reconocedores de lenguaje más poderosos que existen.

Lenguajes regulares: las gramáticas (de tipo 3) formales definen un lenguaje describiendo como se pueden generar las cadenas del lenguaje… Las gramáticas regulares (aquellos reconocidos por un autómata finito). Son las gramáticas más restrictivas. El lado derecho de una producción debe contener un símbolo Terminal y como máximo un símbolo no Terminal.

Lenguajes Libres de contexto: Estas gramáticas conocidas también como gramáticas de tipo 2 o gramáticas independientes del contexto, son las que generan los lenguajes libres o independientes del contexto. Los lenguajes libres del contexto son aquellos que pueden ser reconocidos por un autómata de pila determínistico o no determínistico. Como toda gramática se definen mediante una cuadrupla G=N, T, S, P), siendo N un conjunto finito de símbolos no terminales; T un conjunto de símbolos terminales: P un conjunto finito de producciones; S es el símbolo distinguido o axioma.




Ejemplo1

Aquí se describe una MT M2 que reconoce el lenguaje consistente de todas las cadenas de 0s cuya longitud es una potencia de 2. La MT decide el lenguaje A = { 02n | n ≥ 0}.

M2 = “Sobre la cadena de entrada w:

1.    Recorrer la cinta de izquierda a derecha, marcando un cero si y otro no.
2.    Si en el paso 1 la cinta contiene sólo un cero, aceptar.
3.    Si en el paso 1 la cinta contiene más de un cero y la cantidad de ceros es impar, rechazar.
4.    Regresar la cabeza de la cinta hasta la posición más a la izquierda.
5.    Ir al paso 1.”

·         Q = { q1, q2, q3, q4, q5, qaceptar, qrechazar }
·         Σ = { 0 }
·         Γ = { 0, x, Џ }
·         δ se describe en el diagrama de estados de la figura 4.4
·         Los estados inicial de aceptación y rechazo son q1, qaceptar, qrechazar, respectivamente















En la figura 4.4 la etiqueta 0 →Џ, R aparece en la transición de q1 a q2. Esto significa que, cuando M2 se encuentra en el estado q1 con la cabeza de la cinta leyendo un 0, la máquina va al estado q2, escribe Џ y mueve la cabeza de la cinta a la derecha (R). En otras palabras δ(q1, 0) = (q2, Џ, R). Para mayor claridad se usa  0 → R en la transición de q3 a q4, lo cual significa que M2 se mueve a la derecha cuando lee un 0 en el estado q3, pero no altera la cinta, δ(q3, 0) = (q4, 0, R).

A continuación podemos ver una corrida de M2 sobre la cadena de entrada 0000.













Ejemplo2

El siguiente ejemplo es una descripción formal de M1 = (Q, Σ, Γ, δ, qo, qaceptar, qrechazar). La máquina de Turing que decide el lenguaje B = { w#w | w Є { 0, 1 } * }.

·         Q = { q1, q2, … , q14, qaceptar, qrechazar }

·         Σ = { 0, 1, # }

·         Γ = { 0, 1, #, x, Џ }

·         δ se describe en el diagrama de estados de la figura 4.5

·         Los estados inicial de aceptación y rechazo son q1, qaceptar, qrechazar, respectivamente





·          













Ejemplo 3


La máquina de Turing M4 resuelve el llamado problema de la distinción. Se da una lista de cadenas sobre { 0, 1 } separadas por # y su trabajo es aceptar si todas las cadenas son distintas. EL lenguaje es

E = { #x1#x2# … #xk | cada xi Є { 0,1 }* y xi ≠ xj para cada i ≠ j }.

M4 = “Sobre la cadena de entrada w:

1.    Colocar una marca en el símbolo más a la izquierda en la cinta. Si dicho símbolo es un blanco, aceptar. Si dicho símbolo es un #, continuar al siguiente paso. De otra manera, rechazar.

2.    Barrer a la derecha hasta el siguiente # y colocar una segunda marca sobre este. Si no se encuentra otro # antes de un símbolo blanco, sólo xi está presente, entonces aceptar.

3.    Con movimientos de zig-zag, comparar las dos cadenas a la derecha de los símbolos # marcados. Si son iguales, rechazar.

4.    Mover la marca más a la derecha hacia el siguiente #. Si no se encuentra otro # antes de un símbolo blanco, mover la marca más a la izquierda al siguiente # y la segunda marca a un lado. Si no se encuentra otro # para la marca más a la derecha, significa que ya han sido comparadas todas las cadenas, aceptar.

5.    Ir al paso 3.”


EJEMPLO DE MAQUINA DE TURING; REPRESENTACIÓN GRAFICA, ELEMENTOS CORRESPONDIENTES Y RECONOCIMIENTO DE CADENA


Definimos una máquina de Turing sobre el alfabeto {0,1}, donde 0 representa el símbolo blanco. La máquina comenzará su proceso situada sobre un símbolo "1" de una serie. La máquina de Turing copiará el número de símbolos "1" que encuentre hasta el primer blanco detrás de dicho símbolo blanco. Es decir, situada sobre el 1 situado en el extremo izquierdo, doblará el número de símbolos 1, con un 0 en medio. Así, si tenemos la entrada "111" devolverá "1110111", con "1111" devolverá "111101111", y sucesivamente.
El conjunto de estados es :
y el estado inicial es S1


La tabla que describe la función de transición es la siguiente:









El funcionamiento de una computación de esta máquina se puede mostrar con el siguiente ejemplo (en negrita se resalta la posición de la cabeza lectora/escritora):




















La máquina realiza su proceso por medio de un bucle, en el estado inicial s1, reemplaza el primer 1 con un 0, y pasa al estado s2, con el que avanza hacia la derecha, saltando los símbolos 1 hasta un 0 (que debe existir), cuando lo encuentra pasa al estado s3, con este estado avanza saltando los 1 hasta encontrar otro 0 (la primera vez no habría ningún 1). Una vez en el extremo derecho, añade un 1. Después comienza el proceso de retorno; con s4 vuelve a la izquierda saltando los 1, cuando encuentra un 0 (en el medio de la secuencia), pasa a s5 que continúa a la izquierda saltando los 1 hasta el 0 que se escribió al principio. Se reemplaza de nuevo este 0 por 1, y pasa al símbolo siguiente, si es un 1, se pasa a otra iteración del bucle, pasando al estado s1 de nuevo. Si es un símbolo 0, será el símbolo central, con lo que la máquina se detiene al haber finalizado su cómputo


ELEMENTOS:




martes, 16 de noviembre de 2010

CLASIFICACIÓN DE MÁQUINA DE TURING

Máquina de Turing Multicinta:

En este modelo, la máquina de Turing tiene k cintas, infinitas en ambos sentidos, y k cabezales de L/E, Sólo hay una entrada de información, en la primera cinta. Los tres pasos asociados a cada transición son ahora: transición de estado, escribir un símbolo en cada una de las celdas sobre las que están los cabezales de L/E, el movimiento de cada cabezal es independiente y será R, L ó NADA (Z).

Máquina de Turing No Determinista:
Es una Máquina de Turing con cinta limitada a la izquierda, que se caracteriza por que a partir de un estado y un símbolo puede haber diferentes transiciones,
El número de transiciones asociado a cada para estado/símbolo SIEMPRE ES FINITO.

Máquina de Turing Multidimensional:
En este modelo la cinta es un array de k dimensiones de celdas, infinito en las 2k direcciones posibles. Dependiendo del estado y del símbolo leído, hay una transición que difiere de las de la Máquina de Turing unidimensional en que el movimiento puede ser en cualquiera de las 2k direcciones existentes. Se considera que la entrada está sobre un eje, y que la posición inicial del cabezal está ajustada a la izquierda de esa entrada.

Máquina de Turing con Múltiples Cabezales:
Tiene k cabezales de L/E, como la multicinta, pero con una sola cinta. Los cabezales operan todos de forma independiente. Como en las Máquinas de Turing multicinta, se admiten movimientos L, R ó Z.

 Máquina de Turing Offline:
Es un caso particular de las Máquinas de Turing multicinta: tienen una cinta especial de sólo lectura en la que el cabezal, que sólo puede moverse hacia la derecha, no puede moverse de la zona delimitada por una par de símbolos especiales.

MÁQUINA DE TURING:REPRESENTACÓN GRAFICA Y ELEMENTOS

Reconocimiento de cadena:

Se parte del estado inicial, y la cinta contiene símbolos de entrada.
Se efectúan las transiciones pertinentes según la función de transición.
Si la cabeza lectora rebasa el extremo izquierdo de la cinta, la cadena es rechazada y el proceso termina (terminación anormal).
Si la máquina alcanza el estado de parada, la cadena es aceptada.