我正在为学校的一个业余项目制作一个网站,学生可以在其中输入他们需要参加的课程,他们想要或不想上课的日子,以及他们什么时候不能上课或不想上课。基础是有课程,每个课程在不同时间有很多部分,学生可以选择不同的教授。对于新生级别的课程,每个课程可以有30多个不同的部分。我在 mysql 数据库中有类和部分,我一直在用 php 进行编码。
到目前为止,我已经让它工作了,但我想让它更快。我一直在阅读其他调度问题,但我正在寻找我正在做的事情的细节。这不是从头开始制定时间表。它正在根据可用的部分制定时间表,并根据学生的输入对它们进行排名。目前对于少数可能的部分,它运行得很快。但是当可能的时间表达到大约 300,000 时,需要大约 30 秒来比较和排列所有内容。我一直在通过更改时间表的生成方式来改进它,但我想更快。我从蛮力生成切换到使用基于树的方法。
我不是在寻求家庭作业帮助或有人为我做这件事。我只想指出我可以学习的现有问题和算法的正确方向。