El enunciado de la practica aqui:Practica 7 TALF
1.-Encuentra el AFD mínimo que reconoce el lenguaje representado por la expresión regular (RegEx) siguiente (00+10*1+λ)*(1+00)
En JFlap escogemos la opción de expresión regular
introducimos la expresión regular en el cuadro de dialogo
seleccionamos la opción Convert to NFA del menu convert para convertir una expresión regular en un autómata finito no determinista lo que nos creara el siguiente AFND
Convertimos el AFND en un AFD usando la opción “Convert to DFA” del menú Convert
como ultimo paso debemos minimizar el autómata finito determinista la opción para realizar la minimización se encuentre en el menú Convert en la opción minimize DFA
2.-Encuentra el AFD mínimo que reconoce el lenguaje representado por la siguiente gramática, y comprueba si es equivalente al del ejercicio anterior
S → 0A
S → 1C
D → 1C
B → 0B
C → 1S
D → 0A
A → 0D
C → 0B
B → 1S
S →1
D→1
A→0
Introducimos la gramática en JFlap
Pinchamos en Convert –> Convert Right Lineal Grammar to FA nos aparece una ventana donde introducimos la siguiente secuencia Show all -> Done? –> Export
Aparece una nueva Ventana con el FA generado
Seleccionamos el menu test -> compare equivalence –> seleccionamos el AFD minimo del apartado anterior
son equivalentes
3.-Encuentra una expresión regular y una gramática para el lenguaje reconocido por el autómata siguiente
para convertir el autómata en una expresión regular seleccionamos la opción “convert FA to RE” del menú “convert” que nos obligara a añadir un estado final que no sea inicial quedando de la siguiente forma
pinchamos en el botón “Do It” hasta que realice todos los pasos necesarios para la conversión informándonos en este punto con un mensaje con el siguiente text “You’re done. Go away.” momento en el que pincharemos en export que nos mostrara la expresión regular en una nueva ventana.
(b(ab)*+(a+b(ab)*(b+aa))(ba+(a+bb)(ab)*(b+aa))*(a+bb)(ab)*)*
para convertir el autómata en una gramática en la ventana del autómata seleccionamos “Convert to Grammar” en el menú “Convert” y presionamos repetidamente el botón “Hint” repetidas veces hasta que genere la gramática
una vez generada la gramática solo resta pulsar en el botón Export que abrirá una nueva ventana con la gramática
4.-Comprueba que el autómata anterior es equivalente a la siguiente Expresión Regular ((aa+b)(ba)*(a+bb+λ)+ab)*(aa+b)(ba)*+λ
JFlap no puede compara equivalencia entre expresiones regulares por lo tanto debemos transformar la expresión regular en un autómata para eso creamos una nueva expresión regular en JFlap
una vez insertada la expresión regular seleccionamos la opción “Convert to NFA” del menú “Convert”
Una vez generado el AFND solo necesitamos comprobar la equivalencia en el menú “Test” -> “Compare Equivalence” que nos dirá que son equivalentes, en este caso son equivalentes