关于学校排课系统的算法再请教,怎么样才能完美?

SphereEGO 2002-12-19 12:58:40
RT

...全文
400 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
steel_de_lee 2003-03-21
  • 打赏
  • 举报
回复
不可能只找出真正最优解,很容易证明在有意义的时间内不可能,但是并不是不能找出优化的解,或者找出一个解。不过找一个解也是不容易的,我做过这方面的程序,找到一个解还行,可是结果并不令人感到理想
qhgary 2003-03-18
  • 打赏
  • 举报
回复
说过了不可能!!!! 怎么象在讨论永动机一样。
数学证明过了,不可能!!! 我们老师(中国编译理论界的权威)跟我门说的,他说他证明过。
xiaha3 2003-03-18
  • 打赏
  • 举报
回复

你说不可能,那么为什么每个学校都能正常上课呢????
你们的思维都放在了算法上,而没有注意只是需要满意解!!!
我们要求的只是一个帮助我们排课的工具,难道计算机一点也帮不了忙吗????
难到一定要完全手工排课吗??????
学校的教师都不是专业的数学专家,但是不也是排出了课表!!!!!
由于是按照优先级来排课所以会回朔的次数会很少,比如说语文优先级最高,就
就先排,我们应该按照人的思维来排,而不是要遍厉所有可能的排法
何况我们现在的资源(教师,教室)比较充分,很多情况下,随便就可以得到一个满意解.

wshcdr 2003-03-18
  • 打赏
  • 举报
回复
我原来还以为这个算法很简单的呢?

(我总是有把事情看得过于简单的倾向)
steel_de_lee 2003-03-17
  • 打赏
  • 举报
回复
此方法不可行,必须构造一个栈来保存排课的结果,一旦遇到不可解决排课冲突就要回朔,知道所有课程排出为止,计算量会很大。可以考虑使用概率算法,减少回朔的次数。

xiaha3 2003-03-15
  • 打赏
  • 举报
回复
这个问题我考虑过,在这里和大家交流.希望你做出来之后公布源代码

这个问题实际上不能完全从算法上考虑
1.就算没有计算机,普通的教师不也可以排出课表吗?主要是最终的课程表可能有多种满意的解
(比如只有两个班机,只有三个科目,有六个老师而且全能.一天两节课)你可排出很多令大家
满意的结果.
2.所以我们要求的是一个满意解,而不是最优解.实际上这个问题无所谓最优化解)

3.实际上问题的关键是约束条件的输入问题,我认为是最大问题是应用者输入约束条件的方便性!!!
比如实验室的数量(如:5个班机用一个物理实验室).考虑到相互换课课的方便性.学科教学的时间间隔和时候(如:数学最好放在上午),有一些学科是单双周的情况.
所以应有一个数据库系统
4.基本算法思路:
a.先根据条件确定可能性.有一些情况是不可能有解的.(如7个班只有一个语文教师
每个班5节语文课,那莫这个语文老师要上35节课-----一周可能总共也就30节课)
b.一般来说,一个年级的课程是固定的比如;语文5杰,数学4杰.....
所以总课节是固定的比如一年级的每个班机一周共上30节课.(包括语文,数学,
外 语,....),然后看有每一个学科有多少老师.然后根据教师的意愿为每个教师
分配班机(比如李老师负责1,2,3班的外语教学)

c.先为有约束条件的排课(如试验课都在下午,试验教室紧张的先牌,王老师必须在下
午地三节课上等等)


e.根据课程的优先级别排课.如语文优先级为1,那么语文老师(王老师1,2,3班.李老
师4,5,6班)先可最好的时间排课排课 王老师的课就可以在(每天上午4节课*5共20个选项的)链表中确定,

f.(教师+课节+班机)的唯一性(如李老师在星期一地三节在一年二班上课)确定了
g 确定后释放空闲的课节


g.依次排满课表
算法实现:
1.简单的说,就是确定6个链表(六个班),每个连标有5个"日"链表元素,每个"日"链
表元素的前四项(每一项都是课节类(教师+时间(如星期一第三节)+课程+班级))是上午的四节课
2.语文老师王老师申请到1,2,3班每个班的上午4节课的时间,确定链表根据时间间隔
确定课节类
然后把剩下的释放回去.
依次进行直到六个链表=null.

2.具体实现肯定更复杂(), 1的表述只是为了便于理解.

steel_de_lee 2003-03-14
  • 打赏
  • 举报
回复
大,一个六班级,七科目的课表可达7^180 种可能性,一般要按贪心法配合一个高度优化的评价函授来做到在有限时间内得到优化结果,这个评价函授很难。
steel_de_lee 2003-03-14
  • 打赏
  • 举报
回复
排课算法实际上是极大条件的约束--优化问题,类似与自动下棋的算法,可以用一个树搜索算法完成只是这棵树实在太
silently 2003-03-13
  • 打赏
  • 举报
回复
呃~,这个想法很好,我也很想过要做个这个东西,但是如果要作出那种全自动的排课系统,考虑的东西实在太多了,而且是越考虑越多,所以我想做一个辅助的排课系统可能更现实一点,只是我们可以使他的自动化程度经可能的高,维护尽可能的简单,而且可以使它可以进行二次开发,针对不同的情况进行简单的人工调整,这就是我的一点想法,我对这个东西也很感兴趣,如果哪位想讨论的话可以给我发邮件:),pentium83@sohu.com
steel_de_lee 2003-03-13
  • 打赏
  • 举报
回复
我在10年前就做过,我的结论是不可能做好全自动排课,只能做一个辅助工具而已
qhgary 2003-03-13
  • 打赏
  • 举报
回复
都说了,数学证明了不可能,怎么还在讨论?不相信么?
sailor_Song 2003-03-13
  • 打赏
  • 举报
回复
还要考虑,学生从宿舍到教室尽量近,学生从一个教室到另一个教室尽量近,老师也是!
zhouhj11 2003-02-23
  • 打赏
  • 举报
回复
不知道用神经网络或scale free network方法来解决好不好,反正scale free network 是刚刚发展起来的,很不错!是研究复杂系统的问题!
hbyzd 2003-02-22
  • 打赏
  • 举报
回复
教师冲突:同一教师一时间只能上一门课
教室冲突:同一教室一时间只能有一个班上课
溢出现象:如果课程实在安排不下来,有存在溢出的可能
节假日现象:由于节假日,有的周可能不会上满5天

就资源共享来说,有以下几方面:
一个教室可以分前几周给一个班上,后几周给另外几个班上
同一个教师教几个班的课,按时间顺序轮流分给几个班
合班课,也就是两个班合在一起由一个老师上课

还有一些详细要处理的我不太记得了,要看我原来的源代码才清楚。

好,根据这个我要回去考虑考虑
jesonyin 2003-02-19
  • 打赏
  • 举报
回复
我作了大量关于教育的软件:如:电子教室、数字图书馆、智能排课、校园办公自动化、校务管理、校园网站、校园VOD点播等.
jeson_yin@elong.com
jeson_yin@163.com
jeson_yin@sohu.com

申明:不是广告,诚征加盟代理!(根据国家教务部“校校通”文件开发,“钱”途无量!)

                服务教育、助人为乐!

全是成熟产品,现在全国热销中!

Chrisma 2003-02-18
  • 打赏
  • 举报
回复
试考虑老师同时又是学生.
sailor_Song 2003-02-17
  • 打赏
  • 举报
回复
我们学校有个计算机博士,他研究写一个排课系统,它还包含了教室的安排,他用了两年也没有做出个很满意的!它要求考虑的因素太多了 ,突发的因素太多了,
zengpan_panpan 2003-02-11
  • 打赏
  • 举报
回复
没有成熟的算法,模拟退火用得比较多点。
qhgary 2003-02-07
  • 打赏
  • 举报
回复
排课系统是不可能完美的。数学上已经证明不可能。(注意我说的是完全自动的排课系统,不是辅助排课系统)
所以,不可能完美。除非你只有少得可怜的几节课和几个老师,几间教室。
否则其复杂度将呈几何级数上升。
老兄,数学上已经证明不可能了,就不要追求完美了
wonita 2003-02-01
  • 打赏
  • 举报
回复
think
加载更多回复(16)

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧