Asignatura Autómatas y Leguajes formales
Presenta Henry Jhoan Torres Villarreal Carlos Giovanni Ruiz Deisy Ibon Noriega Raul Jimenez Eddin Jose Robles
Grupo301405_13
Tutor Edgar Antonio Cortes
B u c a r a m a n g a – C o l o m b i a
2018
INTRODUCCIÓN
El presente trabajo tiene como principal objetivo realizar la entrega de la actividad fase 1 propuesta en la guía integrada, la cual nos propone realizar una presentación en PPT inicialmente sobre un tema previamente seleccionado en el grupo colaborativo, así mismo dar solución a 3 ejercicios relacionado con autómatas en donde pondremos en práctica nuestras
capacidades
para
hallar
expresiones
regulares,
lenguajes
regulares, conocer los diferentes tipos de autómatas que existen, realizar conversiones,
plasmar
tablas
de
transición,
y
profundizar
sobre
el
diagrama de Moore, para llevar a cabo el trabajo el grupo colaborativo uso los recursos destinados en el entorno de conocimiento, así mismo el material compartido por el tutor asignado en el foro y por supuesto los links de las videoconferencias realizadas para el desarrollo del mismo.
OBJETIVOS
Abordar y dar solución a los ejercicios planteados en la temática 1 de forma colaborativa la cual hace referencia a Lenguajes regulares .
Profundizar y poner en práctica lo relacionado con alfabetos, autómatas y lenguajes, clases entre otros.
Investigar
sobre
los
conceptos
básicos
de
Lenguaje
regular,
expresión regular, Autómata finito (determinista y no determinista)
EJERCICIOS Ejercicio 1: Teniendo en cuenta el autómata realizar paso a paso el p r o c e d i m i e n t o d e :
1. Hallar la expresión regular 2. Hallar el lenguaje regular 3. Justificar el tipo de autómata que es Desarrollo. Lo primero que debemos tener en cuenta que la expresión regular final va a estar compuesta por varios sumandos. Cada una de estas expresiones regulares sale de obtener el número de sumandos el cual va a depender del número de estados de aceptación y caminos.
1. Hallar la expresión regular
S e r e l e v a q1
q4 = aq4 + bq3 + a∗ (bq3 ) = a∗ bq3(bq1 + ba∗ b∗) q4 = a∗baba∗ ba∗ + a∗ baba∗bba∗ b∗ + a∗baaaba∗ + a∗ baaaba∗ bba∗ b∗ + a∗bba∗ b∗
S e r e l e v a q2
q1 = aq1 + bq2 = aq1 +b(a∗ bq3 ) = a q1 +ba∗b∗ q1 = aba∗ba+aba∗bba∗ b∗ + aaaba∗ aaaba∗ bba∗ b + b a∗ b∗ S e r e l e v a q3 q2 = aq4 + bq4 + λ = (a + b)q4 = abq 4 = ab(a∗bq3 ) = aba∗bq3 q2 = aba∗ b(aq1 + ba∗ b) = aba∗ aq1 + aba∗ bba+b S e r e l e v a q4
q2 = aq4 + bq4 + λ = (a + b)q4 = abq 4 = ab(a∗bq3 ) = aba∗bq3 relevamos q1 q0 = bq2 + aq3 = b(a∗baq1 + a∗ bba∗b∗) + a(aba∗ baq1 +aba∗ bba∗b) q0 = ba∗ ba∗ + ba∗ bba∗b∗ + aaba∗ + aaba∗ bba∗ b E R = b a∗ ba∗ + ba∗ bba∗b∗ + aaba∗ + aaba∗ bba∗ b HALLAR EL LENGUAJE REGULAR Σ es un conjunto finito de símbolos o alfabeto. δ : Q × Σ → Q es una función parcial llamada función de t ransición
E n t o n c e s L(A) = ({q0, , q1, , q2 , q3 ,q 4,}, a, b,δ,q0 q4 )
δ(q0 , a ) = q1 δ(q0 , b ) = q1
δ
δ(q1 , a ) = q2
q0, q1, q2
q1 q2 q3
q1 q1 q3
q3 q4
q4 q4
q4 q4
δ(q1 , b ) = q1 δ(q2 , a ) = q3 δ(q2 , b ) = q3 δ(q3 , a ) = q4 δ(q 3 , b ) = q 4 δ(q4 , a ) = q4 δ(q4 , b ) = q4
a
b
JUSTIFICAR EL TIPO DE AUTÓMATA Es un autómata determinístico porque consta de:
Se determina para cada símbolo de entrada, designado como ∑ (a, b). solo se puede ir a una sola etapa
Ejercicio 2: Realizar la conversión del siguiente autómata, si el autómata es AFD convertirlo a AFND y si es AFND convertirlo a AFD, Se debe mostrar el p r o c e d i m i e n t o p a s o a p a s o .
Conjuntos
a
b
A= {0} U {}
= {}
B={1,3}U{2}
B={1,3} U {2}
C= {0,1,3} U {2}
D={2,3} U {2}
C= {0,1,3} U {2}
C= {0,1,3} U {2}
E= {1,2,3} U {2}
D={2,3} U {2}
B={1,3} U {2}
F= {3} U {2}
E= {1,2,3} U {2}
C= {0,1,3} U {2}
D={2,3} U {2}
F= {3} U {2}
F= {3} U {2}
F= {3} U {2}
Tabla Conjunto Conversión AFND a AFD
Fig1. Modelo AFD ejercicio 2
Ejercicio 3:
Teniendo en cuenta el ejercicio anterior, seleccionar el autómata finito determinista (AFD). Con base en ese autómata desarrolle:
1. Describa la forma matemática del autómata, A= (Q, ∑, q0, F, ð). Donde Q = (a, B,C, D, E,F)
∑ = {a,b}
q0= A
F= B,C,F ð = (A, a) = {} ð = (A, b) = B ð = (B, a) = C ð = (B, b) = D ð = (C, a) = C ð = (C, b) = E ð = (D, a) =B ð = (D, b) =F ð = (E, a) = C ð = (E, b) = D ð = (F, a) =F
ð = (F, b) =F
2. Plasme la tabla de transición. Estado
a
b
A
{}
B
#B
C
D
#C
C
E
D
B
F
E
C
D
#F
F
F
3. Identifique los elementos (tupla, estado final, inicial, alfabeto, etc.). Debe explicar y describir cada elemento y la función y significado en el autómata. Conceptos y definiciones adicionales. Tupla; En matemáticas, una tupla es una lista ordenada de elementos. Una n-tupla es una secuencia (o lista ordenada) de n elementos, siendo n un
número natural (entero no-negativo). La única 0-tupla es la secuencia vacía. Una n-tupla se define inductivamente desde la construcción de un p a r o r d e n a d o . La s t u p l a s s u e l e n a n o t a r s e l i s t a n d o s u s e l e m e n t o s e n t r e p a r é n t e s i s s e p a r a d o s p o r
()” separados por comas. Por ejemplo, denota
una 5-tupla. En el caso del AFD del ejercicio está formado por una 5 tupla A= (Q, ∑, q0, F, ð).
Estado Inicial: Es el estado donde el autómata recibe la primera letra de la p a l a b r a y t r a n s i t a a l e s t a d o s i g u i e n t e d e a c u e r d o a l e s t a d o d e t r a n s i c i ó n P a r a e l A F D e l e s t a d o in i c i a l e s A y c a m b i a a l e s t a d o B c u a n d o r e c i b e l a letra del alfabeto “b”
Estado Final: Se define como el estado final en el que el autómata recibido la letra considera la palabra como aceptada Para el AFD se presentan 3 estados de aceptación B (al recibir del estado A la letra “b” ), C (al recibir de los estados E y C la letra “a”) y F (al recibir del estado del estado D la letra “b” o la letra “a” o “b” del estado “F )
Alfabeto: Conjunto de símbolos que recibe el sistema y en autómatas el alfabeto se representa con la letra sigma.∑. Es el lenguaje aceptado por el autómata, denotado como l (M), como {w €∑ | w es
una palabra aceptada
p o r M } Para el AFD ∑ = {a,b}
Cadena Vacía: Una cadena vacía o string vacío (en inglés) es la única cadena de caracteres de tamaño cero. Se denota usualmente con las letras griegas λ
Hacer referencia a una cadena vacía es distinto a hacer referencia a un N u l l , p u e s t o q u e m i e n t r a s q u e c o n e s t e ú l t i m o n o s e p u e d e o p e r a r , e s t a
cadena acepta todas las operaciones existentes para las cadenas de caracteres (concatenación, asignación, extracción, etc.). Para el caso del autómata finito determinista no existen transiciones de vacío, ya que al hacer la unión para transformar el AFND a AFD se unificaron 4. Muestre en el simulador (gráficamente) como recorr e una cadena válida. Explique cada secuencia. (No se trata solo d e captura las imágenes, estas deben ser explicadas en p ié de página o de lo contrario no tienen validez)
5. Muestre el diagrama de Moore generado en JFLAP y en VAS y comente tres similitudes y tres diferencias que encuentra al realizarlo en los dos simuladores. (Ventajas qu e ofrezca uno u otro).
Similitudes JFLAP vs VAS 1. Tanto jflap como Vas permiten hacer conversiones de AFND a AFD
Diferencias JFLAP vs VAS
En Jflap se puede correr múltiples cadenas y verificar cuales son aceptadas y cuales no
En VAS se ingresa de a una cadena
2. Tanto jflap como Vas permiten hacer conversiones de AFND a AFD
En Jflap se puede correr múltiples cadenas y verificar cuales son aceptadas y cuales no
En VAS se ingresa de a una cadena
3. Permiten guardar los diagramas de Moore como archivos de imágenes
3.Permite identificar si una cadena es aceptada o rechazad por el autómata de acuerdo al diagrama de Moore indicado
Realizar seguimiento a una cadena en Jflap es más sencillo ya que ofrece un menú para depuraciones paso a paso, ver depuración de inicio, fin y ver saltos de forma gráfica entre estados, dependiendo de la cadena recibida. En Vas correr y depurar una cadena es menos amigable, solo visualiza mensaje de aceptada o rechazada, o se puede hacer seguimiento de forma grafica como lo hace JFLAP
JFlap presenta en su menú de herramientas una opción para comparar equivalencias, VAS no cuenta con esta opción Jflap ofrece más opciones de creación (autómatas, máquinas de Turing, expresiones regulares, entre otras. En VAS solo se permite manejo de AFD o máquinas de Turing
CONCLUSIONES
El presente trabajo nos permitió como grupo colaborativo realizar el estudio de lo relacionado con Autómatas, enfocándonos en varios campos como lo fueron la identificación de cada uno de ellos, la transición, los elementos que lo componen, el diagrama de Moore y aprendiendo la utilización del simulador para validar el recorrido de las cadenas y secuencias básicas. Esta asignatura es de gran importancia para nosotros como estudiantes de Ingeniería dado que nos enseña a entender y a desarrollar la lógica, lo cual será útil seguramente para la aplicación de los diferentes procesos que se nos puedan asignar en el campo profesional como futuros ingenieros de sistemas.
BIBLIOGRAFIA
Carrasco, R., Calera, R., Forcada, M. (2016). Teoría De Lenguajes, Gramáticas Y Autómatas Para Informáticos. Recuperado dehttp://bibliotecavirtual.unad.edu.co:2051/login.aspx?direct=true&db=nl ebk&AN=318032&lang=es&site=edslive&ebv=EB&ppid=pp_Cover Hernández, R. (2010). Practique la teoría de autómatas y lenguajes formales. (pp. 1 -124). Recuperado dehttp://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?docI D=10566114&ppg=10 Alfonseca, C., Alfonseca, M., Mariyón, S. (2009). Teoría de autómatas y lenguajes formales. (pp. 7-797). Recuperado dehttp://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?docI D=10498456&ppg=6
Millán, J., Antonio J. (2009). Compiladores y procesadores de lenguajes. (pp. 28-62). Recuperado dehttp://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/detail.action?docID =10844351 Ferrando, J.C., and Gregori, V. (2012). Matemática discreta (2a. ed.). (pp. 207-232). Recuperado dehttp://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?ppg= 260&docID=10751543&tm=1481476339478