代码之家  ›  专栏  ›  技术社区  ›  Checksum

用哪种算法生成学校的时间表

  •  5
  • Checksum  · 技术社区  · 15 年前

    我正在开发一个简单的应用程序,它将为学校生成时间表(每日计划)。我已经读过算法的基础知识,但对从哪里开始感到困惑。

    问题:
    将教师分配到课堂上,要考虑很多限制因素,例如:
    1)主体
    2)教师专业知识
    3)连续不超过2级。等

    不言而喻,不应该有重叠。基本上,我需要分配N个老师到M班,每天有固定的工作时间(8)。

    输入:
    1)班级总数
    2)教师及其专业知识
    3)每节课的科目/课程
    4)每天每节课的授课次数
    5)其他灵活的限制条件,如教师每天的最小/最大工作时间、教师每周的总工作时间等。

    我的问题:
    1)将其视为具有多个约束的分配问题是否正确?
    2)我应该使用哪种算法?(匈牙利算法?)
    3)我应该从一次获取整个约束集开始,然后生成表,还是应该在中间步骤中完成?

    我是一个初学者学习/实现算法,所以任何帮助我指向正确的方向都是非常感谢的!谢谢。