Вы находитесь на странице: 1из 19

1.

Disear una mquina de turgin que calcule el complemento a 1 de


un numero binario (es decir que sustituya los 0s por 1s y los 1s
por 0s)
2. Se exige que el transductor termine en un estado final y pare, si la
entrada es correcta, es decir, una simple secuencia de ceros y
unos, la solucin seran: MT1.2=({0,1},{0,1,},,{q0,q1},q0,f,
{q1}), donde f:
Si adems del estado final se exige que la cabeza de la pila
termine al inicio de la palabra (para que se pueda ver el contenido
de la cinta en la herramienta Jflap), se obtiene la siguiente
mquina de Turing: MT1.3=({0,1},{0,1,},,{q0,q1,q2},q0,f,
{q2}), donde f:

Al correr nuestra maquina de turing tenemos el resultado


esperado
3. Disear una
Mquina de Turing que obtenga el sucesor de un nmero en
codificacin unaria. Considerar en la codificacin unaria que el 0
se representa por la cadena vaca, el 1 por 1, el 2 por 11, etc.
4. Disear una Mquina de Turing que obtenga el predecesor de un
nmero en codificacin unaria. Considerar la codificacin unaria
del 0 igual que en el ejercicio 2. En esta maquina lo que hara es
borrar el ultimo numero de nuestra cadena dada con 1 lo mismo
que nuestro ejemplo anterios pero en este caso dejara un espacio
vacio, nuestra cadena daba 111 nuestra ultimo 1 nos lo dejara
vacio y pasara a ser solo 11
3.1 Si adems se quiere que la cabeza lectora de la mquina de Turing
apunte al primer smbolo de la palabra, se necesita una transicin
recursiva en q2, para recorrer la cinta hacia la izquierda, y un nuevo
estado final, q3, al que transitar al llegar al smbolo de celda vaca,

quedando la siguiente MT: MT3.2=({1},{1,},,{q0,q1,q2,q3},q0,f,


{q3}), donde f:
Esto que quiere decir que usando nuestro ejemplo anterior al momento
de poner en marca nuestra maquina de turing al final despus de
cambiar nuestro 1 por uno vacio regresara a la primera letra de nuestra

maquina

4. Disear una Mquina de Turing que calcule la paridad de un nmero


binario. Es decir, si el nmero de 1s de la cadena es par, se aade un 0
al final, y si es impar, se aade un 1.
donde q0=Par y q1=Impar
En esta maquina lo que haremos ser:

si se lee un 1, se cambia de estado, porque ha cambiado la


paridad del nmero.
si se lee un 0, se mantiene en el mismo estado, porque no ha
cambiado la paridad.
si se lee un blanco, se transita al estado final y se para, tras
escribir un dgito distinto segn el estado actual de la mquina:
- PAR (n de 1s par): escribir un 0, para mantener la paridad
existente.
- IMPAR (n de 1s impar): escribir un 1, para conseguir un
nmero de
- 1s par.
Veamos 2 ejemplos con los nmeros 9 que es un nmero impar y en
binario se representa 1001 y 10 que es un numero par y en binario es
1010
En el primer caso agregara un 0 convirtiendo esto en otro nmero

binario en este caso el 18 10010

Veamos el siguiente ejemplo


con el numero 1010
En esta caso nuestra maquina dejo la
pariedad de un numeor par en este
caso el 20

5. Disear una Mquina de Turing que sea un contador unario de


caracteres del lenguaje con alfabeto = {a,b,c}. Es decir, se deben
devolver tantos 1s como caracteres haya en la palabra de entrada.
Considerar la codificacin unaria del 0 igual que en el ejercicio 2.
Solucin:
Dado que no se especifica si se debe mantener la cadena original de as,
bs y cs, se pueden asumir diversas interpretaciones, como las tres que
se presentan a continuacin:
a) No mantener la palabra de entrada.
b) Mantener la posicin de la palabra de entrada, pero sustituida por
marcas, y a continuacin, el contador.
c) Mantener la palabra de entrada, y a continuacin, el contador.
Solucion a)
En esta caso recorrer la palabra de entrada, de izquierda a derecha, y
sustituir cada a, b y c por un 1. Al llegar al blanco, parar. Veamos un
ejemplo
Introduciomos la palabra aabbcc => la cual tiene que quedar al entrar

a nuestra MT=>11111

Solucin b)
En esta caso nuestra MT recorrer la palabra de entrada, marcando cada
letra con una X, y escribir un 1 por cada una al final de la palabra.
Se aaden 2 estados ms con
respecto a la transicin anterior.
Ejemplo: usaremos el ejemplo anterios aabbcc=> quedara

xxxxxx111111

Soluccion c
Recorrer la palabra de entrada, marcando cada letra con un smbolo
especfico, escribir un 1 al final de la palabra, retroceder hasta la ltima
marca, y sustituir por la letra original.
Formamos nuestra MT
Usaremo nuestro cadena anterior aabbcc=> nos dara por resultado

aabbcc111111 nos dejare nuestra palabra inicial y agregara 1s por cada


letra
6. Disear una Mquina de Turing que haga una copia de una cadena de
smbolos {A,B,C}. Por ejemplo, para la entrada bAABCAb devuelve en
la cinta bAABCAAABCAb, donde b representa el blanco.
Copia smbolos de una cadena, con alfabeto {A,B,C}, sin carcter de
separacin.
Para esta MT lo que hace es copiar nuestra cadena marcando con una X
el digito que esta copiando para posteriormente dejarlo con su valor
original

Al llegar al estado final tenemos una copa de nuestra palabra, inicial


dada
7. Disear una Mquina de Turing que tome como entrada una cadena con M
1s y N As (M<=N), y cambia las M primeras As por Bs. Por ejemplo, para la
entrada b11AAAAAb devuelve en la cinta b11BBAAAb, donde b
representa la celda de la cinta vaca.
Cambiar As iniciales por Bs, tantas como 1s.
Ir cambiando A por B, dejando marcado con una X el 1 que estoy sustituyendo
en el inicio de la palabra, para saber por dnde voy al regresar. En ese
momento, se vuelve a sustituir la X por un 1, y se avanza a la derecha, para
repetir el proceso para el prximo uno. Al final, si se quiere acabar con el
puntero de la cinta al final de la palabra, se deben avanzar todas las Bs y
todas las As restantes de las palabras, hasta llegar al blanco.
Ejemplo dado la cadena AAABBB devolver 11AA11BB no arrogara la cadena
11BB11AA
8. Disear
una Mquina
de Turing
que tome
como
entrada dos
palabras formadas por los smbolos del alfabeto {0,1,2}, separadas por
el smbolo {#}, y comprueba si son iguales. Por ejemplo, para la entrada
b2101#2101b devuelve que s son guales, donde b representa la celda
de la cinta vaca.
Ejemplo
Dada la cadena 012#012
Comparar dos cadenas, con smbolos {0,1,2}, separadas por #.
9. Disear una Mquina de Turing que obtenga el sucesor de un nmero
binario. En primer lugar, se escribe un conjunto de nmeros binarios
consecutivos, para intentar buscar regularidades en los nmeros
binarios que permitan idear un algoritmo para resolver el problema de
forma general.
Ejemplo dando el nmero 20 en binario 10100 nos dara el sucesor en
este caso el 21 pero en binario 0101
10. Disear una Mquina de Turing que obtenga el antecesor de un
nmero binario. Soluccion

Este problema est relacionado con el anterior. En este caso, hay que
encontrar regularidades entre un nmero binario y su antecesor. De
nuevo, como en el ejercicioanterior, recurrimos a una tabla que nos
relacione dicho par de nmeros.
Ejemplo dado el numero 10 en binario 1010 dar el antecesor en este
caso 1001

Вам также может понравиться