先找个老师问一下排课时要注意避免什么现象再来研究算法会更好些。

解决方案 »

  1.   

    排课非常难的,不是想得那么简单
      

  2.   

    我来大概说说吧。
    首先你要知道你要做的排课系统要符合哪些要求。
    这些要求可以分成两大类:一类是硬要求,即一定要满足的,比如
    说一个老师在同一个时间段,不能上两门课等等。另外一类是软要求,
    即尽量要满足的,比如说如果一门课一个星期要上两次课,那么最好
    这两次课相隔两天以上等等。
    其次,对这些要求,你要进一步形式化,用数学表达式来表达,并进行
    量化,使计算机可以进行评估计算。比如说满足一个硬要求的话,那么该
    方案就得多少分,如果全部满足的话,那么就是得满分了。
    然后,你可以随便给出一个初始的方案(当然,这个方案是不满足需求的)
    然后通过一些调整策略(这是算法的关键),把方案的分值逐步提高,直到
    满足需求为止。
      

  3.   

    一般说来,用枚举法比较简单,速度稍微慢了一点:
    1.先使用最基本的限制条件,缩小枚举的范围(比如:每天的数学课不能超过三节,同一老师不能同时出现在两个教室)
    2.随机安排,并对结果进行评分(比如:方差法)
    3.比较分数是否比上次高,如果是,保留这次结果。重复n遍,就能不断逼近完美。
      

  4.   

    咦,好像和楼上的差不多,嘿嘿……
      

  5.   

    找几个教学辅助软件参照一下,北京四中好象有这方面的演示程序
    有时一个现成的演示过程比说明管用多了