【问题标题】:Class scheduling课程安排
【发布时间】:2012-06-21 15:20:07
【问题描述】:

问题是这样的:

一所学校有不同的班级。每节课都有每周安排(8 小时英语、6 小时数学、2 小时美术等)。每位教师在一部分课程中都有一定的小时数。 (我猜学校几乎到处都是这样)。

可以添加一些额外的约束,例如:

  1. X 老师周一不上班
  2. Y老师在某个班级需要连续两个小时 等等。

目标是找到一个针对约束优化成本函数的时间表。

我猜这是一个经典的 NP 问题。它可以使用空间状态搜索来解决(我们尝试所有可能的组合,使用一些智能的搜索方式,并选择可能的最佳解决方案)。

  • 这可行吗? (组合是巨大的,对于 10 节课,每节课 30 小时和 7 门科目,它大约是 10^253,即使可以进行一些实质性的修剪:我猜 SAT 求解器可以处理类似的事情)。

  • 是否有任何替代方法可以完成搜索,即使是近似的?

【问题讨论】:

    标签: algorithm search


    【解决方案1】:

    这是 Constraint Satisfaction Problem。如链接中所述,解决这些问题的方法之一是使用本地搜索方法,例如 min-conflictsforward checking。不能保证您获得最佳解决方案,但您通常会在相对较短的时间内获得“良好”的解决方案。

    如果您碰巧使用 Prolog,clpfd 库(有限域上的约束逻辑编程)非常强大。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      • 2011-07-04
      相关资源
      最近更新 更多