Un autómata finito solo conserva su estado. Una máquina de Turing añade una cinta donde puede escribir marcas y regresar a información anterior. Veremos sus pasos locales, construiremos algoritmos pequeños y después entenderemos qué límite impone el problema de parada.
Si necesitas repasar:
1. La cinta guarda información que el estado no puede contener
Usamos una cinta con celdas indexadas por enteros, un cabezal que lee una celda y un control de estados finitos. La entrada ocupa un bloque finito; el resto empieza en blanco □.
El alfabeto de entrada Σ no contiene el blanco. El alfabeto de cinta Γ incluye Σ, el blanco y posibles marcas auxiliares. El cabezal comienza en el primer símbolo, o en blanco si la palabra es vacía. Una ejecución finita solo visita finitas celdas.
Situar una entrada
La palabra 10 ocupa las posiciones cero y uno.
Contenido
Celda cero: uno; celda uno: cero.
Alrededor
Las celdas −1 y dos, y las demás no escritas, son blancas.
Inicio
El cabezal lee la celda cero, no toda la palabra a la vez.
Cinta ilimitada no significa lectura infinita en un paso.
La posición del cabezal importa.
Añadir marcas sin cambiar qué es una entrada válida
Σ={0,1}; Γ={0,1,X,Y,□}.
Entrada
Al principio solo aparecen ceros y unos en el bloque de entrada.
Trabajo
La máquina puede escribir X para un cero emparejado y Y para un uno emparejado.
Memoria
Esas marcas permanecen mientras el cabezal se mueve a otra posición.
El alfabeto sigue siendo finito.
Las marcas de trabajo no son un contador infinito escondido en el estado.
2. Leer, escribir, cambiar de estado y mover una celda
Una transición usa el estado y el símbolo actuales. Escribe b en esa celda, cambia a q′ y se mueve según D∈{L,R,S}: izquierda, derecha o quedarse. Los estados de aceptar y rechazar detienen la ejecución.
La máquina determinista tiene un único paso por pareja no final. Declaramos los casos de la tabla; una descripción de alto nivel es un algoritmo válido cuando sus acciones se pueden descomponer en instrucciones locales finitas.
Marcar y regresar una celda
En estado buscar, leyendo uno en posición dos, la regla escribe X, pasa a volver y mueve L.
Escribir
Solo la celda dos cambia de uno a X.
Estado
Ahora el control está en volver.
Cabezal
Queda en la posición uno; la celda uno no se ha modificado.
La transición no traslada el símbolo con el cabezal.
La marca queda en su celda hasta otra escritura.
Terminar un incremento
Leyendo el primer blanco, escribir uno y pasar a aceptar con movimiento S.
Escritura
La celda que estaba en blanco pasa a contener uno.
Movimiento
S conserva la posición.
Parada
Entrar en aceptación termina; no se sigue recorriendo blancos.
Una sola transición completa la salida.
Esta convención permite S; otros modelos equivalentes pueden simularla con más pasos.
3. Una configuración incluye cinta y posición
Una configuración consta de estado, contenido de cinta y posición del cabezal. Repetir solo el estado no repite necesariamente la situación.
En una máquina determinista, volver exactamente a una configuración completa no final reproduce todo el futuro. Si no se ha detenido entre las dos visitas, queda un ciclo infinito. Pero también puede no parar sin repetir configuraciones, por ejemplo avanzando siempre a celdas nuevas.
Mismo estado, trabajo distinto
La máquina de incremento sigue en buscar al recorrer 11.
Primer momento
Estado buscar, cabezal en posición cero.
Otro momento
Mismo estado y misma cinta, pero cabezal en posición uno.
Futuro
Después llegará al blanco y parará: no había repetición completa.
La posición impide declarar un bucle.
Repetir el nombre del estado no basta.
Una repetición completa sí certifica bucle
En blanco, la regla no escribe cambios, conserva estado q y usa S.
Estado
Sigue q.
Cinta y cabezal
Permanecen exactamente iguales.
Futuro
Se aplica la misma regla para siempre sin entrar en un final.
Es un ciclo de una configuración.
Aquí sí coinciden las tres partes, no solo una.
4. Las marcas permiten comparar dos bloques sin límite fijo
Para decidir {0ⁿ1ⁿ:n≥0}, primero comprobamos que la entrada tenga forma 0*1*. Después marcamos el primer cero sin marcar como X, buscamos un uno sin marcar y lo cambiamos por Y. Volvemos al comienzo y repetimos.
Después de cada pasada completa hay tantas X como Y: cada marca representa una pareja. Si falta un uno o sobran unos al terminar los ceros, rechazamos. Cada pasada elimina dos símbolos pendientes; cada barrido termina en el borde blanco de un bloque finito. Esto prueba corrección y terminación, incluida ε.
Dos parejas correctas
Entrada 0011.
Primera pasada
0011→X0Y1: una pareja marcada.Segunda
X0Y1→XXYY: dos parejas.Verificar
No quedan ceros ni unos pendientes: acepta.
El invariante de parejas se cumple al cerrar cada pasada.
Entre marcar el cero y encontrar el uno puede haber temporalmente una X adicional.
Un cero sin pareja
Entrada 00011.
Dos pasadas completas
00011→X00Y1→XX0YY.Otra búsqueda
Se marca el último cero, pero ya no queda un uno sin marcar.
Decisión
Rechaza por falta de pareja; si la entrada fuera 0101, la comprobación inicial de orden ya la rechazaría.
La cinta guarda qué posiciones ya se usaron.
No se reutiliza un uno marcado Y.
5. Reconocer permite silencio infinito; decidir exige responder siempre
Un decisor acepta exactamente las palabras del lenguaje, rechaza las demás y termina en todas las entradas. Un reconocedor garantiza aceptación finita de las palabras del lenguaje; fuera de él puede rechazar o seguir indefinidamente.
Todo decidible es reconocible. Una simulación que todavía no acepta no ha respondido no. Y que un algoritmo concreto se quede en bucle no demuestra que su lenguaje sea indecidible: podría existir otro algoritmo que sí termine siempre.
Dos algoritmos para el mismo lenguaje sencillo
Palabras binarias que contienen un uno.
Reconocedor poco útil
Recorre la entrada; acepta al ver uno, pero si llega al blanco entra en bucle.
Decisor
Hace lo mismo salvo que al llegar al blanco rechaza.
Comparar
Ambos reconocen el mismo lenguaje, pero solo el segundo decide.
El lenguaje sí es decidible aunque el primer algoritmo no sea decisor.
No se confunde una mala estrategia con una imposibilidad del problema.
Reconocer casos positivos de parada
Entrada que codifica una máquina M y una palabra w.
Simular
Ejecutamos sus pasos.
Si termina
Aceptamos el par, tanto si M aceptó como si rechazó.
Si no termina
La simulación no llega al momento de aceptar.
El problema de parada es reconocible.
Todavía falta la prueba de que no tiene un decisor general.
6. Calcular una función requiere declarar cómo se escribe el dato
La máquina también puede producir una salida. En unario, una palabra de n unos representa n y ε representa cero. Añadir un uno calcula el sucesor.
Si termina con salida para todo dato válido, la función calculada es total; si solo lo hace para algunos, es parcial. En binario el sucesor necesita acarreos: la representación cambia el algoritmo, aunque la operación numérica sea la misma.
El sucesor unario
Entrada 11.
Buscar
Pasamos los dos unos hasta el primer blanco.
Escribir
Lo cambiamos por uno y paramos.
Salida
111 representa tres. Para ε se escribiría directamente uno.
El procedimiento termina para cualquier palabra unaria finita.
Los blancos posteriores no forman parte de la salida.
Un acarreo binario
Incrementar 1011.
Ir al final
Desde el último uno propagamos el acarreo: los dos unos finales pasan a cero.
Primer cero hacia la izquierda
Lo cambiamos por uno y dejamos de propagar.
Salida
1100, que representa doce, sucesor de once.
La operación es la misma que en unario, pero se realiza sobre otra codificación.
Si todo fueran unos se necesitaría una nueva cifra inicial.
7. Un programa puede ser dato de otra máquina
Una tabla finita de transiciones se puede codificar como una palabra. Una máquina universal recibe ⟨M,w⟩ y simula sus pasos. Si M se ejecuta sin fin, la simulación también; ser universal no significa decidir si terminará.
Varias cintas, cinta seminfinta o máquinas de registros tienen la misma capacidad de cómputo, aunque las simulaciones cambien el coste. La tesis de Church–Turing relaciona estos modelos con la idea informal de procedimiento efectivo; no es solo un teorema entre dos modelos ya definidos.
Simular un autómata con una máquina de Turing
Un DFA sobre entrada finita.
Estado de control
La máquina conserva el estado del DFA.
Movimiento
Lee un símbolo, actualiza con δ y mueve una celda a la derecha, sin borrar la entrada.
Final
Al encontrar blanco, acepta o rechaza según el estado del DFA.
Todo lenguaje regular es decidible por este modelo.
Aquí la simulación sí termina porque la entrada finita se consume una vez.
Varias cintas en una sola
Simular un paso de dos cintas.
Codificar
Guardamos ambos bloques usados con separadores y marcas de sus cabezales.
Leer y actualizar
Uno o varios barridos encuentran los dos símbolos, calculan el paso y modifican las posiciones marcadas.
Ampliar
Si hace falta una celda nueva se extiende el bloque finito representado.
Cada paso original se simula con una cantidad finita de pasos.
Eso conserva computabilidad, no necesariamente el mismo tiempo.
8. Un decisor de toda parada se contradice al analizarse a sí mismo
Supongamos un H total que siempre acierta si M termina con entrada w. Construimos D con entrada p: consulta H(p,p); si predice parada, D entra en bucle; si predice no parada, D se detiene.
Ahora damos a D su propia descripción. Si H predice que D para, D no para; si predice que no, D para. Las dos posibilidades contradicen la corrección supuesta. No existe ese decisor general. Es una contradicción sobre terminar, no solo sobre aceptar.
Revisar las dos respuestas posibles
Ejecutar D sobre su propia descripción.
Predicción sí
Según H se detendría, pero la definición de D obliga a bucle.
Predicción no
Según H no se detendría, pero D termina.
Conclusión
H no puede ser total y correcto para todos los pares.
La hipótesis imposible es el decisor universal de parada.
D se construye bajo esa hipótesis; no hemos implementado un programa imposible.
Parar no equivale a aceptar
Una máquina A acepta inmediatamente y otra B rechaza inmediatamente.
Parada
Las dos terminan tras un número finito de pasos.
Respuesta al problema HALT
Los pares con cualquiera de las dos son casos positivos de parada.
Lenguaje aceptado
Solo A acepta su entrada; B no.
La diagonalización debe invertir la pregunta que el supuesto decisor responde.
No se reemplaza no aceptación por no parada sin justificarlo.
9. Los límites generales no prohíben pruebas en casos concretos
No parar tras mil pasos solo informa de esos mil pasos. Puede detenerse después. Para probar no parada sirven un invariante que excluya estados finales o una repetición completa de configuración.
La indecidibilidad excluye un algoritmo total correcto para todos los casos, no pruebas particulares o clases restringidas. La complejidad pregunta cuántos pasos o celdas usa un algoritmo existente: un decisor muy lento sigue siendo decisor.
Una ejecución infinita sin configuración repetida
En blanco, la máquina conserva estado no final y siempre mueve R sin escribir.
Invariante
Nunca cambia a un estado final.
Cabezal
Su posición aumenta en uno en cada paso.
Conclusión
No se detiene aunque no repita una configuración completa.
La repetición es un certificado suficiente, no necesario, de no parada.
La cinta sigue blanca, pero la posición cambia siempre.
Un límite de memoria conocido cambia el problema
Máquina confinada a cuatro celdas, tres símbolos y dos estados no finales.
Configuraciones no finales
Como máximo 2·4·3⁴=648: estado, posición y contenido.Simular con esa promesa
Si hace 648 transiciones sin parar, ha visitado 649 configuraciones no finales y alguna se repite.
Decidir el caso restringido
Paramos la comprobación al alcanzar un final o detectar esa repetición.
Con esa memoria acotada declarada, la parada sí es decidible.
El argumento no da un límite de memoria válido para una máquina arbitraria.
Ahora lo resolvemos de principio a fin.
EJEMPLO RESUELTO 1
Un contador unario
Una cinta contiene 111 y blanco después. Un algoritmo recorre hasta el primer blanco, escribe 1 y se detiene. ¿Salida?
Representación
111 es el número tres en unario; lo demás es blanco.
Recorrer
La máquina pasa por los tres unos moviendo una celda a la derecha por paso.
Primera celda blanca
Es la posición inmediatamente posterior a la palabra, no un símbolo de entrada.
Escribir y terminar
Cambia ese blanco por uno y se detiene.
Salida
1111 representa cuatro, sucesor de tres.
Comprobar
La longitud aumentó exactamente en uno y los blancos restantes no se añaden a la palabra.
1111, representación unaria de 4.
La longitud aumenta exactamente de3 a4; las demás celdas de blanco no forman parte de la palabra de salida.
EJEMPLO RESUELTO 2
Decidir una propiedad sencilla
Diseña un decisor para palabras binarias con al menos un 1.
Propiedad
Queremos decidir si la palabra binaria contiene algún uno.
Inicio
Leemos el primer símbolo o blanco si ε.
Leer cero
Movemos a la derecha y repetimos.
Leer uno
Aceptamos y nos detenemos inmediatamente.
Llegar a blanco sin encontrar uno
Rechazamos y nos detenemos; así ε también se rechaza.
Terminación y corrección
Una entrada finita solo puede recorrerse hasta su blanco final o hasta el primer uno. Responde siempre y acepta exactamente la propiedad pedida.
El procedimiento decide el lenguaje.
La palabra vacía se rechaza al encontrar blanco inmediatamente; una palabra con1 se acepta en su primera aparición.
Los símbolos que hemos usado
- Q
- Conjunto finito de estados de control.
- Σ
- Alfabeto de entrada, que no contiene el símbolo blanco.
- Γ
- Alfabeto de cinta, conΣ, blanco y posibles marcas auxiliares.
- □
- Símbolo blanco de las celdas no ocupadas por la entrada.
- δ
- Transición que determina nuevo estado, símbolo escrito y movimiento.
- Configuración
- Estado, contenido de la cinta y posición del cabezal en un momento.
- ⟨M,w⟩
- Codificación de una máquina junto con una entrada.
Ahora te toca a ti.
Tienes cinco ejercicios. Inténtalos; las pistas te ayudan si te atascas.
Practicar este tema →