2. Definición
• Una máquina de Turing es un dispositivo que manipula símbolos sobre una tira
de cinta de acuerdo a una tabla de reglas. A pesar de su simplicidad, una máquina
de Turing puede ser adaptada para simular la lógica de cualquier algoritmo de
computador y es particularmente útil en la explicación de las funciones de una
CPU dentro de un computador.
• La máquina de Turing fue descrita por Alan
Turing como una «máquina automática» en
1936 en la revista Proceedings of the London
Mathematical Society,1 La máquina de
Turing no está diseñada como una
tecnología de computación práctica, sino
como un dispositivo hipotético que
representa una máquina de computación.
3. Definición formal
• Una máquina de Turing es una séptupla M= (Γ,Σ, •,Q,q0,f,F) donde :
1. Γ es el alfabeto de símbolos de la cinta
2. Σ ⊂ Γ es el alfabeto de símbolos de entrada
3. • ∈ Γ es el símbolo blanco que no pertenece a Σ
4. Q es un conjunto finito de estados
5. q0 ∈ Q es el estado inicial
6. F ⊆ Q es el conjunto de estados finales
7. f es una función de transición parcial f: Q×Γ → Q×Γ×{L,R}
4. Funcionamiento
• La máquina de Turing modela matemáticamente a una máquina que opera sobre
una cinta. En esta cinta hay símbolos que la máquina puede leer y escribir, uno a
la vez. La operación está completamente determinada por un conjunto finito de
instrucciones elementales como, por ejemplo: "en el estado 43, si el símbolo visto
es 0, escribe un 1; Si el símbolo visto es 1, cambia al estado 28 y muévete un
espacio a la derecha; en el estado 28, si el símbolo visto es 0, escribe un 1 y
cambia al estado 6; etc".
5. Funcionamiento
• Turing definió también las posibles
acciones que podía realizar la
máquina:
• Escribir un símbolo en la celda activa (P).
• Borrar símbolo de la celda activa (E).
• Mover la cinta una posición hacia la
izquierda (L).
• Mover la cinta una posición hacia la
derecha (R).
• Finalmente, en cada paso puede
producirse un cambio en la
configuración.
6. Tipos de máquina de Turing
• Máquina de Turing con cinta infinita a ambos lados: Esta modificación se denota al
igual que una MT sencilla, lo que la hace diferente es que la cinta es infinita tanto
por la derecha como por la izquierda.
• Máquina de Turing con cinta multipista: Es aquella
que mediante la cual cada celda de la cinta de una
máquina sencilla se divide en subceldas. Cada celda es
así capaz de contener varios símbolos de la cinta. Por
ejemplo, la cinta de la figura 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
7. Tipos de máquina de Turing
• Máquina de Turing multicinta: Una MT con más de una cinta consiste
de un control finito con k cabezales lectores/escritores y k cintas. Cada
cinta es infinita en ambos sentidos. La MT define su movimiento
dependiendo del símbolo que está leyendo cada uno de sus cabezales,
da reglas de sustitución para cada uno de los símbolos y dirección de
movimiento para cada uno de los cabezales. Inicialmente la MT empieza
con la entrada en la primera cinta y el resto de las cintas en blanco.
• Máquina de Turing multidimensional: Una MT multidimensional es
aquella cuya cinta puede verse como extendiéndose infinitamente en
más de una dirección, el ejemplo más básico sería el de una máquina
bidimensional cuya cinta se extendería infinitamente hacia arriba,
abajo, derecha e izquierda.
• En la modificación bidimensional de MT que se muestra en la figura
también se agregan dos nuevos movimientos del cabezal {U,D} (es
decir arriba y abajo). De esta forma la definición de los movimientos
que realiza el cabezal será {L,R,U,D}.
8. Tipos de máquina de Turing
• Máquina de Turing universal: es una máquina de Turing que puede simular una
máquina de Turing arbitraria en la entrada arbitraria. La máquina universal
esencialmente logra esto mediante la lectura de tanto la descripción de la
máquina a ser simulada como también la entrada misma de su propia cinta
9. Máquina de Turing determinista y no
determinista
• La entrada de una máquina de Turing viene determinada por el estado actual y el
símbolo leído, un par (estado, símbolo), siendo el cambio de estado, la escritura
de un nuevo símbolo y el movimiento del cabezal, las acciones a tomar en función
de una entrada. En el caso de que para cada par (estado, símbolo) posible exista
a lo sumo una posibilidad de ejecución, se dirá que es una máquina de Turing
determinista, mientras que en el caso de que exista al menos un par (estado,
símbolo) con más de una posible combinación de actuaciones se dirá que se trata
de una máquina de Turing no determinista.
• Un algoritmo no determinista es un algoritmo que con la misma entrada ofrece
muchos posibles resultados. No se puede saber de antemano cuál será el
resultado de la ejecución de un algoritmo no determinista.
10. Problema de la parada (halting
problem)
• El problema de la parada o problema de la detención para Máquinas de Turing
consiste en lo siguiente: dada una Máquina de Turing M y una palabra w,
determinar si M terminará en un número finito de pasos cuando es ejecutada
usando w como dato de entrada.
• Lo que se afirma es que no existe una manera automática computable de saber si
todos los programas del mundo terminan. No se niega que exista la prueba para
programas concretos. De hecho, la construcción de pruebas para programas
concretos es un paso obligatorio para demostrar su correctitud.
• Al ejecutar un programa, este puede terminar después de un número finito de
pasos o puede nunca terminar. En la práctica, este último caso se manifiesta
como programas que se quedan "trabados" o que entran a un bucle infinito. Por
esta razón sería de gran utilidad resolver la siguiente pregunta en la práctica: