ASP Timetable ist eine Stundenplananwendung, die deklarativ mithilfe von Answer Set Programming und dem Clingo-Löser meines Kurses „Künstliche Intelligenz“ implementiert wird. Die Zeitplanung gilt als klassisches KI-Problem mit vielen Einschränkungen, und dieses Programm befasst sich mit den verschiedenen Herausforderungen und Überlegungen, die bei der Erstellung von Zeitplänen eine Rolle spielen.
atoms.lp
“)src
Ordner des Projekts. git clone https://github.com/Adamouization/ASP-Timetable
cd ASP-Timetable/src/
Generieren Sie den Antwortsatz mit Clingo
und leiten Sie die Ausgabe an das Python-Skript weiter, das die Daten analysiert und eine GUI generiert: clingo -n 0 asp/timetable.lp asp/atoms.lp --outf=2 | python Timetable.py
wo:
clingo
ist der Befehl, mit dem der Antwortsatz mithilfe der angegebenen AnsProlog-Dateien generiert wirdtimetable.lp
enthält die Generatoren, Regeln, Einschränkungen und Anzeigeoptionen zur Generierung des optimalen Stundenplansatoms.lp
enthält alle Atome wie Lehrveranstaltungen, Dozenten, Räume, ...--outf=2
gibt den generierten Antwortsatz im JSON-Format aus|
leitet die JSON-Ausgabe an das Python-Skript weiterpython Timetable.py
führt das Python-Skript aus, um die JSON-Ausgabe zu analysieren und die Tkinter-GUI mit den Daten der optimalen Antwort zu erstellen.Warten Sie, bis der Zeitplan in ASP generiert und die GUI in Python gestartet wird.
Wenn Sie den Antwortsatz nur mit Clingo ohne die Tkinter-GUI generieren möchten:
clingo -n 0 asp/timetable.lp asp/atoms.lp
Wenn Sie nur die Testfälle ausführen möchten, stellen Sie sicher, dass Sie sich im Ordner „src“ befinden, bevor Sie diesen Befehl verwenden, und ersetzen Sie ihn durch den Testfall im Verzeichnis ASP-Timetable/src/asp/test_cases
:
clingo -n 0 asp/timetable.lp asp/test_cases/.lp --outf=2 | python Timetable.py
Sie können die LANA- Dokumentation in Ihrem Webbrowser anzeigen (erstellt mit der SeaLion Eclipse-Erweiterung). Gehen Sie dazu in den documentation
und öffnen Sie die Datei index.html
in Ihrem Webbrowser.