ASP Timetable
1.0.0
ASP Timetable是一个时间表应用程序,使用答案集编程和 Clingo 求解器以声明方式实现我的人工智能课程。时间表被认为是一个涉及许多约束的经典人工智能问题,该程序解决了生成时间表时遇到的不同挑战和考虑因素。
atoms.lp
中指定)src
文件夹。 git clone https://github.com/Adamouization/ASP-Timetable
cd ASP-Timetable/src/
使用Clingo
生成答案集,并将输出通过管道传输到 python 脚本,该脚本将解析数据并生成 GUI: clingo -n 0 asp/timetable.lp asp/atoms.lp --outf=2 | python Timetable.py
其中:
clingo
是用于运行使用指定的 AnsProlog 文件生成答案集的命令timetable.lp
包含生成器、规则、约束和显示选项以生成最佳时间表atoms.lp
包含所有原子,例如课程、讲师、房间……--outf=2
以 JSON 格式输出生成的答案集|
将 JSON 输出传输到 python 脚本中python Timetable.py
运行 Python 脚本来解析 JSON 输出并使用最佳答案中的数据创建 Tkinter GUI。等待在 ASP 中生成时间表并在 Python 中启动 GUI。
如果您只想使用 clingo 生成答案集而不使用 Tkinter GUI:
clingo -n 0 asp/timetable.lp asp/atoms.lp
如果您只想运行测试用例,请确保在使用此命令之前位于“src”文件夹中,并替换为ASP-Timetable/src/asp/test_cases
目录中的测试用例:
clingo -n 0 asp/timetable.lp asp/test_cases/.lp --outf=2 | python Timetable.py
您可以在 Web 浏览器上查看LANA文档(使用 SeaLion Eclipse 扩展生成)。为此,请转至documentation
夹并在 Web 浏览器中打开index.html
文件。