HOME

Máquinas de Turing

Índice

Fecha de entrega: [2021-11-24 Wed]

En ésta tarea las máquinas de Turing usarán los símbolos \(\left\{\ast,0,1 \right\}\). En cada problema especificaremos si los números se representarán en unario (5 = \(\cdots \ast \ast 1 1 1 1 1 \ast \ast \cdots\)) o en binario (5 = \(\cdots \ast \ast 1 0 1 \ast \ast \cdots\)). La cabeza siempre supondremos que empieza en el 0 o 1 de más a la izquierda.

Para esta tarea está altamente recomendado usar un simulador de máquinas de Turing. En particular, no sean malos con el ayudante: ¡prueben sus máquinas en el simulador antes de entregar la tarea! Recuerden la famosa cita de Donald Knuth (en traducción libre1): «Ese programa puede contener errores: solo he demostrado que es correcto, no lo he ejectuado» 😛.

Programación

En cada caso explica cómo funciona tu máquina.

  1. Escribe una máquina de Turing que calcule la función \(n \mapsto 2n\) en (a) unario, (b) binario.
  2. Escribe una máquina de Turing que calcule la función \(n \mapsto (n,n)\). Usaremos notación binaria para los números y para representar un par ordenado en la cinta de la máquina de Turing, ponemos el primer número, un asterisco y luego el segundo número; así que la máquina debe convertir \(\cdots \ast \ast 1 0 1 \ast \ast \cdots\) en \(\cdots \ast \ast 1 0 1 \ast 1 0 1 \ast \ast \cdots\).
  3. Escribe una máquina de Turing que calcule igualdad de números en notación unaria, es decir, dada una cinta que tiene un número \(m\), un asterisco, y otro número \(n\), la máquina debe dejar solo un dígito sobre la cinta, 0 si \(m \neq n\) y 1 si \(m = n\).

¿Qué hace esta máquina?

  1. Considera la máquina de Turing con esta tabla de instrucciones:

    q s s’ q’ d q s s’ q’ d
    0 0 0 3 0 1
    0 1 1 3 1 2
    0 1 F   3 0 F  
    1 0 2 4 0 3
    1 1 3 4 1 4
    1 0 F   4 0 F  
    2 0 4          
    2 1 0          
    2 0 F            

    (Cuando la máquina pasa al estado F, no hay instrucciones aplicables y se detiene).

    (a) Encuentra un número \(n\) tal que si empezamos la máquina con \(n\) escrito en binario, y en estado incial 0, la máquina termina con un 1 en la cinta.

    (b) ¿Qué hace la máquina?


1

La original dice: «Beware of bugs in the above code; I have only proved it correct, not tried it». Es de una carta que le escribió Knuth a Peter van Emde Boas.

Omar Antolín Camarena