我在想如何安排10,000名学生在两周内参加考试,并确保没有学生连续参加两个考试时段。我假设需要应用某种启发式方法。
我们所知道的是:
1. 学生人数以及他们各自注册的课程。 2. 考试时段的数量。
我们所知道的是:
1. 学生人数以及他们各自注册的课程。 2. 考试时段的数量。
我知道这个问题与SO的主题无关,但我的大学安排考试的时间块与上课时间相匹配。因此,每个星期一、三、五下午1:20上课的学生在15日下午1:00参加考试。由于不能同时上两门课程,所以不可能出现考试冲突。
这是一个约束满足问题的示例,它属于一类困难的问题。其中一些问题属于NP类。存在大型商业软件包(例如CPLEX)来尝试解决这些问题 - 通常使用一些数学和大量的启发式方法。
如果您被阻塞,可以通过对初始解决方案进行重要更改来“访问”其他解决方案。
但是,这意味着您仍然需要安排课程,以使它们不冲突。 :)