Está en la página 1de 4

Sistemas digitales 2

Nombre Víctor labra Cáceres

Laboratorio 4
El siguiente laboratorio se trata de construir un algoritmo en la Máquina de
TURING el objetivo es aprender cómo funciona la máquina de turing, el algoritmo
a diseñar consta de ingresar un numero en unario y separado de un signo ( $ ) el
número en binario.
El algoritmo construido primero convierte todos los 1 ingresados en 0 luego coloca
el $ y al lado un 0 de modo de inicializar todo en cero; ejemplo ingreso 1111
(0000$0). Luego comienza a contar desde el signo $ hacia la izquierda
convirtiendo el primer cero en 1, para realizar la suma me muevo completamente a
la izquierda quedando en el último número después del $ como este número tiene
la posibilidad de ser 1 o 0 se analizara de la siguiente manera:
1. si es un cero básicamente lo cambiara a uno, y se devolverá a realizar la
cuenta para realizar la posterior suma.
2. Si es un 1 ya es más complicado debido a que 1+1=0 y ocurre el acarreo en
binario. Pero lo que se realizara será cambiar ese 1 por 0 luego ver si hay
otros 1 al lado para también ser cambiados a 0 hasta llegar a un 0, o un
signo $. Aquí existirán dos alternativas:
 Si es un 0 será cambiado a 1, lo que equivale a sumar el acarreo de
los 1 anteriores, y luego se devolverá a realizar la cuenta para la
siguiente suma.
 Si es un $ significara que hubieron puros 1 anteriores y fueron
cambiados a 0, osea la cuenta quedaría en 0, la solución es agregar
un bits con un 0, y luego llegar al bits que se encuentra al lado
derecho del signo $ y a este sumarle el acarreo convirtiendo el 0 a 1.
Y así estaría la suma bien realizada, una vez realizado la suma se
devuelve a continuar con el conteo.
Al convertir todos los ceros en 1 ubicados al lado izquierdo del signo $, significara
que ha convertido el número a binario y termina el programa.
Para la simplificación y optimización del algoritmo se buscaron las instrucciones
iguales que llevaban al mismo estado y se unieron como también las instrucciones
que tenían la misma dirección y que retornaban al mismo estado, se intentó unir
instrucciones que iban en diferentes direcciones a un solo estado pero resulto un
loop infinito.
Diagrama de estados
¿Qué significa cada estado?
Q0 estado que convierte todos los 1 ingresados en 0 luego coloca un signo $
Q1 estado que agrega un 0 al lado derecho del signo $
Q2 estado que realiza un movimiento a la izquierda
Q3 estado que va realizando el conteo del número, se salta todos los 1 hasta
llegar a 0 y lo convierte en un 1
Q4 estado que realiza el movimiento para llegar a realizar la suma
Q5 realiza movimiento para llegar a realizar la suma
Qx compara si el número a sumar comienza con 1 o 0.
 Si comienza con un 0 lo convierte en 1 y pasa al estado Q21
 Si comienza con un 1 lo convierte a 0 y pasa Q11 para realizar el acarreo.
Q21 realiza el movimiento para llegar al estado Q2
Q11 realiza el acarreo convirtiendo los 1 posteriores en 0 hasta llegar a un 0 o un
$.
 Si es un 0 pasa al estado Q21
 Si es un $ pasa al estado Q12
Q12 agrega un bit con un 0
Q13 me lleva a la posición para realizar la suma del acarreo
Q14 realiza la suma convirtiendo el 0 en 1, suma de acarreo.
Q15 me lleva al estado Q2

También podría gustarte