基于优先级回溯算法的高校排课系统设计与实现分类学号学校代码10487密级硕基于优先级回溯算法高校排课系统设计与实现工程学科专业:指导教师,//.naMay,2012独创性声明。学位论文作者签名:日期:位论文版权使用授权书完全了解学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被授权华中科技大学可以编入有关数据学位论文作者签名:指导教师签名:日期:年月日日期:年月日华排课工作高校教学管理管理工作学期排出计划安排一组教学时间教学安排习惯提高效率基于优先根据用户主要功能包括系统用户回溯排课算法排课资源执行手动微调操作户模块的主要功能是将课程表提供给指定普通用户浏览。
系统采用SSH架构建,数据库使用作为是数据库工具扩展的原则进行设计,使用Java语言作为主要开发语言,开发工具使用.0M1版本,服务器工具使用--6.0.16版本。行了测试结果表明系统主要功能功能排出的课程表具有高可用性的特点,基本符合本校教学安排习惯和要优先级回溯算法排课系统,...,y,,,、.,、-;rs.k,,,.,--6.0..ion,ty,:CTII绪论1.1课题来源、目的和意义1.2排课问题国内外研究现1.3论文的研究内容及结构安排.排课系统相关技术分析2.1排课问题的资源及约束2.2MVC架构及SSH框架2.3常见排课算法分112.4本章小结13排课系统的分析3.1排课系统需求概143.2排课用户及用例153.3排课系统数据需求分析.183.4排课系统功能需求分析.193.5排课系统非功能需求分213.6排课系统业务流程分析..7本章小结29排课系统的设计4.1排课系统架构设304.2排课系统主要功324.3排课系统数据库设计364.4基于优先级的回溯排课算法444.5本章小结49排课系统的实现与测试5.1系统开发环境.505.2排课系统主要功能模块的实现.505.3基于优先级的回溯排课算法的实现565.4系统测试625.5本章小结65总结与展望6.1全文总结666.2展望6768参考文献69IV绪论1.1排课问题(lem)是一种多目标的复杂开放性问题排课算法 java,并已被诸多前人证明是NP完全问题,它是多约束条件下的资源分配问题的一个变种,课程设置日益复杂排课作为可以毫不夸张的说,一张编排合理, 风格统一的课表绝对可以在 教学效果 也是整个 教育 体系 用于排课 化教育体系的重要手段。
现市场上流行着诸多的排课软件, 比如: 有所见 即所得的 PK60 拖放式排 课系统,课程安排 飞扬排课 系统 这些排课软件对于 自动排课 中小学校的排课排课算法 java,与大学中课程安排有较大出入,难以适应目前大学校园排课的 需求。 科技大学 排课的 排课问题 一种优先 排课算法 算法首先 获得大量 角色进行 划分 内外研究 教授在 1976年,S.Even NP完全 化为0-1 STP(Solid ,STP模型 11 14 两种算法 最大 缺点就是 容易 陷入 无法获得 48 1984年发表 资源分配 问题 采用不同的遗传策略(如不同的变 异概率或交 叉概率) ,并利用种群间 的迁移算子进 TSP( )问题 20 研究内容 每年数次 排课问题 作为 利用适应 大学教学 实际 惯性思维 为主 华中科技 大学 排课算法 并将 该算 排课系统 排课系统 同权限的角色相应的功能,使该排课系统能够在日常工作中使用。全文的结构安排如下: 排课问题 研究历史 阐述 分析排课 系统 需求和排课 MVC架构对于软件可扩展性的作用, 时下流行于一般Web 系统 SSH框架 和解决排课问题的一般算法进行了介绍并提出了改进方法。
根据需求挖 核心排课 模块 扩展规划 包括系统前 系统核心 功能 系统测试 章节对本 目的和意义 排课问题 进行阐述 章节根据 求解步骤 描述 的排课问题的解法进行分析。2.1 排课问题一般定义是:“排课问题的本质是根据系统设定的排 课约束条件, 级、课程、教师)三元组在合适的时间片分配到适合该课程的教室中的求解问题” 排课问题在求解过程中需要考虑的要素很多,典型的排课问题资源要素包 括五部分:(1)班级资源 资源一般 根据某些 特殊要求 可能会有多个班级合成一个教学组统一安排课程的情况。(2)课程资源 问题中一 班级资源 班级资源 包含了多个课程资源,而一个课程资源也可能被多个班级资源占有。(3)教师资源 问题中一 课程资源 课程资源 可能 应多个教师资源,而一个教室资源也可能被多个课程资源占用。(4)时间片资源 题中作为 时间属性 包括 排课问题 晚上三个 (5)教室资源教室资源在排课问题中作为独立资源存在,可根据教室类型不同进行划分。 2.1.2 课问题中的约束条件 分为三类 ,包括 约束根据 不同 实际需求获 硬约束,并尽量满足软约束。2.2 MVC 架构 SSH框架 2.2.1 MVC 架构 MVC 架构的英文 Model?View ? ,即是一个将应用的输入、 处理、 输出流程按照模型层、 视图层、 控制层分离的 设计模式。
它是 Xerox PARC 于八十年 代提出的, 至今已被广泛应用, 最近几年更是 被推荐为 Sun 公司 J2EE 平台的设计模 MVC架构中, 模型层、 视图层、 控制层分 [23] [24] 别完成不同的工作。图 2.1 展示了 MVC 架构 中三个层次的一般功能 2.1MVC 架构功能 框图 (1)MVC 架构中的“M ”?模型层的作用 封装软件 来说变成 接收视图 视图中进 可以说模型层是整个MVC 架构中的核心层次。 模型层将业务逻辑和对数据 的访问功 最大好处 就是 现就可以 [25]个视图中进行复用 (2)MVC架构中的“V ”?视图层的作用 面的统称 该层实现数据的输入和输出功能,对于一般的Web 工程而言,视图层可以理 6>HTML页面,MVC 架构对于视图层仅要求完 成对于页面上数据的搜集和处 以及各种用户的请求, 在视图层不进行业务逻辑的处理 系统中一 接受来自 据并将排课结果通过HTML 页面展示给用户,也可将管理员输入的排课数据 或用户 [47] 的请求传递给模型层进行逻辑处理 (3)MVC架构中的“C ”?控制层的作用 如果说模型层是整个 MVC 架构得以活动的“四肢” ,那么控制层则是 MVC 构得以活动的“大脑” 控制层起到控制整个业务流程的作用,实现模 型层和视图层 [26] [27] 的协同工作 对应功能 的模型 成用户的请求。
从这点可以看出,MVC 架构划分出控制层的意图十分明显, 它清楚 可以完成 怎样 数据处理 进行筛选 时点 接到该用 将该管理 发给相应 [28]择符合该管理员要求的 HTML 页面进行处理结果的展示 MVC架构在实际的系统实现中具有大量的优 首先,这种架构下开发的 系统 业务逻辑 和数 系统需求 功能扩展 业务规则 数据存取方式;其次,MVC 架构下的软件系统具有高重用性和高适应性, 数据没有 进行 格式 界面使用 图层页面的实现方式,而不需要对模型层和控制层进行改变;MVC 架构还有 一些较 [29] [30] 低的生命周期成本和可维护性,以及有利于软件工程化的等优点 2.2.2SSH 框架 著名的软件专家 Ralph 对框架进行了如 下的定义: 框架是整个 系统或系 组成。SSH 框架的的 “SSH 分别代表 框架、 框架、 架,SSH框架可以 [31] 看做是这三个框架的整合版本 (1)框架 框架是一个开放源代码的 Web 系统开发 会将对数 进行对数 页面展示 这种实现 可以 运用 [46]或者特大型系统中, 维护这些代码的成本会以 几何倍数增加 框架也就应运而生了,该框架是基于 MVC 计模式的,使用 JSP建立, 可以用来构建大型的 Web 应用。
框架对视图层进行封装,更好的 分离视图层和控制层,它在 SSH 主要应用 据交付其它层进行处理,根据结果控制页面跳转等功能的实现。(2) 框架 框架是一个轻量级的开源框 架,是为了 解决企业级的 Web 应用开 [32]Rob 。框架 来完成传 统开发 EJB10 ( )完成的工作。 架的应用场景非常广泛,任何 Java 用的开发均可从其获得收益,且其能够无缝的整合 框架和 架,总体来说,在一般的Web 应用开发中, 死作为一个对象容器来使 开发人员将 对象纳入 容器中, 用依赖注入 模式大幅度 少程序之间的耦合性,并能够很好的实现各种Java 的设计模式,强制使用 者养成接 口编程的习惯。 (3) 框架 框架是一个开源的对象关系映射框架 ,它对 JDBC 进行了轻量 OOP( ,面向对象编程)思想操作系统 数据库。
框架可在 Java 客户 端程序中应用, 也可以在 /JSP 程序中应用, SSH框架 中, 框架主 [33] [34] 要用于数据的持久化 ,完成针对数据库数据的增删查改工作 35 (1)根据课程、班级、教师、时间片、教室这 五个排课问题中经典五要素 (2)对种群中的课程安排个体以 一定的概率进 行交叉操作和变异操作,改 44 37 就是“选择近的路径的蚂蚁越来越 多排课算法 java 基于优先级回溯算法的高校排课系统设计与实现(可编辑),选择远 的路径的蚂蚁越来越 溯算法回溯 一定步骤 一般应用