INGENIERÍ INGENIERÍA A EN SISTEMAS COMPUTACIONALES COMPUTACIONALES
LENGUAJES Y AUTÓMATAS 1
PROFESOR:
REPORTE: EJERCICIOS DE MÁQUINAS DE TURING
ALUMNO AL UMNO
AULA: AUL A:
HORA:
FECHA DE ENTREGA: ENTREGA:
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
1. Diseñar Diseñar un a Máquin Máquin a de Turi Turi ng (MT) (MT) que calcul e el el co mplemento a 1 de un número bi nario (sustituye los 0 por 1 y viceversa). viceversa). Se tiene que recorrer la cadena o cinta sustituyendo por un 0 cuando se halle un 1 y sustituyendo por un 1 cuando se halle un 0. Probando la siguiente cadena:
Salida:
MT del ejercicio 1
2. Diseñar una MT que obtenga el sucesor de un número en codificación unaria. Considerar en la codificación unaria que el 0 se representa por la cadena vac ía, el 1 por 1, el el 2 por po r 11, etc. etc. Este ejercicio pide que si el usuario ingresa una cadena (que contará siempre de 1´s y nada más) la salida sea el sucesor unario de esa cadena. Si ingresamos la cadena 11 nos tendrá que dar como resultado la salida 111; si ingresamos l a cadena 1111 nos dará como resultado 11111; etc. Recorreremos la cinta y al momento de encontrar un espacio en blanco colocaremos un uno y habremos terminado.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Probando la siguiente cadena:
Resultado:
3. Diseñar una Máquina de Turing que obtenga el predecesor de un número en codific ación unaria. Considerar Considerar la codi ficación unaria del 0 igual que en en el ejercicio 2. Este ejercicio pide que si el usuario ingresa una cadena (que contará siempre de 1´s y nada más) la salida sea el antecesor unario de esa cadena. Si ingresamos la cadena 11 nos tendrá que dar como resultado la salida 1; si ingresamos la cadena 1111 nos dará como resultado 111; etc. Recorreremos la cinta y al momento de encontrar un espacio en blanco colocaremos un espacio en blanco, retrocederemos y al encontrar un uno lo reemplazaremos por un espacio en blanco y habremos terminado. Probando la siguiente cadena:
MT del ejercicio 3
Resultado:
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
4. Diseñar una Máqui Máquina na de Turi Turing ng qu e calcu calcu le la paridad de un número b inario . Es decir, si el número de 1’s de la cadena es par, se añade un 0 al final, y si es impar, imp ar, se añade añade un 1. El usuario podrá meter una cadena que contenga 0´s y 1´s y se tendrá que colocar al final de la cinta un 1 si la cantidad de 1’s ingresada es impar (si hay un 1, tres 1’s, cinco 1’s, etc.) o un 0 si la cantidad cantid ad de 1´s en la cinta es par (cero (cer o 1’s, dos 1’s, cuatro 1’s, etc.) En el estado inicial de la MT tenemos que comprobar si hay un cero al inicio (si lo hay reescribimos el 0), nos vamos al estado uno si hay un 1 (reescribimos el 1) y en ese estado volvemos a ver si hay un cero (y lo reescribimos) si sigue un espacio en blanco en la cinta significa que los unos son impares y nos vamos al estado dos y escribimos un 1; de lo contrario nos vamos al estado inicial y repetimos el proceso. Si nos topamos con un uno después de haber pasado por el estado uno y volvemos al estado inicial significa que es el segundo uno (o cuarto o sexto u octavo, etc.) y por ello al toparnos con un espacio en blanco lo sustituimos por un 0 (hay un número par de 1’s).
MT del ejercicio 4
Probando la siguiente cadena (número impar de 1’s):
Salida:
Puso un 1 al
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Probando la siguiente cadena (número par de 1’s): Salida:
Puso un 0 al final (par)
5. Diseñar una Máquina de Turing que sea un contador unario de caracteres del lenguaje con alfabeto Σ = {a,b,c}. Es decir, se deben devolver tantos 1’s como caracteres haya en la palabra de entrada. Considerar la codificación unaria del 0 igu al que en el ejercici ejercicio o 2. El usuario podrá ingresar una cinta de tantas a, b y c como desee, estos caracteres serán reemplazados por unos y será todo. Cuando aparezca un espacio en blanco se pasará al estado final.
MT del ejercicio 5
Probando la siguiente sigu iente cadena (8 caracteres, la MT deberá devolver ocho 1’s): Salida:
Ocho 1’s
6. Diseñar una Máquina de Turing que haga una copia de una cadena de símbolos {A,B,C}. Por ejemplo, para la entrada “bAABCAb” devuelve en la
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
empezar, evaluaremos todos los caracteres de la cadena (y serán reemplazados por los mismos caracteres) hasta encontrar un espacio en blanco, este será reemplazado por una “Y” que representa el final de la cadena. Ahora nos moveremos hacia la izquierda evaluando cada carácter (siendo reemplazados por ellos mismos) hasta encontrar un espacio espa cio en blanco (y nos moveremos a la derecha, es decir, el inicio de la cadena), luego nos moveremos al siguiente carácter de la cadena (2do carácter). A hora empezaremos con la “copia” de la cadena original. Dependiendo si hay una A, B o C la MT seguirá distintos caminos y cuando halla recorrido todos los caracteres y se tope con la “Y” se irá a otro camino. En fin, para copiar cada carácter se realiza el mismo procedimiento, solo cambia el carácter evaluado; en el siguiente algoritmo el carácter evaluado (que puede ser A, B o C) lo llamo “E”: 1. Sustituir E por X y movernos a la derecha 2. Sustituir todos los valores por ellos mismos (incluyendo Y) moviéndonos a la derecha 3. Si se halla un un espacio en blanco blanco lo sustituiremos por E y nos moveremos a la izquierda 4. Sustituir todos los valores por si mismos moviéndonos a la izquierda hasta hallar X 5. Sustituir X por E y movernos a la derecha (siguiente carácter). 6. Ir al paso 1 Pudimos observar que el algoritmo es simple, pero difícil de pensar y armar. Si al momento momento de volver (o llegar desde un principio) al paso 1 (inicio de la “copia”) nos topamos con una “Y” entonces significa signif ica que hemos llegado al final de la cadena original, nos moveremos a la izquierda (el carácter anterior a la “Y”) y seguiremos otro algoritmo: 1. Recorrer la cadena hacia la izquierda y sustituir los valores por si mismos mismos (A, B o C). 2. Si se halla un espacio en blanco (el espacio anterior al primer carácter de la cadena original) nos moveremos a la derecha y nos situaremos en el primer carácter de la cadena. A partir partir de de ahora ahora todo todo es más simple; si estamos estamos en una una “A” significa significa que la la letra letra “Y” “Y” deberá ser reemplazada por el carácter “A”; si estamos en una B significa que la letra “Y” será reemplazada por una B; lo mismo pasa con el carácter C. Record emos que empezamos a copiar desde el segundo carácter de la cadena original. Entonces, dependiendo del camino que tome nos movermos hacia la derecha
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
MT del ejercicio 6
Probando la siguiente cadena: Salida:
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
1. Si se halla una B ir al paso 5. Ir hacia la derecha y sustituir por X si se halla un 1 e ir a la derecha 2. Sustituir Sustituir los 1’s 1’s por 1’s y las B’s por B’s avanzando hacia la derecha si encontramos una A la sustituiremos por B y nos moveremos a la izquierda 3. Sustituiremos los 1’s y las B’s por ellos mismos, si encontramos encontramos una X significa que llegamos al inicio de la cadena original; sustituiremos esa X por el 1 y nos moveremos hacia la derecha. 4. Ir al paso 1 5. Hemos llegado a la primera B de la cadena de salida por lo tanto hemos terminado, colocamos una B y permanecemos (Stay= S).
MT del ejercicio 7
Probando la siguiente cadena (cinco 1’s y diez A’s): Salida:
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
8. Diseñar una Máquina de Turing que tome como entrada dos palabras formadas por los símbolos del alfabeto {0,1,2}, separadas por el símbolo {#}, y comprueba si son iguales. Por ejemplo, para la entrada b2101#2101b devuelve que sí son gu ales, donde ‘b’ representa la celda de la cinta vacía.
Ingresaremos una cadena (separada por #) y veremos si el lado izquierdo del # es igual al lado derecho del #. Preferentemente meteremos cadenas del mismo tamaño tanto del lado izquierdo del # como del lado derecho. Dependiendo si el inicio de la cadena cad ena es 0, 1 o 2 dependerá hacia donde se desplace la MT, pero el algoritmo para cada caso es el mismo; sustituiré el carácter (0, 1 o 2 por E): 1. Sustituir E por X e ir hacia la derecha 2. Avanzando hacia la derecha sustituir 0, 1 y 2 por ellos mismos, si encontramos el # colocamos el mismo # y nos movemos a la derecha 3. Si hallamos una Y la sobrescribimos y nos movemos movemos a la derecha. 4. Si hallamos una E lo cambiamos por una “Y” y nos movemos a la izquierda 5. Moviéndonos hacia la izquierda sustituimos 0, 1, 2, 2, Y y # por ellos ellos mismos, si encontramos la X sustituir por E y desplazarnos hacia la derecha 6. Volver al paso 1 Ahora si hallamos un # significa significa que hemos analizado analizado toda toda la cadena cadena y salimos. salimos. Resalto que si los caracteres a los lados de # son iguales veremos tantas X como Y a ambos lados, es decir, si ingreso la cadena 2101#2101 nos saldrá XXXX#YYYY diciéndonos que las cadenas son iguales, si las cadenas no son iguales se generará un error .
MT del ejercicio 8
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Probando la siguiente cadena (igual): Salida:
Probando la siguiente cadena (no igual): Resultado
Vemos que da error, solo el primer carácter del lado izquierdo es igual al derecho
9. Diseñar una Máquina de Turing que obtenga el sucesor de un número binario. La entrada constará de un número binario (ceros y unos) y la salida será el sucesor de ese número, por ejemplo, si ingresamos 1010 (diez decimal) la salida debe ser 1011 (once decimal). Podemos notar que el sucesor de un número binario que acaba en cero es ese mismo número, pero con un uno reemplazando a su último cero de la derecha; así el sucesor de 1010 es 1011, el sucesor de 1000 es 1001, el sucesor de 110010 es 110011, etc.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
MT del ejercicio 9
Probando la siguiente cadena (número 11 decimal) (termina en uno): Salida:
12 decimal
Probando la siguiente cadena (número 12 decimal) (terminada en cero): Salida:
13 decimal
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Si hay un cero al final de la cinta lo reemplazamos por 1 recorremos la cinta de izquierda a derecha reemplazando los caracteres por si mismos hasta encontrar uno que será reemplazado por un cero; habremos terminado con el algoritmo.
MT del ejercicio 10
Probando la siguiente cadena (termina en 1) (51 decimal):
Salida: