高校排课系统设计含需求分析数据库算法和部分代码毕业论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高校排课系统设计含需求分析数据库算法和部分代
码毕业论文
目录
1 绪论 0
1.1 课题背景和意义 0
1.2 排课问题发展现状 0
1.3 排课算法简介 (1)
1.3.1 回溯搜索算法 (1)
1.3.2 遗传算法 (1)
1.3.3 贪心算法 (2)
1.3.4 模拟退火算法 (2)
1.4 课题主要内容 (2)
1.4.1 软件设计的主要功能 (2)
1.4.2 论文结构说明 (3)
2 开发平台 (4)
2.1 基于平台开发概述 (4)
2.1.1 概述 (4)
2.1.2 的优点 (4)
2.1.3 的发展前景 (6)
2.2 概述 (6)
3 排课系统分析 (9)
3.1 排课问题分析 (9)
3.1.1 排课基本原则 (9)
3.1.2 排课资源分析 (9)
3.1.3 排课冲突分析 (10)
3.2 系统分析 (10)
3.2.1 需求分析 (10)
3.2.2 系统功能分析 (11)
4 数据库设计 (13)
4.1 数据库概念结构设计 (13)
4.2 数据库逻辑结构设计 (13)
4.3 数据库物理结构设计 (14)
5 排课系统算法及功能的实现 (17)
5.1 回溯算法简介 (17)
5.1.1 回溯算法的基本思想 (17)
5.1.2 回溯算法的求解步骤 (17)
5.1.3 回溯算法在排课系统上的特点 (18)
5.2 排课系统算法分析 (18)
5.3 排课过程 (18)
5.3.1 自动排课算法流程 (18)
5.3.2 自动排课程序 (20)
5.4 功能的实现 (23)
5.4.1 用户登录 (23)
5.4.2 查询功能设计 (26)
5.4.3 排课管理界面 (32)
6 排课系统测试 (35)
6.1 系统测试数据 (35)
6.2 系统测试结果 (35)
结论 (37)
致谢 (38)
参考文献 (39)
附录A 英文原文 (40)
附录B 中文翻译 (50)
1 绪论
1.1 课题背景和意义
每个新学期开始,对于学校教务科来说首要而急需完成的任务是:如何合理而高效的排课。其本质是将课程、教师和学生在合适的时间段内分配到合适的教室中。但由于涉及到的问题较多,同时学校扩招,学生和课程数量比以往大大增加,教室资源明显不足,在这种情况下排课很难在同时兼顾多重条件限制的情况下用人工方式排出令教师和学生都满意的课表。虽然排课问题很早以前就成为众多科研人员和软件公司的研究课题,但是真正投入使用的排课软件却很少。原因是多方面的,其中算法的选择是最关键的一个问题,S.Even等人在1975年的研究中证明了排课问题是一个NP-Complete问题,即若是用“穷举法”之外的算法找出最佳解是不可能的。然而由于穷举法成本太高,时间太长,根本无法在计算机上实现。如果假设一个星期有n个时段可排课,有m位教师需要参与排课,平均每位教师一个星期上k节课,在不考虑其他限制情况下,能够推出的可能组合就有n*m*k种,如此高的复杂度是目前计算机所无法承受的。这就促使我们必须采用一些以计算机为辅助的手段来帮助。
1.2 排课问题发展现状
国外对于课表问题的研究始于20世纪50年代。1963年Gotlieb在他的论文中提出了课表问题的数学模型,并用匈牙利算法解决了三维线性运输问题[1]。直到1976年S.Even、Tim B.Cooper等人在他们的论文中证明了排课问题是一个NP完全问题[2],人们才将注意力更多地转向课表编排实用算法的探索与研究。
近几十年,国外对于排课算法的研究依然很活跃,Ferland等人把排课问题化成整数规划来解决[3],但计算量很大,其仅仅适用于规模很小的课表编排,对于大规模复杂的排课情况,至今没有一个切实可行的算法。还有人用图论的染色体问题来解决课表问题,但是遗憾的是染色体问题本身也是NP完全问题。除此之外,还有印度Vastapur大学管理学院Arabinda Tripathy的拉格朗日松弛法[4]等求解算法。
我国对于排课问题的研究较晚,始于上个世纪80年代初期。1984年林漳希和林尧瑞发表了在排课问题上的实验性研究成果《人工智能技术在课表编排中的应用》[5]。许多高校也进行了一些排课系统软件的研究,具有代表性的有南京工学院的UTSS(A University Timetable Scheduling System)系统[6]、清华大学的TISER(Timetable SchedulER)系统、大连理工大学的智能教学组织管理及课程调度系统[7]、浙江大学的正方现代教学管理信息系统等。
1.3 排课算法简介
时间表问题(TTP)是典型的组合优化和不确定性调度问题,该问题已经被证明是NP 完全问题,广泛应用于学校课程安排、会议日程安排、体育比赛和航班时刻表的制定等。由于问题的复杂性,一般只能得到较佳解算法。常见的算法有:
1.3.1 回溯搜索算法
回溯算法(Backtracking Algorithm)也叫试探法,它是一种系统地搜索问题的解的方法。它的基本思想是:从问题的某一种状态(初始状态)出发,搜索从这种状态出发所能达到的所有“状态”,当一条路走到“尽头”的时候(不能再前进),再后退一步或若干步,从另一种可能“状态”出发,继续搜索,直到所有的“路径”(状态)都试探过。这种不断“前进”、不断“回溯”寻找解的方法,就称作“回溯法”。
基于回溯法解决排课问题,在使用初期,没有足够的信息可能会出现死锁,引起回溯失败。失败的原因一般为:教室资源不足;安排课程过多或约束条件过于苛刻。
1.3.2 遗传算法
遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则[8]。
近几十年,很多人使用遗传算法来解决时间表问题,虽然取得了一定成果,但是仍有不足。其主要表现在,只能在排课模型较简单、限制条件有限情况下求解,且速度较