排课系统算法及功能的实现

摘 要:文中介绍了回溯算法的基本思想和特点,分析了回溯算法在排课系统应用与其他算法的不同之处。针对排课系统理念分析,解决排课时教师时间、班级时间与教室利用时间三者之间冲突的判断方式。对排课系统的各项功能进行了设计。

关键词:回溯算法 排课 冲突

中***分类号:G434 文献标识码:A 文章编号:1672-3791(2016)08(a)-0108-02

课表是学校教学工作和其他活动的“调度指挥表”,是教师、学生上课的依据。不论学校是何等规模,都会有课表编排问题。传统的人工排课方式以其繁重的工作量和低下的效率为诟病。排课具有复杂性及系统性,目前仍然没有一个完美的解决办法。该文回顾国内外排课系统应用的发展现状,总结了各种常见算法在排课问题上的优缺点,选择回溯算法来解决这一问题。

1 回溯算法简介

1.1 回溯算法的基本思想

回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。八皇后问题就是回溯算法的典型,第一步按照顺序放一个皇后,然后第二步符合要求放第2个皇后,如果没有符合条件的位置符合要求,那么就要改变第1个皇后的位置,重新放第2个皇后的位置,直到找到符合条件的位置就可以了。回溯在迷宫搜索中使用很常见,就是这条路走不通,然后返回前一个路口,继续下一条路。回溯算法实质就是穷举法。回溯算法使用剪枝函数,剪去一些不可能到达最终状态(即答案状态)的节点,从而减少状态空间树节点的生成。回溯法是一个既带有系统性又带有跳跃性的搜索算法。它在包含问题的所有解的解空间树中,按照深度优先的策略,从根节点出发搜索解空间树。算法搜索至解空间树的任一节点时,总是先判断该节点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该节点为根的子树的系统搜索,逐层向其祖先节点回溯。否则,进入该子树,继续按深度优先的策略进行搜索。回溯法在用来求问题的所有解时,要回溯到根,且根节点的所有子树都已被搜索遍才结束。而回溯法在用来求问题的任一解时,只要搜索到问题的一个解就可以结束。这种以深度优先的方式系统地搜索问题的解的算法称为回溯法 [1],它适用于解一些组合数较大的问题。

1.2 回溯算法的求解步骤

回溯算法求解过程包括如下步骤:(1)定义一个解空间,它包含问题的解。(2)利用适于搜索的方法组织解空间。(3)利用深度优先法搜索解空间。(4)利用限界函数避免移动到不可能产生解的子空间。问题的解空间通常是在搜索问题的解的过程中动态产生的,这是回溯算法的一个重要特性。

1.3 回溯算法在排课系统上的特点

回溯算法是一个既带有系统性又带有跳跃性的搜索算法。它在包含问题的所有解的解空间树中,按照深度优先的策略,从根节点出发搜索解空间树。算法搜索至解空间树的任一节点时,总是先判断该节点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该节点为根的子树的系统搜索,逐层向其祖先节点回溯。否则,进入该子树,继续按深度优先的策略进行搜索。回溯法在用来求问题的所有解时,要回溯到根,且根节点的所有子树都已被搜索遍才结束。而回溯法在用来求问题的任一解时,只要搜索到问题的一个解就可以结束。它适用于解一些组合数较大的问题。高校排课的组合就是很巨大的,使用回溯算法能更好地保证排课的正确性与实用性。

2 排课系统算法分析

排课问题是涉及教师、教室、班级、课程和时间五个因素的排列组合问题。排课时,最基本的要求(硬性约束)就是避免教师、班级在时间和空间上产生冲突。解决的办法就是依次为开设的每门课程搜索到该课程教师、班级和教室共同空闲的时间片[2]。

排课算法的实质就是为课程安排上课时间和上课地点。但是,如果同时考虑这两者,必然会引起“组合爆炸”现象。所以为了避免这种情况,笔者采用回溯算法进行排课,首先算出符合时间要求的老师,然后选出符合时间要求的教室。

3 排课过程

自动排课系统,采用回溯算法,一层一层地进行查找合适的时间以及教室。

3.1 确定上课时间

首先确定上课的时间。上课的教师时间是否已被占用,没有占用,则进行下一步;如果被占用,则查找下一个时间片教师时间是否被占用。

3.2 确定上课教师

确定完上课时间后,还要确定上课地点。安排上课地点的原则是时间片不能与其他课程冲突。所以如果时间片不能满足要求,要重新进行时间安排。回溯算法中要对教师时间和教室时间是否被占用进行判断。教师和教室的时间片标记事先是写好在数据库里的,根据不同的代码和时间片代码从数据库中读取标记位,然后进行判断就可以了。教师时间冲突判断代码如下:

string mystr = ConfigurationManager.AppSettings["myconnstring"];

OleDbConnection myconn = new OleDbConnection();

OleDbCommand mycmd1 = new OleDbCommand();

OleDbCommand mycmd2 = new OleDbCommand();

myconn.ConnectionString = mystr;

myconn.Open();

string mysql1 = "SELECT 教师ID FROM 课程信息 WHERE ID='"+kid+"'";

mandText = mysql1;

mycmd1.Connection = myconn;

string id = mycmd1.ExecuteScalar().ToString();

string mysql2 = "SELECT t"+ ti +" FROM 教师时间 WHERE 教师ID='" + id + "'";

mandText = mysql2;

mycmd2.Connection = myconn;

string flag = mycmd2.ExecuteScalar().ToString();

if(flag=="0")

{

return true;

}

else

return false;

教室时间冲突与教师时间冲突代码一致。

在时间冲突解决之后就是对课程进行记录了,在算法中有一个自定义类Jilukecheng(),其返回值就是已经排列完成的课程的名称和上课的教师以及上课的教师的字符串。

4 结语

系统设计在校教务部门试验应用,经测试,系统能够基本满足教务工作人员排课工作需求,减轻了教务部门的工作量,对高校办公自动化起到了推进作用。

参考文献

[1] 杨兴旺.基于回溯法的排课算法[J].电脑知识与技术,2009,5(19):5196-5197.

[2] 陈树敏,叶涛.教务管理信息系统后台数据库的设计与实现[J].自动化与信息工程,2009,30(2):46-47.

转载请注明出处学文网 » 排课系统算法及功能的实现

学习

浅述庄子《齐物论》中齐物即万物齐一的思想

阅读(25)

本文为您介绍浅述庄子《齐物论》中齐物即万物齐一的思想,内容包括庄子齐物论是如何论述万物齐一的,庄子齐物论蕴含的道理。作者简介:石雄(1990—),男,彝族,云南大理,哲学硕士,单位:兰州大学,研究方向:先秦哲学和西方现代哲学。

学习

探讨法律与道德之间的关系

阅读(27)

本文为您介绍探讨法律与道德之间的关系,内容包括浅议法律和道德的关系,道德与法律的关系2000字。摘要:法律与道德都是社会控制的工具,两者之间既有联系又有区别,联系在于两者是同源的、均具有公共性与阶级性、都具有重复适用性、普遍性

学习

人体科学范文精选

阅读(23)

本文为您介绍人体科学范文精选,内容包括人体科学征文,人体科学2000字论文。人体科学篇1我今天发言的题目是:践证人体科学。从这个名字上来看,人家以为这是一个理论性的问题。其实不然,它是通过一种信息传导的方式,给我们在坐的每位有缘

学习

铀矿地质

阅读(112)

本文为您介绍铀矿地质,内容包括铀矿地质与勘查简明教程,铀矿资源参考文献。1.中国砂岩型铀矿容矿层位、矿化类型和矿化年龄的区域分布规律陈祖伊,陈戴生,古抗衡,王亚婧,CHENZu-yi,CHENDai-sheng,GUKang-heng,WANGYa-jing

学习

美食博客 第8期

阅读(24)

本文为您介绍美食博客 第8期,内容包括美食专栏文章,飞雪无霜的美食博客。梅子,现居美国。自己爱吃,也爱看别人津津有味地吃自己煮的东西。2003年开始在博客上写写食日记。2004年建立美食女性论坛:梅子咖啡()目前出版有《恋人食谱》、《温情

学习

“减负”与“增效”

阅读(36)

本文为您介绍“减负”与“增效”,内容包括减负与增效的关系,为基层减负增效。【关键词】减负;增效

学习

机械零件疲劳载荷谱的方法研究

阅读(21)

本文为您介绍机械零件疲劳载荷谱的方法研究,内容包括机械零件的疲劳强度计算,机械零件的疲劳设计。【摘要】在疲劳寿命估计的评估与机械设计方面,最为重要的基础就是机械零件疲劳载荷谱的系统编制,同时也成为了较为重要的凭证。本文针对疲

学习

浅谈网络道德问题

阅读(36)

本文为您介绍浅谈网络道德问题,内容包括网络道德问题的反思与对策,网络生活的道德要求。关键词:网络社会;网络道德;现实社会道德;伦理

学习

秸秆热解气化技术简介

阅读(32)

本文为您介绍秸秆热解气化技术简介,内容包括秸秆的热解气化,秸秆气化最新技术。秸秆热解气化技术是近年来发展的一项较新的秸秆利用技术,即将秸秆转化为气体燃料的热化学过程。秸秆在气化反应器中氧气不足的条件下发生部分燃烧,以提供气化

学习

液晶高分子及其应用

阅读(26)

本文为您介绍液晶高分子及其应用,内容包括高分子液晶的功能和应用,液晶高分子材料的应用论文。【摘要】液晶高分子由于其本身具有一系列优异的性能,并与信息技术、新材料和生命科学相互促进作用,是当前高分子材料研究的热点之一。本文主要

学习

聚焦三沙市领导班子

阅读(555)

本文为您介绍聚焦三沙市领导班子,内容包括三沙市政府网最新公示,三沙市委公告。肖杰任三沙市委书记,市长

学习

控制与决策

阅读(22)

本文为您介绍控制与决策,内容包括控制与决策期刊等级,决策与控制。1.贝叶斯网络扩展研究综述陈英武,高妍方,CHENYing-wu,GAOYan-fang

学习

交流电动机调速及控制方法

阅读(14)

本文为您介绍交流电动机调速及控制方法,内容包括交流电动机调速方案,交流异步电动机的调速方法有几种。摘要:交流电动机的工作效率较高,又没有烟尘、气味,不污染环境,噪声也较小。由于它的一系列优点,所以在工农业生产、交通运输、国防、商业

学习

复杂性科学概念及特性

阅读(25)

本文为您介绍复杂性科学概念及特性,内容包括复杂性科学理论框架,复杂性科学的研究方法。作者:邓丽明马俊单位:南昌工程学院

学习

机电系统控制技术

阅读(30)

本文为您介绍机电系统控制技术,内容包括机电控制技术基础,机电系统控制原理及应用总结。摘要:机械电子与自动控制相结合是制造业发展的趋势,简要阐述现代机电控制系统的主要组成部分,并与当前的最新科技发展相结合进行分析。

学习

CCD成像系统设计论文

阅读(19)

本文为您介绍CCD成像系统设计论文,内容包括ccd的性能参数论文,ccd检测系统程序编写。1帧转移面阵CCD47-20AIMO的结构和工作原理

学习

模糊语言及其语用功能

阅读(31)

本文为您介绍模糊语言及其语用功能,内容包括模糊语言学的语用功能,模糊措辞的语用功能。摘要:语言的模糊性是人类自然语言的客观属性,是人类思维的本质特征之一,是广泛存在于人类语言交际中的语言现象。恰当地使用模糊语言,不仅可使语言

学习

煤矿井下压风自救系统

阅读(20)

本文为您介绍煤矿井下压风自救系统,内容包括煤矿井下压风自救装置标准,煤矿井下压风自救方法。摘要:介绍了压风自救系统在中小矿井的应用,简要阐述采煤工作面、掘进工作面使用ZY-M型压风自救系统的注意事项和布置方法,同时对地面空气压缩机

学习

《诛仙》天书系统详解

阅读(26)

本文为您介绍《诛仙》天书系统详解,内容包括诛仙小说天书的来历,诛仙小说中各门派功法的等级划分。什么是天书系统?

学习

教育的主要功能

阅读(28)

本文为您介绍教育的主要功能,内容包括教育的主要功能和作用,教育的功能总结。如果有一天,你发现自己超越了别人许多,那么一定是你比别人多付出的结果。聚沙成塔、集腋成裘,成功没有捷径,只有不断地学习和积累!闽试教育愿意陪伴你走过福

学习

刍议移动医疗系统中智能手机的融入

阅读(14)

摘要:随着人们健康意识的不断增强,人们渴望得到更加及时和全民的健康服务,对整体医疗系统的要求也越来越高。移动医疗为医疗卫生服务提供了一种全新的实现途径,为人们的健康提供了更大的保障。而随着智能手机不断融入移动医疗系统,“移动医疗

学习

分布式系统的应用

阅读(21)

本文为您介绍分布式系统的应用,内容包括分布式应用通俗解释,分布式计算原理与应用。摘要:随着计算机网络的出现,分布式计算成为可能。当用户需要完成任何任务时,分布式计算提供对尽可能多的计算机能力和数据的透明访问,同时实现高性能与高可