在此先行谢过!

解决方案 »

  1.   

    首先是排课的条件,也就是
    是约束。
    比如:
    体育课不能安排在上午1,2节;
    数学课一定要在上午;
    同一门功课不能连续2天都有;
    xxx老师家远,只能安排3,4节或者下午1,2节;
    等等,
    现在关键的难点是如何描述这个约束,保这些条件合理的描述出来。然后再就是课程安排的回溯算法,
    抽取一门功课、一个时间、一个教室,然后检查这些条件,满足则继续下一个功课、教室和时间,不满足则回退,根据不满足的条件决定是修改教室还是时间还是功课,
    直到全部的可能安排结束。条件越少,结果越多,速度越快,解不唯一,而且不一定是最优解,但一定是满足条件的解。
    条件过多可能导致无解,
    目前一般的这类排课的商业软件通常排一个学校的课程需要几个小时。你按照上面的思路去考虑,,, 应该可以解决.