AUTONOMAS Y LENGUAJES FORMALES TRABAJO COLABORATIVO No. 1
TUTOR: ANGELA MARIA GONZALEZ
GRUPO: 301405_59
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA “UNAD” ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA CEAD VALLEDUPAR SEPTIEMBRE 30 DE 2016
INTRODUCCION En el presente trabajo estaremos dando solución a ejercicios planteados sobre Lenguajes y Expresiones Regulares, los cuales nos servirán de mucha utilidad en nuestro desenvolvimiento diario profesional como Ingenieros de Sistemas.
Los lenguajes regulares son los que se pueden generar a partir de los lenguajes básicos con la aplicación de las operaciones de unión, concatenación y * de kleene un numero finito de veces, los expresamos por extensión y por comprensión y puede ser reconocido por un autómata finito determinista, un autómata finito no determinista, un autómata de pila, un autómata finito alterno y una máquina de turing de solo lectura, es generado por una gramática regular y una gramática de prefijos y es descrito por una expresión regular. Las Expresiones Regulares se utilizan para hacer búsquedas contextuales y modificaciones sobre textos, nos sirven para definir lenguajes, imponiendo restricciones sobre las secuencias de caracteres que se permiten en el lenguaje que estamos definiendo.
OBJETIVOS
OBJETIVO GENERAL
Debatir y desarrollar los ejercicios planteados sobre Lenguajes y Expresiones Regulares.
OBJETIVOS ESPECIFICOS
Comprender el tema de lenguajes y expresiones regulares. Dar solución a los ejercicios planteados en la guía. Aplicar los conocimientos adquiridos en los videos expuestos en la plataforma para el desarrollo de los ejercicios.
Problemas a desarrollar: 1. Las expresiones regulares (ER), pueden también escribirse de otras formas o con otra secuencia de operadores o distribución de símbolos. En general es una forma matemática que representa el Lenguaje que genera un Autómata. Y esas expresiones regulares siempre serán válidas siempre y cuando representen exactamente el mismo lenguaje para un Autómata. Concluyendo, para un Autómata, puede haber más de una ER que
representa el mismo lenguaje ya sea que esa ER sea minimizada, extensa, equivalente o como se prefiera escribir. Solo que en los diseños óptimos computacionales siempre se buscará la mejor ER (corta o mínima) para efectos de la mejor simulación o para llevarlas a lenguajes de programación en la creación de soluciones computacionales (solucionar problemas Algoritmos) Dados el siguiente ítem, Autómatas Finitos Deterministas, Autómatas Finitos no Deterministas, lenguajes y expresiones regulares (ER), encuentre según corresponda: 2.
AFN / AFD
LENGUAJE
EXPRESIÓN REGULAR
EJ 1
L={w ∈ {1,0 }¿ }
00 ¿ 00 ¿ ¿ ¿ ¿ ( ¿ ¿¿ ( 1+01 ) 0 1 ) ¿ ER=¿
AFD EJ 2
¿
¿
¿
¿
L={w ∈{1,1 } }
11 10 ¿ 1 1 ER=¿
L={w ∈{1.1}¿ + λ }
11¿ ( 10+ 00 ) ¿ ¿ 11¿ ER=¿
AFND
EJ 3
AFND- ε
1.
2. PARA LA EXPRESION REGULAR: ca*+bb*ab(a+b+cc*b)* SIMPLIFIQUE LA EXPRESIÓN REGULAR Y RESUELVA: 1. Describa la forma matemática del autómata,
c a¿ +b b¿ ab ( a+ b+c c ¿ b )
¿
¿
c a¿ +b b¿ ab ( a+ b(λ +c c¿ ) ) ¿
¿¿
¿
c a +b b ab ( a+ b c )
c a¿ + λ +b b¿ ab ( a+b c ¿ ) ¿
¿
¿
¿¿
c a +b b ( a+ b c ) a ¿
c a¿ + λ +b¿ b ( a+b c ¿ ) a ¿
c a¿ +b ¿ ( a+b c¿ ) a λ=({c }{a }n ∪ {b }m ( { a } ∪ { b } {c }r ¿t { a }|n , m, r , t ≥ 0)
Autómata de la
ER=ca∗+bb∗ab (a+b +cc∗b)∗¿
Simplificación: ER=ca∗+bb∗ab ( a+b )∗+bb∗ab( cc∗b)∗¿
2. Plasme la tabla de transición. Identifique que tipo de autómata es (AFD o AFND) y justifique su respuesta. (No se trata de dar el concepto de determinismo sino de justificarlo asociando la respuesta al diseño del autómata)
∑ {a ,b , c } q ->q0 q1 q2 q3 *q4 *q5
a q2
q4 q3, q5
b q1 q0,q1 q5 q5, q3
c q4
q3
El autómata es AFND ya que tiene varias transiciones para llegar al estado final
3. Identifique los elementos (tupla que es) (Asociadas con los elementos del autómata del ejercicio propuesto). Debe explicar y describir cada elemento y la función y significado en el autómata. Conceptos y definiciones adicionales.
Elementos Tupla
M
K ∑
S
F
δ
Definición Es una secuencia de valores agrupados. Una tupla sirve para agrupar, como si fueran un único valor, varios valores que, por su naturaleza, deben ir juntos. M (K, ∑, δ. S, F)
{q0, q1, q2, q3, q4, q5} aquí se identifica el conjunto de estados del autómata. Es un conjunto finito de símbolos {1,0, λ} este corresponde al alfabeto de entrada. En nuestro caso esto quiere decir la cadena que ingresamos para que nuestro autómata realice sus respectivas validaciones Es el elemento de �0, llamado estado inicial. Para nuestro caso este estado como su nombre es indicado como estado inicial, es por donde la cadena ingresada realizara su primera validación o transición. Es un subconjunto de �, llamado conjunto de estados finales o de aceptación, en este caso es q5. Esto quiere indicar que este es el último estado de nuestro autómata permitiéndonos conocer si la cadena ingresada es aceptada o rechazada. La relación de transiciones para llegar a otro estado
4. Identifique el lenguaje que genera.
L={ ω ∈ { a ,b , c } ca∗¿ bb∗ab (a∨b∨cc∗b) ¿ } El lenguaje generado por extension
5. Muestre en el simulador (gráficamente) como recorre una cadena válida. Explique cada secuencia. (No se trata solo de captura las imágenes, estas deben ser explicadas en pié de página o de lo contrario no tienen validez)
Grafico No. 1
1
Grafico No. 2
1Inicio de la secuencia en (q0) con la cadena (bbbabaabbcccb)
2
2Al ingresar el símbolo (b) al estado (q0) nos lleva al estado (q1)
Grafico No. 3
3
Grafico No. 4
4
3Al ingresar el símbolo (b) al estado (q1) nos lleva al estado (q1) 4Al ingresar el símbolo (b) al estado (q1) nos lleva al estado (q1), ya que
se ingresa dos veces
Grafico No. 5
5
Grafico No. 6
6
5Se ingresa el símbolo (a) al estado (q1) y nos lleva al estado (q2) 6Al estado (q2) se le ingresa el símbolo (b) y nos lleva al estado (q5) Estado de aceptación, pero la cadena continua.
Grafico No. 7
7
Grafico No. 8
8
7Al estado (q5) se le ingresa el símbolo (a) y nos lleva al estado (q5)
Estado de aceptación o ciclo repetitivo, pero la cadena continua. 8 Al estado (q5) se le agrega el símbolo (a) nuevamente y nos lleva al
estado (q5)
Grafico No. 9
9
Grafico No. 10
10
9Al estado (q5) se le agrega el símbolo (b) y lo lleva al estado (q5), ya
que la en la ER tenemos la estrella de Kleene (*) que nos permite hacer estos ciclos repetitivos. 10Nuevamente se agrega el símbolo (b) al estado (q5) y nos lleva al
estado (q5)
Grafico No. 11
11
Grafico No. 12
12
11Al estado (q5) le agregamos el símbolo (c) y nos lleva al estado (q3) 12Al estado (q3) le agregamos una (c) y nos lleva al estado (q3)
Grafico No. 13
13
Gráfico No. 14
13Al
estado (q3) le agregamos el símbolo (c) nuevamente y nos lleva al estado (q3)repitiendo el ciclo14Al Estado (q3) le ingresamos el símbolo (b) y este nos lleva al estado final o de aceptación (q5), terminando la secuencia, así demuestra que la cadena es válida
6. 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. (Herramientas que ofrezcan uno u otro). Diagrama De Moore JFLAP
Diagrama De Moore VAS
Similitudes 1. Cada simulador nos permiten crear AFD y AFND. 2. Los dos simuladores nos permiten observar el recorrido paso a paso de un autómata. 3. Los dos simuladores permiten la conversión a formato de imagen. Diferencias En cambio en jflap va colocando el Con el Diagrama de Moore Vas Al estado según el orden que tenga insertar los estados el simulador q0, q1,q2 etc nos pide colocar a que numero de estado se refiere
En Jflap se le dificulta sacar la lista de las transiciones, ya que genera otras letras a los estados a lo que uno originalmente pone. Jflap es muy completo para generar un autónoma ya que posee muchos menús de opciones.
En vas de una forma clara se puede sacar un listado de transiciones. Vas es un simulador muy limitado, ya que no tiene varias de las funciones que maneja jflap
JFLAP
VAS
Posee la opción de convertir de AF a No posee esta opción expresión regular Tiene 11 opciones para escoger la que Tiene 2 opciones para empezar a se requiere para empezar a trabajar. trabajar. No permite transiciones.
mostrar
tabla
de Permite visualizar transiciones.
Permite establecer si una cadena es aceptada o rechazada por el autómata 7. Genere tres cadenas válidas y dos no válidas.
la
tabla
de
3. Teniendo en cuenta el siguiente autómata identifique si es AFD o AFND, Si es un AFD genere un AFND que reconozca el mismo lenguaje; o por lo contrario si el autómata inicial es un AFND, genere un AFD que reconozca el mismo lenguaje
El autómata anterior es un autómata finito no determinista. Podemos convertir en un autómata finito determinista que sería:
En este caso reconocen el mismo lenguaje 1. Describa la forma matemática del autómata M =( { q0 q 1 q 2 q 3 } , {1,0 } , δ ,q 0 { q2 } )
2. Identifique los elementos (tupla que es) (Asociadas con los elementos del autómata del ejercicio propuesto). El autómata m finito está dado por M = (Σ, K, q0, δ, F)
K = {q0, q1, q2, q3} Identifica los estados que puede tener la máquina Σ = {0,1} Identifica el alfabeto de entrada s = q0 Es el estado inicial de la máquina F = q1,q2,q3 Estados finales
Donde la función δ: (q0, q1, q2, q3) × (1,0) → (q0, q1, q2, q3) → q0 → q1→ q2 → q3 viene dada por las transiciones δ(q0, 1) =q1 δ(q1, 1) =q2 δ(q2, 0) =q2 δ(q2, 1) =q2 final
3. Muestre en el simulador (gráficamente) como recorre una cadena válida. Explique cada secuencia. (No se trata solo de captura las imágenes, estas deben ser explicadas en pié de página o de lo contrario no tienen validez) La cadena es: 1101
En esta imagen podemos apreciar que el autómata inicia en q0 que es el estado inicial y pasa a q1 denotado con el alfabeto 1 como lo muestra la siguiente imagen
Po demos mirar que del estado q1 paso a q2 por medio del alfabeto 1 y se queda ahí haciendo el ciclo en q3
Para concluir hace el ciclo repetitivo en q2 pasando por la cadena 01 en donde finaliza y tenemos una cadena valida
5. Identifique la ER asociada al nuevo diseño y compárela con la expresión regular simplificada (es decir analícelas con dos cadenas válidas y con dos no válidas). Para ello debe identificar en una tabla la jerarquía de operadores regulares, identificando con colores las sentencias matemáticas.
ER autómata finito no determinista= (1*1(1+0)*(10+00))*1*1(1+0)* ER autómata finito determinista= 1+11(1+0)*+101*(λ+0(1+0)*) Cadena que recibe: 1101 (1*1 11
(1
+
0)*
(10
+
00))*(1 0
+
00))*1*1( 1
01
CONCLUSIONES
+
0)*
Con la realización del anterior trabajo me queda más claro el manejo de lenguajes regulares y expresiones regulares con las cuales me di cuenta que por muy complejas que sean las expresiones están siempre tienen la meta de cumplir un requerimiento dado.