💡
原文英文,约500词,阅读约需2分钟。
📝
内容提要
我在2023年开发了UniFil的自动排课系统,利用Timefold Solver应对教授工作量不固定、课程多样和教室限制等挑战。经过多次调整,最终在12小时内生成了可行的课程表,显著缩短了原本一个月的时间。未来计划进一步改进系统和约束条件。
🎯
关键要点
- 在2023年开发了UniFil的自动排课系统,利用Timefold Solver应对教授工作量不固定、课程多样和教室限制等挑战。
- 经过多次调整,最终在12小时内生成了可行的课程表,显著缩短了原本一个月的时间。
- UniFil面临的挑战包括教授工作量不固定、课程数量多、教室种类多样及其限制。
- 最初研究了现有解决方案,发现FET Timetable不适合,最终选择了Timefold Solver。
- 在初步实施中,发现多个约束条件实现不当,使用ScoreExplanation功能进行调试。
- 通过优化约束条件,改进了系统性能,采用集合而非列表以提高访问速度。
- 在基准测试中发现OptaPlanner过时,迁移到Timefold Solver后执行时间得到改善。
- 尽管进行了改进,仍面临用户界面不友好和搜索空间过大的挑战。
- 通过减少搜索空间和调整执行策略,最终在约6小时内生成了可行的课程表。
- 未来计划进一步改进系统,重新评估约束条件,并在Timefold上实现超启发式层。
❓
延伸问答
UniFil的自动排课系统是如何应对教授工作量不固定的挑战的?
该系统利用Timefold Solver来处理教授工作量不固定的问题,通过优化约束条件和调整执行策略来生成可行的课程表。
开发UniFil课程表生成器的主要技术是什么?
主要技术是Timefold Solver,它允许开发者构建自定义问题模型并优化排课过程。
在开发过程中遇到了哪些主要挑战?
主要挑战包括用户界面不友好、搜索空间过大以及约束条件实现不当。
如何优化课程表生成的执行时间?
通过减少搜索空间、调整执行策略以及迁移到Timefold Solver,执行时间得到了显著改善。
UniFil的课程表生成器在多长时间内生成可行的课程表?
经过优化后,系统在约6小时内生成了可行的课程表,最终在12小时内完成了生产准备。
未来对UniFil课程表生成器有哪些改进计划?
未来计划进一步改进系统,重新评估约束条件,并在Timefold上实现超启发式层。
➡️