20_mom3_301405

November 11, 2017 | Author: JavierMarmolejoSerrano | Category: Applied Mathematics, Computer Science, Theoretical Computer Science, Areas Of Computer Science, Formalism (Deductive)
Share Embed Donate


Short Description

Descripción: Automatas y lenguajes...

Description

MOMENTO 3

JAVIER MARMOLEJO SERRANO CC16.276.985 LORENA SALGADO GUTIERREZ CC29818267 NORMAN CONSTANZA GALLEGO CC OMAR MONTAÑO CC

Trabajo presentado al Tutor VICTOR FERNANDO CAÑON RODRIGUEZ En el curso de AUTOMATAS Y LENGUAJES FORMALES GRUPO 301405_20

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA FACULTAD DE CIENCIAS BASICAS E INGENIERIA INGENIERÍA DE SISTEMAS CEAD PALMIRA MAYO 2016 PALMIRA INTRODUCCION

En las unidades anteriores, hemos vistos una serie de máquinas abstractas que sirven para reconocer un lenguajes y dan solución a un algoritmos, de igual forma hemos estudiados las expresiones y las gramáticas, otra forma de expresar lenguajes. En esta nueva unidad se ha visto como el proceso ha ido evolucionando en cuanto a lenguajes y máquinas. De igual manera se estudia y se comprende el funcionamiento de una maquina abstracta, llamada Máquina de Turing, que es aceptada de manera amplia como modelo general de computación, aunque las operaciones básicas de esta máquina son comparables en su sencillez a las de las máquinas estudiadas en las unidades anteriores, las nuevas maquinas pueden realizar una amplia variedad de operaciones de cómputo. Este curso se tratará básicamente de formalización de lenguajes, de las máquinas abstractas (o autómatas) que reconocen estos lenguajes de las Teoría de autómatas y lenguajes formales y de las gramáticas que generan estos lenguajes, elaborando este trabajo para aplicar y comprender mejor el tema.

OBJETIVOS

OBJETIVO GENERAL: Reconocer la importancia y el poder computacional de las Máquinas de Turing en el contexto de la solución de problemas computacionales de reconocimiento de Lenguajes. OBJETIVOS ESPECÍFICOS: Estudiar las Máquinas de Turing y sus propiedades básicas  Conocer las partes que conforman una Maquina de Turing  Comprender el funcionamiento de cada uno de sus componentes, de la máquina de Turing.  Demostrar el poder de cómputo que tiene una Máquina de Turing.

Actividades a desarrollar:

Primer Ejercicio Diseñe Una MT que se comporte como reconocedor que reconozca el lenguaje L = {an bn; n >= 1} (NO incluye o NO acepta la cadena λ). El alfabeto de la cinta debe ser diferente al alfabeto de entrada. Es decir el alfabeto de entrada es “a” y el de la cinta “1” con sus respectivos símbolos blanco si es que los necesita en su diseño. 1. Identifique los componentes de la Máquina de Turing (descríbala). En la Maquina de Turing M es un séptuplo M = (Q, Σ, Γ, δ, s, □, F), donde: Es el conjunto finito de estados {q0, q1, q2}. Es el alfabeto de entrada,

{a, b}

Es el alfabeto de la cinta,

{1, 0}

Es el estado inicial, Es el símbolo en blanco, Es el conjunto de estados finales,

{q2}

Es la función de transición

Con las transiciones que se pueden ver, su estado inicial es q0 y el estado final es q2.

qo q1 q2

a (q0 , 1, R) (q1, 1, R)

b (q1, 0, R) (q1, 0, R)

(q2, , R)

2. Diséñela en un Diagrama de Moore.

3. Recorra la máquina con al menos una cadena válida explicando lo sucedido tanto en la cinta como en la secuencia de entrada.

Se recorrerá la máquina con la cadena de entrada aab, se plasma en la cinta, a la izquierda y derecha de la cadena de entrada se ubican símbolos vacíos. Al iniciar, el cabezal se encuentra en la posición de inicio, la cinta leerá el primer símbolo de la cadena de entrada (a) a

a

b

Lee el primer símbolo de entrada (a)

La función de transición indica

, es decir, que si en la posición

ingresa (o se lee) un símbolo a, se debe escribir o reemplazar por el símbolo 1, se permanece en la misma posición ( ) y se desplace a la derecha en la cinta:

1

a

b Lee el siguiente símbolo de entrada (a)

Al leer el segundo símbolo de entrada (a), la función de transición indica que , es decir que si en la posición

se lee un símbolo (a) se debe

remplazar por el símbolo 1, permanece en el estado

y se desplaza a la derecha

de la cinta 1

1

b Lee el siguiente símbolo de entrada (b)

Al leer el siguiente símbolo de entrada (b), la función de transición indica que , es decir que si en la posición

se lee un símbolo (b) se debe

remplazar por el símbolo 0, permanece en el estado

y se desplaza a la derecha

de la cinta 1

1

0

Lee el siguiente símbolo de entrada ( )

En este punto la cinta lee un símbolo de entrada blanco , la función de transición indica que símbolo blanco izquierda. Al ser

, es decir que se remplaza el símbolo blanco , se mueve a la posición

por el

y hace un desplazamiento a la

el estado halt (estado final o de aceptación) la maquina se

detiene y la cadena es reconocida.

4. Identifique una cadena que no sea válida y justifíquela porque.

Tal y como está el diseño se aceptara cualquier combinación de entrada que contenga “a” y “b”, la cadena no será válida si se ingresa únicamente “a” ya que entrara al estado q0 y no pasara al estado q1 y por lo tanto no llegara al estado final q2, en la siguiente imagen se observa lo que sucede al ingresar la cadena “aaaaa”

5. Ejecute el RunTest a una cadena aceptada que tenga al menos cinco símbolos.

6. Identifique en que momento la máquina se detiene. La máquina se detiene cuando encuentra en la cinta un símbolo blanco momento se mueve al estado

, en ese

el cual reconoce como estado final y en ese

momento se termina el proceso 7. Lo que acaba de diseñar es una MUT o una MT. Justifique su respuesta. Es una MT, ya que está diseñada para un cálculo específico. Se diseñó una máquina de Turing porque “la máquina de Turing universal puede simular una máquina de Turing arbitraria” (Wikipedia, 2013) 1 es decir puede funcionar con múltiples propósitos a voluntad de alguna persona. Y la máquina de Turing diseñada funciona únicamente con el propósito de duplicar la entrada de la “a” con una salida en “b”s por lo tanto es una maquina especializada que solo funciona para dicho propósito. 8. Mencione y justifique las semejanzas y diferencias entre una Máquina de Turing reconocedora y una Maquina de Turing Transductora. Transductor: es el que modifica el contenido de la cinta realizando cierta función. MT que sustituye los dígitos por cero MT que añade un bit de paridad a la entrada MT que duplica de 1s que hay en la cinta Si la entrada esa bien formada debe terminar en el estado final

Si la entrada no está bien formada debe terminar en un estado no final Reconocedor: MT capaz de reconocer un lenguaje L. MT capaz de aceptar un lenguaje L MT capaz de reconocer o aceptar un lenguaje L Un MT reconoce un lenguaje L si dada una entada w en la cinta, la MT siempre se para y lo hace en un EF si y solo si: w ϵ L. Una MT acepta un lenguaje, L si dada una entrada w en la cinta la, la MT se para en un estado final si y solo si w ϵ L, asi en este caso, si w ∉ L, la MT podría no parar. MT que reconoce el lenguaje a*b*, MT que acepta el lenguaje an cn bn

Segundo Ejercicio Dada la siguiente máquina de Mealy, M= ({a , b}, {1 , 2}, { q0, q1, q2 }, T, S)

1. Identifique los componentes de la Máquina (descríbala).

Q: { 0, q1, q2 } Ent: {a , b} Sal: {1 , 2} Tran: T Res: S Q0: Q0 2. Diséñela en diagrama (Máquina de Mealy).

3. Recorra la máquina con al menos una cadena válida explicando lo sucedido tanto en la cinta como en la secuencia de entrada. Recorriendo la cadena valida abba La máquina se posiciona en el estado inicial �0, y analiza el primer símbolo de entrada “ ”, se cambia el símbolo a a 1 y pasa al estado �0

La máquina lee el siguiente símbolo de entrada “ b”, se cambia el símbolo a por 2 y pasa al estado �2

Vuelve a leer el siguiente símbolo de entrada que es “ b”, se cambia al símbolo 1 y pasa al estado �1

Desde el estado q2 lee el siguiente símbolo de entrada que es “ a”, se cambia al símbolo 1 y pasa al estado �0

Ese era el último símbolo de entrada, entonces se termina la cadena y es aceptada. La cadena ingresada fue abba, y la cadena de salida es 1211

4. Identifique una cadena que no sea válida y justifíquela porque. Se ingresa la cadena no valida abc

Se ingresa los símbolos abc el cual contiene el símbolo c que no se encuentra dentro del alfabeto del autómata para poder que este nos muestra que no acepta un símbolo diferentes a los elementos ab debido a que el autómata por tener la estrella de King en los estados q0 y q1 con símbolo a y b y la relación de q2 a q0 que tiene relación de entrada y de salida hacen que el autómata me reciba o acepte cualquier cadena que intercale con diferentes interrelaciones entre los símbolos de entrada a y b 5. Ejecute el RunTest a una cadena aceptada que tenga al menos tres símbolos Se realiza el Run -test con la cadena aceptada abb

6. Identifique en que momento la máquina se detiene.

La máquina se detiene en el símbolo b con salida 1 dado que no encuentra más símbolos por leer en la cadena ingresada

7. Explique cinco características de la Máquina de Mealy y encuentre cinco diferencias con las Máquinas de Turing (MT). Máquina de Mealy Una Máquina de Mealy (o Transductor de estados finito) también es un autómata finito pero que genera una salida. Es definido por una 6-tupla Todos los estados son Finales y solamente uno de ellos es el estado inicial Tiene menor cantidad de número de estados Es menos estable Máquina de Turing (MT) Las máquinas de Turing tiene un estado inicial, y un estado final o de aceptación. Las máquinas de Turing permiten hacer recorridos en la cinta y cambiar su dirección. La cinta es de longitud infinita hacia la derecha, hacia donde se extiende indefinidamente, llenándose los espacios con el carácter blanco La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Con este aparato extremadamente sencillo es posible realizar cualquier cómputo que un computador digital sea capaz de realizar. EJERCICIO TRES

1. Realice la conversión paso a paso de la máquina de Mealy del ejercicio del punto 2 a la máquina de Moore equivalente. Se debe realizar la explicación de cada paso que se realice Teniendo en cuenta la máquina de Mealy ME = ({a, b}, {1,2}, {q0, q1, q2}, T, S) Función T q0 q1 q2

de transición f a b q0 q2 q0 q1 q0 q1

Función de salida S a q0 1 q1 1 q2 2

b 2 2 1

Comenzando el proceso de conversión a una máquina de Moore equivalente: MO = ({a, b}, {1,2}, {Q’, t´, s’) Donde: t (q0, a) = q0, S (q0, a) = 1 entonces q01 ⋲ Q´; s´ (q01) = 1; t´ (q01, a) = q01; t´ (q02, a) = q01 t (q0, b) = q2, S (q0, b) = 2 entonces q22 ⋲ Q´; s´ (q22) = 2; t´ (q01, b) = q22; t´ (q02, b) = q22 T (q1, a) = q0, S (q1, a) = 1 entonces q01 ⋲ Q´; s´ (q01) = 1; t´ (q11, a) = q01; t´ (q12, a) = q01 T (q1, b) = q1, S (q1, b) = 2 entonces q12 ⋲ Q´; s´ (q12) = 2; t´ (q11, b) = q12; t´ (q12, b) = q12 T (q2, a) = q0, S (q2, a) = 2 entonces q02 ⋲ Q´; s´ (q02) = 2; t´ (q21, a) = q02; t´ (q22, a) = q02 T (q2, b) = q1, S (q2, b) = 1 entonces q11 ⋲ Q´; s´ (q11) = 1; t´ (q21, b) = q11; t´ (q22, b) = q11

Nos quedará entonces Q’ = {q01, q22, q12, q02, q11}, vemos entonces que el estado q21 nunca ha sido creado, por lo tanto, se anularán todas las transiciones correspondientes a dicho estado. Función t´ q01 q22 q12 q02 q11

de transición t´ a b 1 q0 q22 2 q0 q11 q01 q12 1 q0 q22 q01 q12

Función de salida s´ s´ q01 1 q22 2 2 q1 2 q02 2 1 q1 1

Comparación de Máquina de Mealy con Máquina de Moore

MM

MO

2. Identifique los componentes de la Máquina de Moore (descríbala) Se define por la quíntupla ME = (ƩE, ƩS, Q, f, g) ƩE: Alfabeto de entrada ƩS: Alfabeto de salida Q: Conjunto finito vacío de estados f: Función de transición

g: Función de salida

3. Diséñela en un diagrama de Moore

4. Recorra la máquina con al menos una cadena válida explicando lo sucedido tanto en la cinta como en la secuencia de entrada

Para comprobar la validez de las cadenas utilizaremos la cadena con la que se trabajó en la máquina de Mealy. Cadena a comprobar baba

Cuando simulamos en la máquina de Moore la cadena baba aparece la cinta ingresando en el estado inicial q0 un 1.

Ejecutamos step para mirar el siguiente dato ingresa b en el estado q2

saliendo 2, luego pasa al estado q4 leyendo a con salida 2, regresa q2 y lee b con salida 2, y nuevamente llega a q4, donde lee el ultimo carácter a mostrando 2. Esto representa que está leyendo y recorriendo como alfabeto de entrada baba, asigna inicialmente un 1, luego, 2222 como final. Igual que en la máquina de Mealy convierte baba en 2222, pero en Moore asigna inicialmente el valor de 1 en la entrada de la cinta y luego lee la cadena válida baba. 5. Identifique una cadena que no sea válida y justifíquela porque Ahora para probar una cadena no válida simulo abcab

El simulador acepta la cadena, la cinta empieza a mostrar el recorrido en el autómata

Al iniciar lee 1 como entrada, estado inicial q0, siguiente paso leo a y muestra 1, leo ahora b y muestro 2

Al continuar el recorrido la cinta lee c, pero por ser un símbolo diferente al alfabeto de entrada, se detiene y termina su recorrido en el estado q2.

6. Ejecute el RunTest a cada cadena aceptada que tenga al menos cinco símbolos

Cadena bbbbb -> 121222

Cadena aaaaa -> 111111

7. Identifique en que momento la máquina se detiene

La máquina se detiene cuando se lee el último símbolo del alfabeto de entrada y al mostrar su salida. Para el caso de la cadena bbbbb -> 121222 Se desplaza desde el estado q0 al q2, q3, q1, q1 y termina leyendo b en el estado q1 mostrando como último dato de salida 2. Para la cadena aaaaa -> 111111 Se inicia la lectura desde q0, por ser el símbolo de entrada solamente a, se realiza el ciclo en el estado q0 y termina en este mismo, al leer la última a mostrando como salida el ultimo 1.

CONCLUSIONES

 El tema de los autómatas y lenguajes regulares, es bastante complejo del cual se dispone de mucho tiempo y cuidado.  Hay más de una forma de expresar lenguajes regulares, por medio de autómatas, expresiones y gramáticas,  La máquina de Turing, es la máquina abstracta con una amplia capacidad de cómputo que cualquier otra máquina, ubicada dentro de los lenguajes estructurados por frases.  Los simuladores como jflap herramientas esenciales para plasmar un autómata, identificar el lenguaje que reconoce, las cadenas que lee y muchas opciones más como la representación de expresiones regulares a un autómata.  Poco a poco vamos avanzando hacia los lenguajes de programación de alto nivel.

BIBLIOGRAFIA

Wikipedia. Autómatas y Lenguajes. Extraído Abril 21 de 2.016 desde: http://es.wikipedia.org/wiki/Lenguaje_formal Unad. Modulo Autómatas y lenguajes formales. Extraído Abril 21 de 2.016 desde: http://campus06.unad.edu.co/ecbti05/course/view.php?id=115 Univalle. Autómatas y Lenguajes. Extraído Abril 21 de 2.016 desde: http://eisc.univalle.edu.co/materias/Computabilidad/material/turing.pdf

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF