时间标识排课算法的分析与设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE PAGE 1 时间标识排课算法的分析与设计   摘要:排课是学校教学管理中一个非常重要的环节。设计一个高效的排课算法对学校教学管理的信息化水平以及工作效率,减轻教务工作人员的劳动强度等方面都有十分重要的意义。   关键词:排课算法;冲突检测;时间标识;手动排课;自动排课   中图分类号:TP301.6文献标识码:A文章编号:1007-9599(2013)01-0205-02   1排课算法的基本思路以及时间段的划分   为了解决教师冲突、时间冲突以及教室冲突,必须要有一个时间标识机制,用来标识各个时间的状态。在前面的数据库设计中已经知道,我们为班级表、教师表和教室表增加了一个*_time字段(‘*’为对应表的表名),这个字段就是用来标识各个时间状态的。   它的基本思路是这样的;每个星期我们的上课时间是固定的,也就是星期一到星期五的这五天时间,而根据我们学院的实际情况,星期一到星期五,每天的上午四节课,下午两节课,那么一个星期一共有30节课,但是我学院要求每次上课都是两节课安排给一门课程,那么一星期的时间就被分成了15个时间段。这样每个时间段的状态就可以用一个长度为15的字符串来标识了。   其格式如下:000000000000000   其中以上格式的0代表这个时间段没有安排课程,1就代表这个时间段已经被安排了课程,照此格式则每一位和时间段的对应如下所示:   例如:103教室在星期三3、4节课有课,同时在其他时间都没有课,那么在教室表中对应的103教室记录中的time字段就为:000000100000000。同理如果103教室在星期三3、4节和5、6节都有课那么其time字段就标记为000000011000000。   这样,在排课的过程中就可以读取相应的time字段来了解该时间段的情况,从而避免出现时间冲突。   以上就是用来解决冲突的思路,最关键的是使用time字段来标识各个时间段的状态,这样就可以很好的避免冲突的发生了。下面我们就将手动排课和自动排课算法做一个详细的设计。   2手动排课算法设计   手动排课是用来满足某些特殊要求,使排课过程中更加的人性化,也就是要满足排课的软约束,比如某教师家离学校远,不希望排在1-2节课。再比如有些课程需要特定的时间和特定的教室等。此外,需要合班上课的课程也可以手动进行安排。   我们将手动排课算法的基本思路设计为如图所示:   手动排课是有用户指定某些课程的安排,所以灵活性很大,不需要自动安排时间。但是为了使排课结果整体的正确性,也需要加入一定的措施防止在排课过程中出现教师,教室以及班级的冲突。另外需要在发生冲突时出现冲突提示信息。由于手动排课灵活性太大,建议除非万不得已尽量少使用这一功能。   3自动排课算法设计   自动排课功能本系统最最主要的内容,它决定了系统实现的成败。   3.1自动排课的算法思路   自动排课算法是一个非常复杂的部分,怎样尽量避免出现排课冲突是实现该功能的关键所在。其实,启动排课的冲突检测策略和手动排课是一样的,只不过手动排课时出现冲突可以提示用户重新输入,而自动排课则是由系统自动寻找下一个合适的时间或者教室直到找到为止,如果最后还是找不到空闲的时间资源时,可自动提供相关的信息。   对于合班上课的课程,由于涉及到的时间资源比较多而且很容易出错和产生冲突,所以本系统在自动排课时优先进行合班排课这样有利于尽量减少产生排课冲突的可能。   除此之外因为上课时间和上课教室的选取由系统自动确定,那么时间和教室就要有一个具体的规则来决定排课的顺序。   某一门课的安排需要四节以及四节以上(需要两天以上),其时间安排要尽量采取间隔规则,例如:计算机基础课每周需要上四节课,每天两节,那么时间安排应为周一,周三或者周二,周四等,尽量避免连续上课的现象。   对于多媒体教室,因为根据我院的实际情况多媒体教室的数量是有限的,所以除要求在多媒体上课的课程外,其他课程都可安排到普通教室。   3.2自动排课流程图   合班上课的班级由于涉及到的班级较多,所以要优先安排。系统需要进行两遍排课操作,第一遍对有合班要求的课程安排,第二遍再安排没有合班要求的课程。   四节课以上要尽量安排为两天上课即需要遵守间隔性原则,其后续时间的选择不同于一般的时间选择,要比一般的时间选择复杂的多,但基本思路是一样的这里就不再详述。   4排课优先级设计及排课效率的提高   为了提高排课系统的排课效率除了要避免冲突之外还需要规定一些排课的优先级用来确定什么样的情况需要优先进行编排。本着提高排课质量和效率的原则将排课的优先级设定如下:根据学院的实际情况,同时也是为了进一步节省本来就十分紧张的教学和教师资源,规定了某些课程需要合班上课,即要有两个或两个以上的班级在一个容量较大的教室

文档评论(0)

gmomo-lt + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档