这是我长时间在脑海里想的一个问题。作为老师和程序员的儿子,早在我看来......但我仍然没有找到解决方案。老师时间表计算法
所以这是问题所在。需要使用一些限制条件为学校创建时间表。这些通常分为两类:
完整性检查
- 一位教师在同一时间
- 的学生无法遵循两个教训,同时不能教两个班
- 有的教师每周必须至少休息一天
- 本周的所有日子都应该包含在时间表
- 主题X每星期
- 必须恰好某某小时左右...
首
- 每个老师的进度安排应该尽可能紧凑型(即老师应该连续工作一整天,如果可能的话不间断)
- 有休息日的教师应该能够表达对哪一天的偏好
- 兼职工作的教师应该能够表达是在上课还是在上课结束时工作的首选。
- ...
现在,几年后没有找到一个解决方案(在此期间...学习一两件事),我意识到,这闻起来像一个NP-hard问题。
是它证明是NP难?
有没有人对如何破解这件事情的想法?
看着this问题让我思考这个问题,以及是否遗传算法是在这种情况下使用。然而,在保持完整性检查规则的同时,改变可能性是相当困难的。此外,我不清楚如何区分不兼容的要求。
一个小的附录,以更好地指出问题。这适用于意大利学校风格的教室,所有学生都有不同的班级(例如:第1年A部分),老师在班级之间转移。所有同班同学都有相同的时间表,无法选择参加哪一课。
这是一个非常具体的问题,以找到独立证明的NP难。你可能会有更好的运气,寻找一个可能证明NP难度的约束较少的问题。首选项不会影响其复杂性,除非您可以指定一些度量标准(如教师始终可以关闭他们的首选日期)。 – 2010-10-11 21:40:49