Guia Col1 2013 I Automatas y Lenguajes

12
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Nombre escuela: Escuela de Ciencias Básicas Tecnología e Ingeniería Nombre programa: Ingeniería de Sistemas AUTOMATAS Y LENGUAJES FORMALES 301405 Programa: Ingeniería de Sistemas GUIA DE ACTIVIDAD TRABAJO COLABORATIVO N 1 LENGUAJES REGULARES DUITAMA ENERO DE 2013

Transcript of Guia Col1 2013 I Automatas y Lenguajes

Page 1: Guia Col1 2013 I Automatas y Lenguajes

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Nombre escuela: Escuela de Ciencias Básicas Tecnología e Ingeniería Nombre programa: Ingeniería de Sistemas

AUTOMATAS Y LENGUAJES FORMALES

301405

Programa: Ingeniería de Sistemas

GUIA DE ACTIVIDAD

TRABAJO COLABORATIVO N 1

LENGUAJES REGULARES

DUITAMA

ENERO DE 2013

Page 2: Guia Col1 2013 I Automatas y Lenguajes

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Nombre escuela: Escuela de Ciencias Básicas Tecnología e Ingeniería Nombre programa: Ingeniería de Sistemas

Temáticas revisadas: Primera Unidad Capítulos Lecciones

I.. LENGUAJES REGULARES

1. Conceptos Básicos 1. Introducción e Historia.

2. Diferentes Modelos de Computación

3. Autómatas y Lenguajes.

4. Lenguajes Regulares

5. Autómata

2. Autómatas Finitos 6. Definición Formal de Autómatas Finitos

7. Autómatas Finitos Determinísticos (AFD)

8. Autómatas Finitos no Determinísticos (AFND)

9. Autómatas Finitos con λ Transacciones

10. Lenguaje Aceptado por Autómata Finito

3. Expresiones Regulares 11.Expresiones Regulares

12. Significado de las Expresiones Regulares

13. Autómatas Finitos y Expresiones Regulares

14.Propiedades de los Lenguajes Regulares

15.Equivalencia de Autómatas Finitos Determinísticos y Autómatas Finitos

Los lenguajes pueden describirse como elementos que se generan, como cadenas a partir de cadenas sencillas, con el uso de operaciones de cadenas o el desarrollo del lenguaje mismo, que se puede generar con otros lenguajes más sencillos mediante operaciones de conjuntos. Los Lenguajes más sencillos son los considerados lenguajes regulares, es decir, los que se pueden generar a partir de lenguajes de un elemento con la aplicación de ciertas operaciones estándar realizadas un número finito de veces. Estos son pues los lenguajes que pueden reconocer los dispositivos llamados Autómatas finitos (AF) que son máquinas de cómputo con memoria muy restringida. En esta unidad se considera como segundo aspecto la idea de que un lenguaje no sea regular, además de proporcionar un modelo sencillo de computación que se puede generalizar en las unidades siguientes. Con las caracterizaciones anteriores y otras de los lenguajes regulares se obtienen y estudian algoritmos para traducir una descripción de un lenguaje a otra descripción de un tipo distinto; se acumula experiencia en el uso de métodos formales para describir lenguajes y se intenta responder a preguntas acerca de ellos, son preguntas y ejercicios sencillos con sus respuestas y que permiten determinar la utilidad de los lenguajes regulares en aplicaciones del mundo real.

Page 3: Guia Col1 2013 I Automatas y Lenguajes

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Nombre escuela: Escuela de Ciencias Básicas Tecnología e Ingeniería Nombre programa: Ingeniería de Sistemas

OBJETIVO GENERAL: Reconocer los lenguajes regulares, autómatas finitos y su aplicación. OBJETIVOS ESPECIFICOS Estudiar la aplicación de los lenguajes regulares y los autómatas finitos. Adquirir las habilidades necesarias para desarrollar autómatas y máquinas que reconozcan lenguajes o computen funciones. Distinguir los diferentes tipos de lenguajes formales existentes. Adquirir el conocimiento y competencia para poder recrear autómatas sencillos en un simulador. De igual forma verificar el lenguaje que reconoce. METODOLOGÍA: Las sesiones son desarrolladas en forma teórica, La estrategia de aprendizaje a utilizar será el Aprendizaje colaborativo. Porque aprendizaje colaborativo? El desarrollo de las actividades de aprendizaje está basado en el aprendizaje colaborativo como una estrategia de aprendizaje y de trabajo de grupo que es usado en los cursos que se ofertan en el campus virtual de la UNAD, se requieren estas características para realizar un trabajo realmente efectivo. Participación: el potencial de un grupo de aprendizaje se maximiza cuando todos los estudiantes participan activamente en las discusiones. Crecimiento Social: permite establecer y mantener una comprensión compartida de significados. Habilidades Conversacionales: la calidad de la comunicación en grupos de discusión influencia la experiencia de aprendizaje y los logros de los miembros del grupo. Procesamiento Grupal y Análisis de Rendimiento: existe procesamiento grupal cuando el grupo discute sus progresos y decide si continúa con su comportamiento o lo cambia. Para ello los estudiantes deben evaluar individual y colectivamente sus rendimientos. Formación de los grupos colaborativos: Los Grupos están conformados por 5 estudiantes que el sistema en el momento del ingreso al curso académico los selecciona, es de anotar que este grupo está definido para desarrollar todo el curso académico y no es factible el cambio de grupo, este proceso fomenta deliberadamente la diversidad mezclando los estudiantes con diferente nivel, sexo, origen, estilo de aprendizaje, etc. Aunque esta distribución no toma en cuenta la opinión de cada estudiante si pretende que se conserve dentro del equipo la pluralidad para potenciar la calidad, la cantidad y la velocidad de aprendizaje.

Page 4: Guia Col1 2013 I Automatas y Lenguajes

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Nombre escuela: Escuela de Ciencias Básicas Tecnología e Ingeniería Nombre programa: Ingeniería de Sistemas

Organización los Grupos colaborativos: Los equipos luego de la distribución aleatoria que hace el sistema deben organizarse en este pequeño grupo obviamente con el compromiso de trabajar y de desempeñar algunos roles o funciones básicas, que son indispensables para el desarrollo de la actividad. Una distribución de funciones básicas que se propone y debe ser definida una vez se hayan “conocido” los integrantes del grupo, es la siguiente (coordinador, relator, animador, técnico y supervisor) aunque los estudiantes pueden crear las funciones que consideren más adecuadas. En cada unidad de aprendizaje del curso los estudiantes deben elegir un coordinador del equipo que, a su vez, distribuye el resto de funciones entre sus compañeros. Cuando comienza una nueva unidad deben volver a elegir un coordinador pero de tal forma que nadie repita un cargo hasta que todos han pasado ya por ese cargo. La idea es que todos aprendan a ser responsables de todas las funciones esenciales dentro de un equipo, que todos vivan la experiencia de esa responsabilidad. ¿Cómo se logra pertenencia con el grupo colaborativo?: Lo importante en la conformación del equipo es el hecho de que se sientan parte del equipo en el cual van a trabajar durante todo el semestre, para ello cada grupo deberá ponerse de acuerdo para desarrollar una primera actividad grupal, que está planteada en el foro general del curso, deberán elaborar una presentación multimedia que debe contener un acta de conformación del grupo, un nombre para el equipo, un logo distintivo del grupo y la redacción de texto en donde el equipo se presenta a sus compañeros explicando sus puntos fuertes y débiles. ¿Cómo organizar su trabajo?: En este punto cobra relevancia e importancia el uso del wiki como elemento para compartir toda la información del grupo y registrar los aportes de cada uno de los integrantes del grupo, si es decisión del grupo no usar el wiki, pueden realizar sus aporte por el foro colaborativo de cada práctica en los temas de trabajo individual y trabajo grupal. Para la organización del trabajo a desarrollar el proceso es el siguiente:

Planificación: Se deben repartir las funciones entre los componentes del grupo colaborativo y planificar el trabajo. Para ello elaboraran un "Plan de Acción" que es un documento en un procesador de palabras en donde mostrarán el organigrama del equipo, la organización del tema en donde se escriba que saben sobre el tema, que desean aprender y cómo van a buscar la información (Desarrollo de la practica en el Cead, Biblioteca Virtual de la UNAD, en la Red, haciendo entrevistas a especialistas, etc.), el diagrama de flujo del proyecto y el calendario de actividades. Este Documento debe ser enviado al foro de trabajo colaborativo para compartirlo con el grupo y con el tutor en el TEMA de producción del grupo.

Page 5: Guia Col1 2013 I Automatas y Lenguajes

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Nombre escuela: Escuela de Ciencias Básicas Tecnología e Ingeniería Nombre programa: Ingeniería de Sistemas

Elaboración del trabajo: Con la información individual y grupal recogida en las bibliotecas, en la Red, haciendo entrevistas a especialistas etc. deberán elaborar un informe que recoja lo esencial que han aprendido: el trabajo final. Para ello negociarán y construirán entre todo el grupo los contenidos de la práctica, se deja la decisión al grupo para que seleccione la técnica más adecuada para compartir la producción de cada uno, se sugiere elaboren mapas de ideas o un mapa conceptual del tema a partir de la información elaborada individualmente.

Producto esperado a entregar: El producto es un documento que debe cubrir todos los puntos de la rúbrica de evaluación y debe ser elaborado en un procesador de palabras (openoffice write o Microsoft Word.) para luego ser convertido a PDF (Portable data File). NOTA IMPORTANTE. Para los ejercicios propuestos de esta actividad, ( 2 al 10) se deben realizar o “recrear” en alguno de los dos simuladores: Los gráficos y análisis de cada simulador son los que se exportaran al documento de Word. Debe entregar los archivos generados por el simulador en una carpeta. Importante: Tenga en cuenta que no se aceptan fórmulas, caracteres o expresiones regulares, entre otros que sean copiadas como imagen. Se debe usar un editor de fórmulas para plasmarlas. El Visual Autómata Simulator (vas) y/o el JFLAP. En las siguientes direcciones de Internet podrán descargar las mencionadas herramientas: · Visual Autómata Simulator. http://www.cs.usfca.edu/~jbovet/vas.html JFLAP. http://www.cs.duke.edu/csed/jflap/ O en el FORO DE NOTICIAS DEL AULA, están los links de descara directos de forma más rápida y cómoda. DOCUMENTO A ENTREGAR: Se debe entregar un archive comprimido (.rar) que contenga el siguiente nombre: Como ejemplo, si el estudiante se llama Carlos Alberto Amaya Tarazona y pertenece al grupo 78, entonces el archivo a enviar es: 78_col1_301405.rar

El archivo comprimido contendrá los siguientes elementos:

Page 6: Guia Col1 2013 I Automatas y Lenguajes

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Nombre escuela: Escuela de Ciencias Básicas Tecnología e Ingeniería Nombre programa: Ingeniería de Sistemas

1. UN DOCUMENTO EN PDF: que contiene: Formato de presentación del Documento: El documento debe contener los siguientes puntos

PORTADA: Datos de los Estudiantes (nombre, número de matrícula, e-mail, Zona, Cead, Grupo que presenta la actividad). Datos del tutor.

Descripción general del trabajo. Desarrollo de cada uno de los puntos enunciados a continuación. .

2. LOS ARCHIVOS GENERADOS POR EL SIMULADOR EN UNA

CARPETA: Deben incluir los 9 archivos que genera el simulador : (EJERCICIOS 2 AL 9) Si es JFLAP (los de extensión jff) y si es con archivos de VAS (los de extensión .fa)

Deben asignar nombres a los archivos del simulador así: Para el ejercicio 2: (así para los demás ejercicios cambiando el número) Ejercicio2.jff (Cuando se usa JFLAP) Ejercicio2.fa (Cuando se usa Visual Autómata Simulator) Éxitos. Cordialmente. Ing. (Msc) Carlos Alberto Amaya Tarazona Director aula.

Page 7: Guia Col1 2013 I Automatas y Lenguajes

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Nombre escuela: Escuela de Ciencias Básicas Tecnología e Ingeniería Nombre programa: Ingeniería de Sistemas

DISTRIBUCION DEL TRABAJO

Page 8: Guia Col1 2013 I Automatas y Lenguajes

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Nombre escuela: Escuela de Ciencias Básicas Tecnología e Ingeniería Nombre programa: Ingeniería de Sistemas

EJERCICIOS A DESARROLLAR:

1. Para el siguiente ejercicio, recordaremos ciertas apreciaciones, conceptos o

afirmaciones acerca de las Expresiones Regulares, comúnmente denotadas

como “ER”:

Una expresión regular es una forma de representar cierto tipo de lenguajes sobre

un determinado alfabeto. Son exactamente los aceptados por los autómatas de

estado finito.

Si tomamos como A un alfabeto, unas posibles expresiones regulares sobre ese

alfabeto podrían ser: (identifique que lenguaje reconoce esa ER)….

a) Ø es una ER que denota el Lenguaje…..????

b) es una ER que denota el lenguaje …?

En general los lenguajes que pueden representarse mediante una expresión regular se llaman lenguajes regulares. Estos coinciden con los aceptados por los autómatas finitos. Es importante que tengamos definido o claro que Si r y s son ER denotando los lenguajes R y S, entonces se definen tres operaciones muy básicas:

- Unión: (r + s) es una expresión regular ER que denota el lenguaje R S

- Concatenación: (rs) algunos autores lo toman como (r∙s) es una expresión regular ER que denota le lenguaje RS.

- Clausura: r * es una expresión regular ER que denota el lenguaje R * Para efectos de plasmar las ER, los paréntesis se pueden eliminar siempre y cuando los símbolos y caracteres no alteren la interpretación de otros caracteres o cadenas. La precedencia de las operaciones es: clausura / Concatenación / Unión. Para los siguientes ejercicios identifique el lenguaje que reconoce y plasme cinco posibles cadenas válidas que representan esa ER: EJEMPLO COMO DEBE REALIZAR EL EJERCICIO: Si le dan esta ER (0+1)*011 Quiere decir que representa le lenguaje de las cadenas que terminan en 011 (Debe evaluar bien lo que va a plasmar de tal forma que no se quede ninguna posibilidad de cadena sin tener en cuenta) si A = {a,b,c}

c) (a +b)*(a+b)

Page 9: Guia Col1 2013 I Automatas y Lenguajes

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Nombre escuela: Escuela de Ciencias Básicas Tecnología e Ingeniería Nombre programa: Ingeniería de Sistemas

d) (a* + b ) *

e) (a+ )ba*

f) b (aba)*

g)

si A = {0,1}

h) 0*+1*(01)

i) 10* + 10

j) 01* + 0

k) (1-11*0) *

l) (1 + 10) + 0

m) 1* 0*10

n) 00* 11*

o) (0+1)*11(1+0)*

2. Partiendo de la definición de que un Autómata Finito Determinístico (AFD) está

dado por la quíntupla: A = (Q, ∑, f, q 0 , F) donde:

Q es un conjunto de estados.

∑ es el alfabeto de entrada

f: Q X ∑ → Q es la función (total) de transición.

q 0 Q es el estado inicial.

F Q es el conjunto de estados finales.

Y que para el ejercicio, el autómata se define como:

, A = ({q 0 , q 1 , q 2 , q 3 } , {0,1} , f , q 0 , { q 2 })

Representado mediante el grafo:

Page 10: Guia Col1 2013 I Automatas y Lenguajes

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Nombre escuela: Escuela de Ciencias Básicas Tecnología e Ingeniería Nombre programa: Ingeniería de Sistemas

EN UN SIMULADOR (YA SEA JFLAP O VAS)

Plásmelo en el simulador

Realice la tabla de transición correspondiente.

Compruebe el lenguaje aceptado

Identifique la expresión regular que permite identificar que cadenas son válidas y que acepta el autómata.

Identifique que denotación de estados está errada y corríjala.

3. Acorde al autómata del ejercicio N 2, Realice:

Identifique si es un AFD ó AFND y justifique por qué. Si dado el caso es un AFND conviértalo en el simulador a un AFD y

plásmelo en el trabajo sus cadenas válidas. Analice si son las mismas cadenas que acepta al autómata antes de convertirlo.

El nuevo AFND debe plasmarlo en el simulador.

Compruebe el lenguaje aceptado

Identifique la expresión regular que permite identificar que cadenas son válidas y que acepta el autómata.

Analice si la ER y el Lenguaje aceptado es el mismo o no al ejercicio Número 2. Justifique sus respuestas.

4. Para el siguiente Autómata que acepta el lenguaje:

L = { ω ϵ {x,y,z}* │ω = x*yz 2 , i >= 0} Realice las siguientes actividades:

Determine si es un AFD ó AFND

Encuentre la ER

Gráfico en un diagrama de Moore

Realice la tabla de transición

De cinco (05) ejemplos de cadenas válidas que acepte el autómata

Recréelo en el simulador

5. Construya un autómata que reconozca cadenas enmarcadas dentro de la

expresión regular: (1 + 0)* Tenga en cuenta que debe incluir cadenas vacías

del tipo

Se recomienda primero realizarlo en papel (graficarlo a mano alzada antes de llevarlo al simulador.

Page 11: Guia Col1 2013 I Automatas y Lenguajes

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Nombre escuela: Escuela de Ciencias Básicas Tecnología e Ingeniería Nombre programa: Ingeniería de Sistemas

Identifique los elementos de la tupla a que corresponda ese autómata y descríbalos.

Realice el diagrama de Moore en el simulador y plásmelo en el trabajo.

Construya Tabla de Transición.

En el simulador demuestre una cadena válida haciendo el recorrido por cada paso de estado.

Identifique el lenguaje que reconoce.

6. Construya un Autómata que acepte el siguiente Lenguaje: L = 00*11*

Identifique sus componentes (la tupla que es)

Constrúyalo en los simuladores.

Demuéstrelo con al menos cinco cadenas válidas. Demuestre tres cadenas no válidas y justifíquelas por qué no son válidas comparadas con la expresión regular.

Identifique y justifique si su diseño de Autómata es AFD ó AFND

Cree las tablas de transición

Plasme el diagrama de Moore 7. Para el siguiente autómata:

Identifique sus componentes (la tupla que es)

Identifique si es un AFD o un AFND o si es un autómata de landa transiciones. Justifique sus repuestas.

Constrúyalo en el simulador

Identifique claramente las cadenas y subcadenas válidas y justifíquelas.

Plasme en el trabajo los gráficos generados.

Identifique la expresión regular y el lenguaje que representa

Plasme la tabla de transición.

Page 12: Guia Col1 2013 I Automatas y Lenguajes

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Nombre escuela: Escuela de Ciencias Básicas Tecnología e Ingeniería Nombre programa: Ingeniería de Sistemas

8. Construya un Autómata Finito Determinístico (AFD) de tres (3) estados que acepta dentro de su lenguaje la palabra “unad”

Identifique sus componentes (la tupla que es)

Constrúyalo en los simuladores.

Cree las tablas de transición

Plasme el diagrama de Moore

Escriba la expresión regular que represente.

9. Para el siguiente autómata finito determinista dado por:

M = ({q0, q1, q2, q3} , {0, 1} , δ, q0, {q1})

Donde la función δ : {q0, q1, q2, q3 } × {0, 1} → {q0, q1, q2, q3} viene dada por:

δ(q0, 0) = q0 δ(q0, 1) = q1

δ(q1, 0) = q0 δ(q1, 1) = q2

δ(q2, 0) = q3 δ(q2, 1) = q1

δ(q3, 0) = q3 δ(q3, 1) = q2

Plásmelo en los simuladores.

Realice el diagrama de Moore.

Identifique la tabla de transición correspondiente.

Verifique el lenguaje aceptado y las cadenas válidas para el autómata.

Identifique la expresión regular que lo representa.

10. Para el siguiente autómata:

Identifique sus componentes (la tupla que es)

Recréelo en los simuladores

Realice la tabla de transición.

Qué tipo de Autómata es (Justifíquelo).

Identifique la ER y el Lenguaje que acepta

Que cadena reconoce. (Demuéstrelo y grafíquelo en el simulador).