C cm Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-08 #2 没有做过。 我们原来一个老师做过, 好像要用到二分图。 对教室,班级进行匹配。
航 航宇 Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-09 #4 既然复杂那大家就来讨论讨论啊~~~大家一起思考再复杂的东西也会清晰的啊!! 楼上说用二分图,那么从星期一到星期五这个时间是怎么排呢! 而且教室和班级匹配了,那时间呢?应该是在一天的那几节上课呢?
B barton Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-09 #6 都不吭气? 我写过一个排课系统。基本思路可能有点笨:穷举法。 每周几天课、每天几节课是排课空间。排课一般根据五个主要条件:班级、课程、课时、 教师、教室。还有一些因子,例如:如果某门课周周节数超过天数可以连堂;某些课程 优先,尽量排在上午;合班课最优先排;某节次某教室或者某教师不能排课;等等。 排课因子应该根据实际要求可以随意添加。 穷举法是基于计算机各种方案的计算时间有限这么一个基础。先随机试一个方案,如果 发现冲突则不能够满足要求,放弃这个方案再选另一方案,直到满足所有条件并尽可能 符合排课因子。 最后提供一个调整的方案,用户可以手工再调整某节课,在有冲突的时候提示用户冲突 原因。
都不吭气? 我写过一个排课系统。基本思路可能有点笨:穷举法。 每周几天课、每天几节课是排课空间。排课一般根据五个主要条件:班级、课程、课时、 教师、教室。还有一些因子,例如:如果某门课周周节数超过天数可以连堂;某些课程 优先,尽量排在上午;合班课最优先排;某节次某教室或者某教师不能排课;等等。 排课因子应该根据实际要求可以随意添加。 穷举法是基于计算机各种方案的计算时间有限这么一个基础。先随机试一个方案,如果 发现冲突则不能够满足要求,放弃这个方案再选另一方案,直到满足所有条件并尽可能 符合排课因子。 最后提供一个调整的方案,用户可以手工再调整某节课,在有冲突的时候提示用户冲突 原因。
一 一条大鱼 Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-09 #8 把每天分为12节课,早上5节,下午4节,晚上3节 首先全置0,如排了课就在相应的位上置1, 这样一天的课就表示为一个二进制数 也很容易知道哪一节是没有排课的 这只是我想到的其中一个算法,但更复杂的还在后面,太难了
把每天分为12节课,早上5节,下午4节,晚上3节 首先全置0,如排了课就在相应的位上置1, 这样一天的课就表示为一个二进制数 也很容易知道哪一节是没有排课的 这只是我想到的其中一个算法,但更复杂的还在后面,太难了
航 航宇 Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-09 #9 首先谢谢大家的参与!! 但是我说的排课是大学里的排课不是中学里排课!!! 像大学的课,一门课一个星期要上五节课的话,不是天天上,每天上一节课,而是分两次上啊 以(2+3,3+2)的形式上的
航 航宇 Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-09 #10 另外教室还要分多媒体教室和一般教室! 有的课还可能有实验课,学计算机课程的课还要有上机课! 大学里的不是每个班都有自己的教室,学校里的教室是不够每个班轮到一个的!要协调啊!! 反正就是有很多问题了!! 大家就畅所欲言了!!!
另外教室还要分多媒体教室和一般教室! 有的课还可能有实验课,学计算机课程的课还要有上机课! 大学里的不是每个班都有自己的教室,学校里的教室是不够每个班轮到一个的!要协调啊!! 反正就是有很多问题了!! 大家就畅所欲言了!!!
一 一条大鱼 Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-09 #11 我就在大学里面,每个学校的情况不同,我们学校有些时候晚上还要上课,有时下午要上4节课,就是因为教室不够用,当然是2节2节分开的。我们学校每个班都有自己的教室。 我想了一下,要考虑的问题: 1、某些课程只能在指定的教室上,而且这种教室可能全校只有一间,有可能是有3、4间,甚至更多。 2、有些老师可能会教两门课,可能会教4、5个班,这些老师的课不能排重,而且要尽量分布匀均。总不能让老师一天上7节课吧! 3、学生也一样,一门课有理论课和实验课(当然不是每一门课都是这样的),尽量不要把一门课排在一天上完,也就是上完一次以后,隔几天再上这次课。 4、一个班可能有30个人,也可能有120个人,排课的时候要考虑到教室能不能放下这么多的人,小教室放不下就要到大教室去上。如果要分两批那就更完了 5、有时可能两个班的同一门课会在一起上,这种情况很多,也就是合班上,这时排的时候又要注意不能冲突了,最先排的就应该是这种课 6、我们这还有一种更绝的现象,单周在多媒体教室上课,双周在本班教室上课,或者,单周在本班教室上课,双周就去实验室去做实验了,怎么样?够难排的吧! 7、有时电脑排可能会不满意,需要手动调整一下,这时你的程序就要有这样的功能了,这有可能会出现牵一发而动全身的情况。 8、还有一个最绝的,比如计算机实验室,每个实验室有50台电脑,如有四个班要同时上实验课,这4个班每个班有60位同学,这时就要用到5个机房,每个班有50个同学用一个机房,然后剩下的每个班的10位同学,共40个同学就去用最后一个机房了。怎么样?这个电脑怎么算? 呵呵!因为我没有去做这个程序,应该还有很多考虑不到的地方。 这些想得到的已经够麻烦了吧,看见了我都怕了,还是不要做这样的程序了吧!
我就在大学里面,每个学校的情况不同,我们学校有些时候晚上还要上课,有时下午要上4节课,就是因为教室不够用,当然是2节2节分开的。我们学校每个班都有自己的教室。 我想了一下,要考虑的问题: 1、某些课程只能在指定的教室上,而且这种教室可能全校只有一间,有可能是有3、4间,甚至更多。 2、有些老师可能会教两门课,可能会教4、5个班,这些老师的课不能排重,而且要尽量分布匀均。总不能让老师一天上7节课吧! 3、学生也一样,一门课有理论课和实验课(当然不是每一门课都是这样的),尽量不要把一门课排在一天上完,也就是上完一次以后,隔几天再上这次课。 4、一个班可能有30个人,也可能有120个人,排课的时候要考虑到教室能不能放下这么多的人,小教室放不下就要到大教室去上。如果要分两批那就更完了 5、有时可能两个班的同一门课会在一起上,这种情况很多,也就是合班上,这时排的时候又要注意不能冲突了,最先排的就应该是这种课 6、我们这还有一种更绝的现象,单周在多媒体教室上课,双周在本班教室上课,或者,单周在本班教室上课,双周就去实验室去做实验了,怎么样?够难排的吧! 7、有时电脑排可能会不满意,需要手动调整一下,这时你的程序就要有这样的功能了,这有可能会出现牵一发而动全身的情况。 8、还有一个最绝的,比如计算机实验室,每个实验室有50台电脑,如有四个班要同时上实验课,这4个班每个班有60位同学,这时就要用到5个机房,每个班有50个同学用一个机房,然后剩下的每个班的10位同学,共40个同学就去用最后一个机房了。怎么样?这个电脑怎么算? 呵呵!因为我没有去做这个程序,应该还有很多考虑不到的地方。 这些想得到的已经够麻烦了吧,看见了我都怕了,还是不要做这样的程序了吧!
航 航宇 Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-09 #12 还有就是一个老师如果给两个班上课的话,最好让这个老师给这两个班上的课安排在同一天的同一个半天上. 是很麻烦! 不过如果大家在一起想的话,就会考虑的周到点.
C creation-zy Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-20 #14 我认为,如果问题的复杂性达到了某个上限的话,用算法来实现就变得非常困难。对于本 问题,我觉得用产生式系统让电脑自动根据规则进行排课会比较好。
L leo2002 Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-27 #17 To creation-zy: 我对你的思路很感兴趣,可以说详细些吗? 另外也请各位高手多给些思路,因为小弟对此也很感兴趣!
L lina Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-30 #18 排课算法里不但有教室,教师的问题,还要考虑先行课的问题,希望大家全面考虑,因为这的确是一个复杂的问题,但有相关例子可以参考,大家可以尝试在网上寻找一下![][][]
L leo2002 Unregistered / Unconfirmed GUEST, unregistred user! 2003-09-12 #19 To 航宇: 我也在很想开发排课软件,但我现在连排课也尚未十分清楚,不知能否将排课的思路完整讲解一遍呢?
L lymanrb Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-20 #20 呵呵,这么大的题目哦 排课核心算法是可以写硕士乃至博士论文的,比如“人工生命在排课算法中的应用”[]