PROYECTO DE AUTOMATAS Y LENGUAJES FORMALES
TEMA: AUTOMATAS FINITOS DETERMINISTAS
CATEDRATICO: ING. MARCO ANTONIO CULAJAY
ENUNCIADO
Este proyecto consiste en la implementación de un programa para el cual se proporciona un AFD
codificado en notación XML en formato de texto, El mismo debe mostrar por pantalla sus
elementos: Conjunto de estados S, Conjunto de símbolos Σ, conjunto de estados finales de
aceptación F, estado inicial s y la matriz de transición.
Además, el programa por pantalla, debe pedir una cadena de caracteres y decir si ésta puede
ser generada por el autómata. Debe mostrar una trazabilidad de los estados que ha visitado
desde el inicial hasta donde le permita llegar el autómata.
Codificación del autómata en el archivo plano
• Los estados del AF estarán etiquetados con números enteros
• El alfabeto válido será [a-z0-9], si se encuentra un carácter diferente el programa debe
detectar la inconsistencia y generar un mensaje de error al respecto.
• Las transiciones, una por línea, se codificarán de acuerdo a la secuencia n a m, donde
n y m representan los estados origen y destino de la transición, y a representa cualquier
símbolo de entrada. Los 3 elementos estarán separados por una coma (,).
• El orden en el que se muestren las transiciones y los estados de aceptación es
indiferente.
• El programa debe validar que el AF sea un AFD, es decir que de un estado sólo haya
una transición con el mismo símbolo a otro estado o a él mismo, no puede haber dos
transiciones con el mismo símbolo a estados diferentes. Si esto sucede cuando cargue
el archivo debe mostrar un mensaje al respecto.
A continuación, se muestra un ejemplo de cómo estaría estructurado el archivo:
<AUTOMATA_AFD>
<ALFABETO>
a
b
</ALFABETO>
<ESTADO>
0
1
2
</ESTADO>
<INICIAL>
0
</INICIAL>
<FINAL>
1
2
</FINAL>
<TRANSICIONES>
0,a,1
0,b,2
1,a,1
2,b,2
</TRANSICIONES>
</AUTOMATA_AF>
OBSERVACIONES:
• Los estudiantes podrán formar grupos máximo de 3 personas y elegir el lenguaje de
programación de su preferencia.
• Este proyecto se entregará el día 29 de octubre
• Se debe presentar un informe técnico máximo de 5 hojas:
• Marco teórico de los Autómatas Finitos
• Justificación de la elección del Lenguaje de Programación utilizado
• Objetivo de las estructuras de datos más importantes utilizadas
• Función de cada subrutina importante utilizada
• Dificultades que tuvo y cómo las resolvió
• Grupo que copie un programa de otro tendrán ambos grupos una calificación de 0.0
• Necesariamente se debe leer del archivo texto en formato XML, NO se aceptará
pedir por pantalla, los datos del AF
• No se aceptan programas bajados del Internet