La PizarraMatemática.

Grado en Matemáticas

Máquinas de Turing y decidibilidad

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.

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.

  1. Contenido

    Celda cero: uno; celda uno: cero.

  2. Alrededor

    Las celdas −1 y dos, y las demás no escritas, son blancas.

  3. Inicio

    El cabezal lee la celda cero, no toda la palabra a la vez.

Resultado

Cinta ilimitada no significa lectura infinita en un paso.

Lo comprobamos

La posición del cabezal importa.

Añadir marcas sin cambiar qué es una entrada válida

Σ={0,1}; Γ={0,1,X,Y,□}.

  1. Entrada

    Al principio solo aparecen ceros y unos en el bloque de entrada.

  2. Trabajo

    La máquina puede escribir X para un cero emparejado y Y para un uno emparejado.

  3. Memoria

    Esas marcas permanecen mientras el cabezal se mueve a otra posición.

Resultado

El alfabeto sigue siendo finito.

Lo comprobamos

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 \delta(q,a)=(q\prime,b,D) 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.

  1. Escribir

    Solo la celda dos cambia de uno a X.

  2. Estado

    Ahora el control está en volver.

  3. Cabezal

    Queda en la posición uno; la celda uno no se ha modificado.

Resultado

La transición no traslada el símbolo con el cabezal.

Lo comprobamos

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.

  1. Escritura

    La celda que estaba en blanco pasa a contener uno.

  2. Movimiento

    S conserva la posición.

  3. Parada

    Entrar en aceptación termina; no se sigue recorriendo blancos.

Resultado

Una sola transición completa la salida.

Lo comprobamos

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.

  1. Primer momento

    Estado buscar, cabezal en posición cero.

  2. Otro momento

    Mismo estado y misma cinta, pero cabezal en posición uno.

  3. Futuro

    Después llegará al blanco y parará: no había repetición completa.

Resultado

La posición impide declarar un bucle.

Lo comprobamos

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.

  1. Estado

    Sigue q.

  2. Cinta y cabezal

    Permanecen exactamente iguales.

  3. Futuro

    Se aplica la misma regla para siempre sin entrar en un final.

Resultado

Es un ciclo de una configuración.

Lo comprobamos

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.

  1. Primera pasada

    0011→X0Y1: una pareja marcada.
  2. Segunda

    X0Y1→XXYY: dos parejas.
  3. Verificar

    No quedan ceros ni unos pendientes: acepta.

Resultado

El invariante de parejas se cumple al cerrar cada pasada.

Lo comprobamos

Entre marcar el cero y encontrar el uno puede haber temporalmente una X adicional.

Un cero sin pareja

Entrada 00011.

  1. Dos pasadas completas

    00011→X00Y1→XX0YY.
  2. Otra búsqueda

    Se marca el último cero, pero ya no queda un uno sin marcar.

  3. Decisión

    Rechaza por falta de pareja; si la entrada fuera 0101, la comprobación inicial de orden ya la rechazaría.

Resultado

La cinta guarda qué posiciones ya se usaron.

Lo comprobamos

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.

  1. Reconocedor poco útil

    Recorre la entrada; acepta al ver uno, pero si llega al blanco entra en bucle.

  2. Decisor

    Hace lo mismo salvo que al llegar al blanco rechaza.

  3. Comparar

    Ambos reconocen el mismo lenguaje, pero solo el segundo decide.

Resultado

El lenguaje sí es decidible aunque el primer algoritmo no sea decisor.

Lo comprobamos

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.

  1. Simular

    Ejecutamos sus pasos.

  2. Si termina

    Aceptamos el par, tanto si M aceptó como si rechazó.

  3. Si no termina

    La simulación no llega al momento de aceptar.

Resultado

El problema de parada es reconocible.

Lo comprobamos

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.

El cabezal mueve una celda, y escribir no modifica toda la cinta
Una acción local en cada pasoInicio: buscar el primer blanco……11□□□Después de dos movimientos……11□□□Escribir 1 y detenerse……111□□Salida unaria: 111
Una máquina de incremento unario parte de la palabra uno uno seguida de blancos. La primera instantánea muestra el cabezal sobre el primer uno. Después de dos movimientos individuales a la derecha queda sobre el primer blanco: la imagen intermedia resume dos pasos, no un salto de dos celdas. La última transición escribe un uno, conserva la posición del cabezal mediante movimiento de quedarse y entra en aceptación. La palabra de salida es uno uno uno; los demás blancos no forman parte de ella. La cinta se extiende más allá del fragmento dibujado y la posición del cabezal es parte de cada configuración.

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.

  1. Buscar

    Pasamos los dos unos hasta el primer blanco.

  2. Escribir

    Lo cambiamos por uno y paramos.

  3. Salida

    111 representa tres. Para ε se escribiría directamente uno.

Resultado

El procedimiento termina para cualquier palabra unaria finita.

Lo comprobamos

Los blancos posteriores no forman parte de la salida.

Un acarreo binario

Incrementar 1011.

  1. Ir al final

    Desde el último uno propagamos el acarreo: los dos unos finales pasan a cero.

  2. Primer cero hacia la izquierda

    Lo cambiamos por uno y dejamos de propagar.

  3. Salida

    1100, que representa doce, sucesor de once.

Resultado

La operación es la misma que en unario, pero se realiza sobre otra codificación.

Lo comprobamos

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.

  1. Estado de control

    La máquina conserva el estado del DFA.

  2. Movimiento

    Lee un símbolo, actualiza con δ y mueve una celda a la derecha, sin borrar la entrada.

  3. Final

    Al encontrar blanco, acepta o rechaza según el estado del DFA.

Resultado

Todo lenguaje regular es decidible por este modelo.

Lo comprobamos

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.

  1. Codificar

    Guardamos ambos bloques usados con separadores y marcas de sus cabezales.

  2. Leer y actualizar

    Uno o varios barridos encuentran los dos símbolos, calculan el paso y modifican las posiciones marcadas.

  3. Ampliar

    Si hace falta una celda nueva se extiende el bloque finito representado.

Resultado

Cada paso original se simula con una cantidad finita de pasos.

Lo comprobamos

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.

La máquina hipotética solo se puede construir si existe un decisor total de parada
D hace lo contrario de la predicciónEntrada: descripción pH(p,p)Dice: paraDice: no paraD entra en bucle.D se detiene.Probamos p=descripción de D.Ambas respuestas se contradicen.
Se supone un algoritmo H que siempre termina y acierta si la máquina codificada por p se detiene con entrada p. La nueva máquina D consulta ese pronóstico. Si H dice que se detiene, D entra en bucle; si dice que no, D se detiene. Al usar como p la propia descripción de D, cualquier respuesta de H queda contradicha por la acción definida de D. El diagrama es un argumento por contradicción bajo una hipótesis imposible, no un programa real que resuelva la parada. Detenerse incluye tanto aceptar como rechazar; no se confunde con aceptar un lenguaje.

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.

  1. Predicción sí

    Según H se detendría, pero la definición de D obliga a bucle.

  2. Predicción no

    Según H no se detendría, pero D termina.

  3. Conclusión

    H no puede ser total y correcto para todos los pares.

Resultado

La hipótesis imposible es el decisor universal de parada.

Lo comprobamos

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.

  1. Parada

    Las dos terminan tras un número finito de pasos.

  2. Respuesta al problema HALT

    Los pares con cualquiera de las dos son casos positivos de parada.

  3. Lenguaje aceptado

    Solo A acepta su entrada; B no.

Resultado

La diagonalización debe invertir la pregunta que el supuesto decisor responde.

Lo comprobamos

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.

  1. Invariante

    Nunca cambia a un estado final.

  2. Cabezal

    Su posición aumenta en uno en cada paso.

  3. Conclusión

    No se detiene aunque no repita una configuración completa.

Resultado

La repetición es un certificado suficiente, no necesario, de no parada.

Lo comprobamos

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.

  1. Configuraciones no finales

    Como máximo 2·4·3⁴=648: estado, posición y contenido.
  2. Simular con esa promesa

    Si hace 648 transiciones sin parar, ha visitado 649 configuraciones no finales y alguna se repite.

  3. Decidir el caso restringido

    Paramos la comprobación al alcanzar un final o detectar esa repetición.

Resultado

Con esa memoria acotada declarada, la parada sí es decidible.

Lo comprobamos

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?

  1. Representación

    111 es el número tres en unario; lo demás es blanco.

  2. Recorrer

    La máquina pasa por los tres unos moviendo una celda a la derecha por paso.

  3. Primera celda blanca

    Es la posición inmediatamente posterior a la palabra, no un símbolo de entrada.

  4. Escribir y terminar

    Cambia ese blanco por uno y se detiene.

  5. Salida

    1111 representa cuatro, sucesor de tres.

  6. Comprobar

    La longitud aumentó exactamente en uno y los blancos restantes no se añaden a la palabra.

Resultado

1111, representación unaria de 4.

Lo comprobamos

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.

  1. Propiedad

    Queremos decidir si la palabra binaria contiene algún uno.

  2. Inicio

    Leemos el primer símbolo o blanco si ε.

  3. Leer cero

    Movemos a la derecha y repetimos.

  4. Leer uno

    Aceptamos y nos detenemos inmediatamente.

  5. Llegar a blanco sin encontrar uno

    Rechazamos y nos detenemos; así ε también se rechaza.

  6. 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.

Resultado

El procedimiento decide el lenguaje.

Lo comprobamos

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 →

Para ampliar