Este proyecto tiene como finalidad la aplicación de la teoría de Autómatas Finitos No Determinísticos (AFN) con representación matricial, reconocimiento de cuerdas y conversión de AFN a AFD. El desarrollo se hará completamente en Java, siguiendo las especificaciones detalladas en este documento.
El proyecto es obligatorio y debe ser presentado en grupos de máximo 3 integrantes. Es imperativo que el grupo del Proyecto No. 2 sea el mismo para el Proyecto No. 3, dado que ambos proyectos están interconectados.
- La implementación debe hacerse en la clase
AFN.java
. - Los métodos a implementar incluyen:
- Constructor que acepte la ruta del archivo con la definición del AFN.
- Método
boolean accept(String cuerda)
que determine si una cadena es aceptada. - Método
main
para ejecución interactiva y procesamiento del AFN. - Método
toAFD(String afdPath)
para convertir el AFN a AFD y guardar el resultado.
- Para ejecutar y probar el AFN:
$ java AFN nombre_del_afn
- Para convertir el AFN a AFD:
$ java AFN nombre_del_afn -to-afd PATH_DEL_ARCHIVO_DE_SALIDA
- El archivo
.afn
incluirá:- Símbolos terminales en la primera línea, separados por comas.
- Cantidad de estados y estados finales en las siguientes líneas.
- Matriz de transición con transiciones para cada símbolo, incluido lambda.
- Fecha de entrega: 14 de abril de 2024.
- Método de entrega: A través de GES, subir una carpeta comprimida
.zip
con los archivos.java
. - Importante: Asegurarse de que el código compila correctamente.
- No se permiten tildes en las variables ni en los comentarios.
- Se valorará la capacidad de realizar pruebas autónomas y verificar la correctitud del AFN y su conversión a AFD.