ASP Timetable est une application de planification d'horaires implémentée de manière déclarative à l'aide de Answer Set Programming et du solveur Clingo dans mon cours d'intelligence artificielle. Les horaires sont considérés comme un problème classique d'IA impliquant de nombreuses contraintes, et ce programme aborde les différents défis et considérations nécessaires à la génération des horaires.
atoms.lp
)src
du projet. git clone https://github.com/Adamouization/ASP-Timetable
cd ASP-Timetable/src/
Générez l'ensemble de réponses à l'aide Clingo
et dirigez la sortie vers le script python qui analysera les données et générera une interface graphique : clingo -n 0 asp/timetable.lp asp/atoms.lp --outf=2 | python Timetable.py
où :
clingo
est la commande utilisée pour exécuter la génération de l'ensemble de réponses à l'aide des fichiers AnsProlog spécifiéstimetable.lp
contient les générateurs, les règles, les contraintes et les options d'affichage pour générer l'horaire optimalatoms.lp
contient tous les atomes tels que les cours, les conférenciers, les salles, ...--outf=2
affiche l'ensemble de réponses généré au format JSON|
dirige la sortie JSON dans le script pythonpython Timetable.py
exécute le script Python pour analyser la sortie JSON et créer l'interface graphique Tkinter avec les données de la réponse optimale.Attendez que le calendrier soit généré en ASP et que l'interface graphique soit lancée en Python.
Si vous souhaitez simplement générer l'ensemble de réponses en utilisant clingo sans l'interface graphique de Tkinter :
clingo -n 0 asp/timetable.lp asp/atoms.lp
Si vous souhaitez simplement exécuter les scénarios de test, assurez-vous d'être dans le dossier "src" avant d'utiliser cette commande et remplacez-le par le scénario de test dans le répertoire ASP-Timetable/src/asp/test_cases
:
clingo -n 0 asp/timetable.lp asp/test_cases/.lp --outf=2 | python Timetable.py
Vous pouvez consulter la documentation LANA sur votre navigateur Web (générée à l'aide de l'extension SeaLion Eclipse). Pour ce faire, accédez au dossier documentation
et ouvrez le fichier index.html
dans votre navigateur Web.