[阅读: 1176] 2006-05-07 13:41:53
在网络上搜寻了一下,什么贪婪算法,遗传算法,都是TMD乱七八糟,还是在这里请叫一下各位大牛.具体要求
要求:(1)系统可以进行两节连课处理或者不连课;
(2)排出的课程表中不允许有教师冲突的情况,比如,一个教师同时给两个班级上课是不允许的;主课不允许
(3)要求课程表中的课程要有所变化,比如一个班级的所有数学课总是排在上午第一节课是不好的课程表。(4)每周上课天数可以是5天,五天半,也可以是六天,六天+下午1,2节等等,也可以星期天,每天上课节数可以是4,5,6,7节或是8节,9节10节;也可以只定义上半天课。
(5)每个年级所开课程可以一样的,也可以不一样,对部分学校有什么火箭班,快班什么的,他们可能增加了新的科目。比如,初一上去就给他们开了物理化学,而且所开课程可以变化;
(6)一个教师可以教授多门课程;
(7)系统可以为每个班级和每位教师打印课程表;
(8)教师能够同时教多个班级,比如体育,一个教师能够同时上多个班级的;
(9)在课表生效后,教师可以要求调课;
(10)教师数量是动态的,所开课程的数量也是动态的。
(11)教师不能指定教那几个班级,不许由系统生成
(12)教师上课位置尽量分算,比如,数学每个老师每天都要上,但是不能将他排在每天第一节课,这种不是最优算法,尽量每个老师每周课在不同地方出现。也可以指定每个老师在哪天没有课,哪个老师在哪天必须被安排在那节课。
具体操作如下:
系统设置需要设置以下功能:
1, 设置每个年级的每个科目有多少教师
2, 设置每个年级有多少班级。然后自动将这多老师分成教每个班级,在分以前可以设置指定任何一个老师预先教哪个班级,但是指定的不一定指定完,系统可能要求其在教其他班级。
我大致整理一下,具体实现也有难度,估计中间也还要很多需要增加的,你也帮助想想。