排课算法!!(100分)

  • 主题发起人 主题发起人 航宇
  • 开始时间 开始时间

航宇

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