Escolar Documentos
Profissional Documentos
Cultura Documentos
Asignatura:
Lenguaje y autómatas 1
Profesor:
Alumno:
N° de control:
11190307
Tema de investigación:
“Unidad 3”
Maquina De Turing
Especialidad:
Grupo:
6O
Historia
A finales del siglo XIX, el matemático David Hilbert se preguntó si era posible encontrar un
algoritmo para determinar la verdad o falsedad de cualquier proposición matemática. En
particular, se preguntaba si existiría un modo de determinar si cualquier fórmula del cálculo
de predicados de primer orden, aplicado a enteros, es verdadera. Dado que el cálculo de
predicados de primer orden sobre los enteros es suficientemente potente como para
expresar frases como esta gramática es ambigua, si Hilbert hubiera tenido éxito, existirían
algoritmos para dichos problemas, que ahora sabemos que no existen esta proposición se
conoce con el nombre de problema de Hilbert.
En 1963, Alan Mathinson Turing propuso la máquina que lleva su nombre como modelo de
cualquier computación posible. Este modelo se parece más a una computadora que a un
programa, aunque las verdaderas computadoras electrónicas, o incluso los
electromecánicas, tardaron varios años en ser construidas. La máquina de Turing consta
de una unidad de control, que pueda estar en cualquier estado tomado de un conjunto
infinito. Hay una cinta dividida en cuadrados o casillas, y cada casilla puede contener un
símbolo, tomado de otro conjunto infinito. Inicialmente, se sitúa en la cinta de entrada, que
es una cadena de símbolos de longitud infinita, elegidos del alfabeto de entrada. El resto
de las casillas de la cinta, que se extiende infinitamente hacia la derecha y hacia la
izquierda, contiene, inicialmente, un símbolo denominado espacio en blanco. El espacio en
blanco es un símbolo de cinta, pero no un símbolo de entrada, y puede haber también
otros símbolos de cinta además de los símbolos de entrada y del espacio en blanco.
Existe una cabeza de la cinta que siempre está situada sobre una de las casillas de la
cinta. Se dice que la máquina de Turing está señalando dicha casilla. Al principio, la
cabeza de la cinta se encuentra en la casilla de la entrada situada más a la izquierda. Un
movimiento de la máquina de Turing es una función del estado de la unidad de control y
del símbolo de la cinta al que señala la cabeza.
Una máquina de Turing con una sola cinta puede ser definida como una 7-tupla
M={Q,Σ,Γ,s,b,F,δ}, donde:
Funcionamiento
Esta tabla toma como parámetros el estado actual de la máquina y el carácter leído de la
cinta, dando la dirección para mover el cabezal, el nuevo estado de la máquina y el valor a
ser escrito en la cinta.
Escritura en una MT
Borrado en una MT
(1) El cabezal, representado con una flecha roja, lee el primer símbolo “a”. La transición
dice que al estar en q0 y leer una “a”, se sobrescribe “a” y el cabezal se mueve a la
derecha:
(2) A continuación, el estado sigue siendo q0, y el cabezal lee el segundo símbolo “a”.
Nuevamente, queda en q0, sobrescribe una “a”, y el cabezal se mueve a la derecha.
(4) En este instante, el cabezal lee un espacio en blanco, B. Según las transiciones de la
MT, en el estado q0 un espacio B cambia el estado de la máquina a q1, mantiene B y
mueve el cabezal a la derecha. El estado q1 es final de aceptación, por lo que la cadena
es aceptada.
Es aquella mediante la cual cada celda de la cinta se divide en subceldas. Cada subcelda
es capaz de contener símbolos de la cinta. La cinta tiene cada celda subdividida en tres
subceldas. Se dice que esta cinta tiene múltiples pistas. Puesto que cada celda de esta
máquina de Turing contiene múltiples caracteres, el contenido de las celdas de la cinta
puede ser representado mediante n-tuplas ordenadas. En el ejemplo anterior, las celdas
de la cinta contienen (B, a, a), (b, a, a) y (b, b, B). Por tanto, los movimientos que realice
está máquina dependerán de su estado actual y de la n-tupla que represente el contenido
de la celda actual.
Una máquina de Turing multipista no tiene más potencia que la máquina de Turing
original. Sin embargo, hace que sea más fácil la construcción de máquinas de Turing que
resuelvan ciertos problemas.
Ejemplo: Para una máquina de Turing que sume dos números binarios. Primero se
construye una máquina de Turing de tres pistas. La entrada serán dos números binarios
que ocupen las dos pistas superiores de la cinta. Suponiendo que sus dígitos se alinean
por la derecha, que sus representaciones binarias son de la misma longitud (lo que se
puede conseguir rellenándolas con tantos ceros como sea necesario) y que la cabeza de
lectura/escritura se sitúa sobre la celda del extremo izquierdo de la cadena. Por tanto, si
tuvieran que sumar 101 y 10, la cinta debería contener
La máquina de Turing realizará la suma en la tercera pista. Por tanto, el alfabeto de cinta
estará formado por las ternas:
Esta máquina de Turing buscará primero hacia la derecha el extremo derecho de los
números que van a ser sumados. Entonces sumará pares de dígitos, desde la derecha
hacia la izquierda, llevando la cuenta de los resultados que se obtengan y sumando a
quienes corresponda.
d (q2, (0, 0, B)) = (q2, (0, 0, 0), L) d (q3, (0, 0, B)) = (q2, (0, 0, 1), L)
d (q2, (0, 1, B)) = (q2, (0, 1, 1), L) d (q3, (0, 1, B)) = (q3, (0, 1, 0), L)
d (q2, (1, 0, B)) = (q2, (1, 0, 1), L) d (q3, (1, 0, B)) = (q3, (1, 0, 0), L)
d (q2, (1, 1, B)) = (q3, (1, 1, 0), L) d (q3, (1, 1, B)) = (q3, (1, 1, 1), L)
d (q2, (B, B, B)) = (q4, (B, B, B), S) d (q3, (B, B, B)) = (q4, (B, B, B), S)
Máquina de Turing que usa una cinta que se extiende infinitamente en una única dirección.
Generalmente, se tiene una cinta que se extiende infinitamente hacia la derecha. No está
permitido realizar ningún movimiento hacia la izquierda a partir de la celda del extremo
izquierdo. Desde luego, cualquier máquina de Turing de esta forma puede ser simulada
por una de las que responden a la definición original. Para cada computación,
simplemente se marca una de las celdas de la cinta infinita por los dos lados, como la
celda que se encuentra en el límite izquierdo.
La máquina de Turing Multicinta tiene varias cintas, cada una de las cuales tiene su propia
cabeza de lectura/escritura. Las cabezas de lectura/escritura se controlan
independientemente (es decir, al mismo tiempo, no tienen que moverse en la misma
dirección, ni realizar el mismo número de movimientos, ni incluso, hacer nada a la vez). En
un solo movimiento, esta máquina de Turing:
1. Cambia de estado dependiendo del estado actual y del contenido de las celdas de todas
las cintas, que están analizando actualmente las cabezas de lectura/escritura.
2. Escriben un nuevo símbolo en cada una de las celdas barridas por sus cabezas de
lectura/escritura.
3. Mueve cada una de sus cabezas hacia la izquierda o hacia la derecha (de forma
independiente al resto de las cabezas).
Por tanto, la función de transición para una máquina de Turing con n cintas, es de la forma
d : Q x G n ® Q x G n x {R, L} n donde una transición de la forma d (q, (s 1, s 2,…, s n)) =
(p,(t 1, t 2, …, t n), (X1, X2, …, Xn)) significa que cambia del estado q a p, reemplaza s i
por t i en la cinta i y mueve la cabeza de la cinta i en la dirección Xi.
La máquina de Turing multidimensional es aquella que permite que la cinta tenga muchas
dimensiones. Por ejemplo, una cinta de dos dimensiones que se extienda hacia abajo y
hacia arriba, al igual que hacia la derecha y hacia la izquierda. Dependiendo del estado
actual de la máquina de Turing y del símbolo analizado, cambia de estado, escribe un
símbolo en la celda actual y se mueve a la izquierda, al derecha, hacia arriaba o hacia
abajo. Por tanto, la función de transición para esta máquina de Turing será de la forma:
d : Q x G ® Q x G x {R, L, U, D}
Entonces, se usara una cinta de dos pistas para simular la máquina de Turing. Una pista
se encargará de almacenar el contenido de las celdas y la otra las coordenadas, utilizando
un símbolo (*) para separar los valores de las coordenadas. Para simular un movimiento
de una máquina de Turing de dos dimensiones, está máquina calcula la dirección de la
celda a la que se moverá la máquina de Turing dos dimensiones. Entonces, localiza la
pista inferior la celda con dicha dirección y cambia el contenido de la celda en la pista
superior.
d (q, s ) Í Q x G x {R, L}
Una cadena ω∈A^*, es aceptada por una MT, si comienza en el estado e0, con la cabeza
de lectura/escritura en el símbolo más a la izquierda, luego de leer toda la cadena ω, llega
a un estado e_f∈F. El lenguaje aceptado por MT, es el conjunto de todas las cadenas que
son aceptadas por MT:
Otras cadenas también aceptadas por esta MT son 11110000, 10, 11111110000000.
1. Elimine las características de inicio de los estados iníciales de las maquinas, excepto la
de aquel donde iniciara la maquina compuesta.
Son aquellos en los que cada uno de los bloques de construcción se representa como un
nodo, con flechas entre dichos nodos para indicar las transiciones entre bloques.
Se puede combinar dos máquinas de Turing permitiendo que compartan la misma cinta y,
que cuando una termine su ejecución, la otra empiece. El contenido de la cinta cuando
comienza la ejecución de la segunda máquina de Turing, está formado por todo lo que
dejó la primera máquina de Turing, y la cabeza de l/e de la segunda se situará, al
comienzo de la ejecución, sobre la celda de la cinta sobre la que terminó la primera.
Nota: Observe que la anterior afirmación no menciona para nada la posible dificultad de
escribir el programa o del tiempo que pueda emplear en realizar el cálculo (cualquier
cálculo que pueda hacer un ordenador puede teóricamente efectuarse con papel y lápiz).
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.
Maquinas de Turing Compuesta
Funcionamiento de la MT Multicinta
Tal como se describió en la sección anterior sobre la clasificación de las MT, una máquina
multicintas posee n cintas diferentes, y n cabezas de L/E. La función de transición para
máquinas de Turing con n cintas es:
δ:QxΓ^n→QxΓ^n x〖{D,I,N}〗^n
Ejemplo 1
Reconocimiento del lenguaje {anbn n³ 1}. Éste es bastante laborioso en una máquina de
Turing con una única cinta. Es mucho más fácil realizarlo con una máquina de Turing de
dos cintas. Suponiendo que, inicialmente, coloca la cadena a analizar en la cinta 1 y que
q1 es el estado inicial. Si la cabeza de lectura/escritura de la cinta 1 está situada
inicialmente sobre el carácter del extremo izquierdo de la cadena, las cuatro posiciones
siguientes son fundamentales para el reconocimiento (cualquier otra transición sería para
cadenas mal formadas y se puede suponer que llega a un estado que no es de
aceptación):
d (q1, (a, B)) =(q1, (a, a), (R, R))
d (q1, (b, B)) =( q2, (b, B), (S, L))
d ( q2, (b, a)) =( q2, (b, a), (R, L))
d ( q2, (B, B)) =( q3, (B, B), (R, L))
Aunque esta máquina de Turing Multicinta parece bastante distinta y posiblemente más
potente que la máquina de Turing definida originalmente, las dos son equivalentes en el
sentido de que cada una de ellas puede ser simulada por la otra.
Ejemplo 2
Sea una MT de dos cintas, que reconoce el lenguaje L={a^i b^i c^i:i≥0}
• Una Máquina de Turing, o MT, se considerar una cinta infinita dividida en casillas, cada
una de las cuales contiene un símbolo, y sobre la cual actúa un dispositivo que puede
adoptar diversos estados, y que lee un símbolo de la casilla sobre la que está situado. En
función de dicho símbolo y del estado actual, se pueden realizar tres acciones siguientes:
pasa a un nuevo estado, imprime un símbolo en lugar del que acaba de leer y se desplaza
a una posición hacia la izquierda, derecha, o se detiene.
• Las MT, de acuerdo a la clasificación de los lenguajes formales de Chomsky, acepta los
lenguajes tipo cero (0), llamados lenguajes recursivamente enumerables.