Beruflich Dokumente
Kultur Dokumente
Integrantes:
Marco lvarez, Fabin Cataln, Jorge Obando
Profesor del curso:
Mara Eliana de la Maza W.
Fecha de entrega:
Jueves 14 de Abril, 2016
[0] ndice
Contenido
[0]
ndice..............................pgina 1
[1]
Introduccin...............................pgina 2
[2]
Desarrollo
[2.1] Especificacin de Mtodos y algoritmos..............................pgina 3
[2.2] Estructuras de Datos utilizadas.................................pgina 3
[2.3] Creacin de una transicin................................pgina 4
[3]
[4]
Conclusin......................................................................................................pgina 12
[5]
Bibliografa................................pgina 13
Pgina 1
Introduccin
Un autmata finito determinista (abreviado AFD) es un autmata finito que
adems es un sistema determinista; es decir, para cada estado en que se encuentre el
autmata, y con cualquier smbolo del alfabeto ledo, existe siempre a lo ms una transicin
posible desde ese estado y con ese smbolo.
Est formado por:
1. Un conjunto finito de estados, a menudo designado como Q.
2. Un conjunto finito de smbolos de entrada, a menudo designado como (sigma).
3. Una funcin de transicin que toma como argumentos un estado y un smbolo de
entrada y devuelve un estado como salida. La funcin de transicin se designa
habitualmente como (delta). Los argumentos de entrada NO deben repetirse para
conservar el determinismo del autmata.
4. Un estado inicial es uno de los estados de Q.
5. Un conjunto de estados finales o de aceptacin F. El conjunto F es un subconjunto
de Q.
En este informe se especificar el funcionamiento de un software que simule un AFD,
usando una interfaz visual grata para el cliente, junto con los mtodos principales que hacen
poner en marcha la simulacin de nuestro autmata finito determinista.
Pgina 2
[2] Desarrollo
[2.1] Especificacin de Mtodos y algoritmos:
Nuestro Software contar con 5 mtodos fundamentales para el funcionamiento de nuestra
simulacin del autmata:
Crea un QString con los parmetros extrados de los campos pertinentes(ver seccin
2.2) registrndolo de la forma que determinamos en la seccin 2.2. Esta cadena se
pasa a la lista grfica, guardndose como un tem dinmico de ella.
Recorre una palabra ingresada por usuario, verificando que cada letra de ella
pertenezca al alfabeto(almacenado como QString) y que adems, retorne un estado
de salida por cada una de ellas. Si se llega a la palabra final con un estado
resultante y adems sea un estado final, entonces acepta la palabra, retornando
verdadero. Si una de las condiciones subrayadas no se cumple, entonces la palabra
no es aceptada y el algoritmo finaliza retornando un booleano falso.
Recorre la lista de estados finales, comparando los tems de la lista con el estado
ingresado. Si el estado es un estado final, retorna true, false sino.
Cabe mencionar que los mtodos declarados ac, son llamados desde eventos de botones,
eventos de cambio de tem de listas, de comboboxs e incluso del campo de smbolos. Cada
evento tiene sus propias sentencias que, no son de relevancia en el funcionamiento del
algoritmo, ms bien, son para mejorar la visualizacin grfica del programa, por lo tanto, no
fueron incluidas en este apartado.
.
Pgina 3
Cabe mencionar que se hacen validaciones internas como, verificar que el usuario haya
seleccionado un estado en los comboboxs y si ingres algn simbolo distinto de blanco en
el campo de smbolos.
Pgina 4
El programa posee un archivo ejecutable al cual se le debe hacer doble click para que el
programa comience.
Una vez ejecutado el programa aparecer en pantalla un mensaje de bienvenida al usuario, antes de
iniciar la pantalla principal del programa.
Una vez iniciado el programa se debe seleccionar el estado inicial el cual puede ser desde q0 hasta
q99.
Una vez seleccionado se deber agregar los estados finales uno por uno a la Lista que aparece en
pantalla.
Pgina 5
Pgina 6
Cuando se finalice de ingresar los estados finales se debe clickear el botn con el check para
acceder a la siguiente pestaa.
Las transiciones se ingresan con el siguiente formato: Estado entrada, Letra del alfabeto, Estado de
llegada. As como se muestra en la imagen.
Pgina 7
En caso de error solo se debe seleccionar la transicin y luego hacer click en el botn editar
en el caso de que se quiera cambiar la transicin, y si desea eliminar una transicin,
simplemente debe pulsar el botn con un tacho de basura
Una vez ingresada una transicin se desbloqueara el segmento donde se puede ingresar la palabra
deseada.
Una vez ingresada la palabra se puede, hacer click en el botn con el ticket para analizar la palabra,
o hacer click en el botn con el tacho de basura para borrarla.
Pgina 8
Una vez ingresada la palabra y hecho click en el botn para analizar la palabra se mostrara una
ventana que le dir al usuario si su palabra es aceptada por el autmata o no.
Pgina 9
Adems existe un cuadro de ayuda para el usuario donde aparece el lenguaje del autmata y las
posibles letras iniciales de una palabra aceptada por el autmata.
Para ms ayuda para el usuario adems se implement una caja inferior donde se mostraran tips
para ayuda a la ejecucin ptima del programa.
Pgina 10
Tambin hay tips si se coloca el mouse sobre algunos botones en el caso de que no comprenda que
hacer a continuacion
Pgina 11
[4] Conclusin
Como bien vimos en clases los autmatas finitos deterministas nos ayudan para
determinar el lenguaje aceptado por una mquina, decimos que un AFD acepta una palabra
si y solo si de un estado inicial existe siempre a lo ms una transicin posible desde ese
estado y con ese conjunto de smbolos, llegando a un estado que debe ser final. A travs
de este programa, logramos entender que un autmata se comporta como una funcin de
validacin pues, recibe un parmetro de entrada (palabra) y esta se analiza mediante
funciones de transiciones finitas definidas por el propio usuario, que en conjunto logran
analizar palabras.
Despus de haber culminado el software y tras muchas pruebas en donde
ingresbamos palabras, concluimos que nuestro programa logra lo pedido, aceptando o
rechazando la palabra bien sea el caso. Adems cabe destacar que posee un diseo
intuitivo y de fcil comprensin; pero si en algn momento el usuario no entendiese algo
hemos aadido un manual explicativo.
Unas de herramientas que utilizamos a la hora de programar y que nos fue de gran ayuda
fue el Qt 5+, que gracias a su fcil programacin en el rea de interfaz grfica y apoyado en
el lenguaje C++ logramos desarrollar un software limpio y eficaz.
Pgina 12
[5] Bibliografa
Pgina 13