Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Contenido ............................................................................................................................................ 1
Introducción ........................................................................................................................................ 2
Inicios de la Máquina de Turing .......................................................................................................... 3
La prueba de Turing (máquina y persona) .......................................................................................... 4
Qué es una Máquina de Turing y cómo funciona. .............................................................................. 4
Representación gráfica de una MT ..................................................................................................... 7
Clasificación de las Máquinas de Turing ............................................................................................. 9
Lenguajes aceptados por una MT ..................................................................................................... 13
Construcción modular de las MT ...................................................................................................... 14
Reconocimiento de cadenas de una MT ........................................................................................... 16
Ejemplos de aplicación de las MT ..................................................................................................... 17
Funcionamiento de la MT Multicinta ................................................................................................ 23
Conclusiones ..................................................................................................................................... 25
Bibliografía. ....................................................................................................................................... 26
Introducción
Como su propio nombre indica, la máquina de Turing fue creada por el matemático inglés
Alan Turing, un genio en muchos campos pero especialmente en la criptografía y la
lógica. Originalmente la denominó “Máquina de Computación Lógica” siendo una de las
mayores aportaciones pues despejó el camino de la ciencia de la Computación, de la
Informática moderna.
Una Máquina de Turing consta de una cinta infinita dividida en espacios de trabajo o
celdas yuxtapuestas que actúa como memoria, un cabezal capaz de leer y escribir
símbolos en la cinta y moverla de celda en celda a derecha e izquierda, un registro de
estado, y una tabla finita de instrucciones o tabla de acción.
Existen diversos tipos de máquinas de Turing: con movimiento stay o “esperar”, con cinta
infinita a ambos lados, con cinta multipista, multicinta, determinista y no determinista, la
Máquina de Turing Cuántica. En resumen, una máquina de Turing es un dispositivo que
transforma un INPUT en un OUTPUT, ambos formados por un código binario de unos y
ceros.
Inicios de la Máquina de Turing
En el año 1931, Kurt Gödel publicó su famoso artículo Sobre las proposiciones
formalmente indecidibles en Principia mathematica y sistemas relacionados, el cual en
síntesis demuestra que toda formulación axiomática consistente de la teoría de números
contiene proposiciones indecidibles, es decir, siempre habrá en ella afirmaciones
verdaderas que no se pueden demostrar.
En 1937, el matemático inglés Alan Turing publicó otro artículo famoso (sobre los
Números Calculables), que desarrollo el teorema de Gödel y que puede considerarse el
origen oficial de la informática teórica. En este artículo introdujo la Máquina de Turing, una
entidad matemática abstracta que formalizó el concepto de algoritmo, convirtiéndose en la
precursora de las computadoras digitales. Con la ayuda de su máquina, Turing pudo
demostrar que existen problemas irresolubles, tales que ninguna máquina u ordenador
serán capaces de obtener su solución. Por esta razón, Turing es considerado el padre de
la teoría de la computabilidad.
A. Turing
En forma general, una Máquina de Turing puede considerarse como una cinta infinita
dividida en casillas, cada una de las cuales contiene un símbolo. Sobre dicha cinta actúa
un dispositivo que puede adoptar diversos estados y que, en cada instante, lee un
símbolo de la casilla sobre la que está situado. En función del símbolo que ha leído y del
estado en que se encuentra, realiza las 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.
La prueba de Turing
Existe una versión modificada, propuesta por Roger Penrosse: la sala china, en esencia
es igual, pero la ejecución del algoritmo la realizan personas encerradas en una
habitación, se requiere que las personas de la habitación no conozcan el idioma en que
se realiza la conversación. Pese a la brillantez de Penrosse, esta modificación no aporta
nada al problema, puesto que si los operadores consiguen comprender la conversación, lo
harían gracias a su propia inteligencia, por otra parte, pese a lo aparentemente absurdo
de la proposición, la sala podría pasar la prueba de Turing sin que los operadores
hubieran comprendido nada de la conversación.
Definición formal
Una máquina de Turing con una sola cinta puede ser definida como una 7-tupla
M={Q,Σ,Γ,s,b,F,δ}, donde:
• s ∈ Q es el estado inicial.
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
(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.
Por tanto d (q, s)= (p, s ’, S) significa que se pasa del estado q al p, se escribe s’ en la
celda actual y la cabeza se queda sobre la celda actual.
- Máquina de Turing Multipista
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:
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.
Una máquina de Turing con una cinta infinita en un sentido puede simular una máquina de
Turing con la cinta infinita en los dos sentidos pero con dos pistas. Sea M una máquina de
Turing con una cinta infinita en los dos sentidos. La máquina de Turing M’, que tiene una
cinta infinita en un sentido, puede simular a M si tiene una cinta con dos pistas. La cinta
superior contiene la información correspondiente a la parte derecha de la cinta M, a partir
de un punto de referencia dado. La pista inferior contiene la parte izquierda de la cinta M
(en orden inverso).
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:
Tenemos por ejemplo una MT que reconoce el lenguaje {0^n 1^n:n≥1}. Las transiciones
de la máquina se representan como sigue:
Se evalúa la cadena w = 1100, arrojando el siguiente resultado:
Otras cadenas también aceptadas por esta MT son 11110000, 10, 11111110000000.
1. Elimine las características de inicio de los estados iniciales 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.
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 máquina reemplaza la
cadena “X”, “Y” y “Z” reconoce la cadena vacía y busca el estado de aceptación.
Teoría de la computación:
Algunos de estos modelos formales fueron propuestos por precursores como Alonzo
Church (cálculo Lambda), Kurt Gödel (funciones recursivas) y Alan Turing (máquina de
Turing). Se ha mostrado que estos modelos son equivalentes en el sentido de que pueden
simular los mismos algoritmos, aunque lo hagan de maneras diferentes. Entre los
modelos de cómputo más recientes se encuentran los lenguajes de programación, que
también han mostrado ser equivalentes a los modelos anteriores; esto es una fuerte
evidencia de la conjetura de Church-Turing, de que todo algoritmo habido y por haber se
puede simular en una máquina de Turing, o equivalentemente, usando funciones
recursivas. En 2007 Nachum Dershowitz y Yuri Gurevich publicaron una demostración de
esta conjetura basándose en cierta axiomatización de algoritmos.
Uno de los primeros resultados de esta teoría fue la existencia de problemas imposibles
de resolver algoritmicamente, siendo el problema de la parada el más famoso de ellos.
Para estos problemas no existe ni existirá ningún algoritmo que los pueda resolver, no
importando la cantidad de tiempo o memoria se disponga en una computadora. Asimismo,
con la llegada de las computadoras modernas se constató que algunos problemas
resolubles en teoría eran imposibles en la práctica, puesto que dichas soluciones
necesitaban cantidades irrealistas de tiempo o memoria para poderse encontrar.
La máquina con oráculo, es una máquina de Turing equipada con un oráculo que es
capaz de contestar preguntas sobre la pertenencia a un conjunto específico de números
naturales.
Funcionamiento:
Una máquina oráculo con el "conjunto parada" en su oráculo puede computar la función
del problema de la parada. Mientras este sería un ejemplo trivial del uso del conjunto
oráculo, muchas otras funciones de interés pueden ser computadas utilizando el oráculo
de la función de la parada. De hecho, esto permite que todas las funciones
recursivamente enumerables sean computables.
Función Recursiva Enumerable:
Una función "f" es recursivamente enumerable por definición si y sólo si hay una máquina
de Turing, m, tal que para todo n perteneciente a los ℕ, la máquina dará como salida 1 si
f(n)=1 y dará salida 0 o un bucle infinito (la máquina diverge) en otro caso.
Esta situación nace del hecho de que una O-Machine es una combinación entre una parte
clásica (la máquina de Turing de estados y transiciones finitas) y un oráculo (que es un
conjunto posiblemente infinito de números). De alguna manera esto permite la
trivialización de la computación generalizada (si pudiéramos elegir el oráculo una vez que
conociéramos la función, ésta podría ser resuelta utilizando el oráculo como una tabla
infinita de búsqueda). Sin embargo, el concepto de computación por una O-Machine es
interesante y está bien fundado, ya que resolvemos funciones que pueden ser resueltas
con un oráculo determinado.
MT como calculadora de funciones:
MT M=(Q,Σ,Γ,q_0,T,B,δ)
Formalmente una
Σ={a,b} y q_f
Ejemplo:
Supongamos que tenemos Σ={a,b} y q_f y que representamos los enteros positivos
mediante cadenas solo de “as”. Así el entero “n” estaría representado por a^n.
Se recorren desde la izquierda todas las as hasta encontrar una “b”, esta se reemplaza
por una “a”, cambiando de estado, en este mismo estado se recorren todas las “as” a la
derecha y cuando se llega a un blanco se reemplaza por el mismo blanco se deja la
cabecera a la izquierda y se reemplaza la “a” por un blanco para restarle la que adiciono y
se mueve hacia la derecha y se cambia al estado final “q3”.
M=(Q,Σ,Γ,q_0,q_3,B,δ)
MT M=(Q,Σ,Γ,q_0,T,B,δ)
Cual los estados finales son necesarios. Concretamente una MT genera un lenguaje
L⊆Σ^* si:
Cada vez que M retorna al estado inicial “q0”, hay una cadena u∈L escrita sobre la cinta.
δ:QxΓ^n→QxΓ^n x〖{D,I,N}〗^n
Ejemplo 1
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}
Conclusiones
• 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.
Bibliografía.
• Historia de las Computadoras (n.d.) Extraído desde
http://html.rincondelvago.com/historia-de-las-computadoras_1.html
• Quiroga, E., (2008). Módulo Autómatas y lenguajes formales, (p.p 1 – 143). Bogotá,
Colombia: Universidad Nacional Abierta y a Distancia