ASP Timetable es una aplicación de programación de horarios implementada de manera declarativa utilizando la Programación de conjuntos de respuestas y el solucionador Clingo de mi curso de Inteligencia artificial. La programación de horarios se considera un problema clásico de la IA que implica muchas restricciones, y este programa aborda los diferentes desafíos y consideraciones que intervienen en la generación de horarios.
atoms.lp
)src
del proyecto. git clone https://github.com/Adamouization/ASP-Timetable
cd ASP-Timetable/src/
Genere el conjunto de respuestas usando Clingo
y canalice la salida al script de Python que analizará los datos y generará una GUI: clingo -n 0 asp/timetable.lp asp/atoms.lp --outf=2 | python Timetable.py
donde:
clingo
es el comando utilizado para ejecutar, generar el conjunto de respuestas utilizando los archivos AnsProlog especificados.timetable.lp
contiene los generadores, reglas, restricciones y opciones de visualización para generar el horario óptimo.atoms.lp
contiene todos los átomos, como cursos, profesores, salas, ...--outf=2
genera el conjunto de respuestas generado en formato JSON|
canaliza la salida JSON al script de Pythonpython Timetable.py
ejecuta el script Python para analizar la salida JSON y crear la GUI de Tkinter con los datos de la respuesta óptima.Espere hasta que se genere el cronograma en ASP y se inicie la GUI en Python.
Si solo desea generar el conjunto de respuestas usando clingo sin la GUI de Tkinter:
clingo -n 0 asp/timetable.lp asp/atoms.lp
Si solo desea ejecutar los casos de prueba, asegúrese de estar en la carpeta "src" antes de usar este comando y reemplácelo con el caso de prueba en el directorio ASP-Timetable/src/asp/test_cases
:
clingo -n 0 asp/timetable.lp asp/test_cases/.lp --outf=2 | python Timetable.py
Puede ver la documentación de LANA en su navegador web (generada con la extensión SeaLion Eclipse). Para hacerlo, vaya a la carpeta documentation
y abra el archivo index.html
en su navegador web.