自动排课系统算法的分析与设计概要

合集下载

课程设计(自动排课系统)

课程设计(自动排课系统)

2008~2009学年度《WEB 程序设计》课程设计班级:05网络3班学号:090205338姓名:周秋艳2008年12月17日基于WEB的高校教师排课系统一、用户需求分析(10分)学校教务的管理作为高校教育信息化工作中的一项重要工作,如何构建一个具有开放性、实用性和灵活性的平台,是一个值得探讨的课题。

其中,作为学校教务重点环节之一的排课系统也尤为重要。

先前,在统筹安排各班级上课的时间需要人工实现,而且经常会出现同时有多个班级要使用教室的冲突。

既耗时又耗精力,随着计算机技术的不断发展,计算机技术在各领域的充分完美应用,以学校的教务管理为该系统的应用背景,开发一个教室智能排课系统。

此系统开发主要包括后台数据库的建立和前端应用程序的开发两个方面。

系统采用Visual Basic 6.0开发工具和SQL Server 2000作为后台数据库开发的应用软件。

该系统实现上机时间的安排,课程的安排,教室的安排,以及它们之间的不冲突和资源的高效利用;这更切合学院教学需要,降低了排课管理工作的工作量和节省了时间,同时课程安排完成后,学院可迅速获得课表情况信息,为教学工作带来方便。

本系统界面友好,操作简单,使用方便。

二、系统总体设计(15分)1.系统功能描述1.1 基本信息管理:教师、教室、班级、课程、教学任务等数据的输入、编辑功能;1.2 数据处理:自动排课、课表修改、删除功能;1.3 数据输出:桌面查询教师、教室、班级课程表,报表打印教师、教室、班级课程表;1.4 帮助:指导用户使用该系统及其他相关说明。

2 系统功能设计分析目前市场上流行的各种排课软件,它们都具有比较完善的功能,但在真正的排课算法上都会有些问题,因为排课算法最关键的问题是如何解决各式各样的冲突。

在做需求分析的过程中,通过调查得知目前排课人员对排课算法的主要要求有:2.1 怎样的合班组合能避免冲突?目前采取的方式是相同或相近的专业的班级组合。

2.2 什么地方有空能排课?对教室和班级而言是查空,对教师而言是有无排课需求。

前端开发自动排课系统的算法

前端开发自动排课系统的算法

前端开发自动排课系统的算法前言随着教育行业的不断发展,学校的规模越来越大,课程也越来越多,排课工作变得愈发复杂。

为了解决这一问题,自动排课系统应运而生。

在自动排课系统中,算法是关键步骤之一。

本文将介绍前端开发自动排课系统的算法。

一、背景知识1.1 自动排课系统自动排课系统是一种利用计算机技术和数学方法对学校的教学资源进行规划和管理的软件系统。

它可以根据学校的教学资源(如教师、教室、时间等)以及各种约束条件(如班级数量、科目安排等)生成合理的课程表。

1.2 算法算法是指解决问题的方法和步骤。

在计算机科学中,算法是计算机程序的核心部分,它描述了程序如何执行特定任务。

二、前端开发自动排课系统的算法2.1 基本概念在介绍具体算法之前,需要先了解一些基本概念:- 教师:负责授课的人员。

- 课程:教师要授予学生的知识和技能。

- 班级:由学生组成的教学单位。

- 教室:用于教学的场所。

- 时间段:一段时间,通常是一个小时或半小时。

2.2 算法流程自动排课系统的算法通常包括以下步骤:- 初始化:将所有的教师、课程、班级、教室和时间段都放入一个数组中。

- 约束条件处理:根据各种约束条件(如班级数量、科目安排等)对数组进行处理,去掉不符合要求的元素。

- 任务分配:对剩余的元素进行分配,生成初步的课程表。

- 优化调整:对初步的课程表进行优化调整,使得生成的课程表更加合理。

下面将详细介绍每个步骤。

2.3 初始化在初始化阶段,需要将所有的教师、课程、班级、教室和时间段都放入一个数组中。

例如:```var teachers = ["张三", "李四", "王五"];var courses = ["数学", "语文", "英语"];var classes = ["一年级1班", "一年级2班", "二年级1班"];var classrooms = ["101教室", "102教室", "103教室"];var timeSlots = ["8:00~8:45", "9:00~9:45", "10:00~10:45"];```2.4 约束条件处理在约束条件处理阶段,需要根据各种约束条件(如班级数量、科目安排等)对数组进行处理,去掉不符合要求的元素。

软件工程硕士论文:高校自动排课系统排课算法研究与应用(一)

软件工程硕士论文:高校自动排课系统排课算法研究与应用(一)

软件工程硕士论文:高校自动排课系统排课算法研究与应用(一)摘要排课,是给学校各专业的教学计划中设置的课程安排合适的时间和地点,也就是给每个班的课程安排时间和地点。

排课工作在教学管理中很重要也很繁琐,计算机自动排课系统,可以降低排课人员的工作量,减少排课中的人为因素。

但排课问题属于NP问题,即无法直接得到答案,只能通过猜测获取可能结果。

通常NP问题虽无答案,却有算法,算法不能直接告诉答案,但可以用来判断可能的结果是否J下确可行。

因此,要做好排课工作,提高排课效率,研究排课算法是必不可少的。

本文在查阅大量相关文献的基础上,对高校的排课问题进行了分析,通过对人工智能中的启发式搜索理论的研究,对优先权策略和分配策略加以分析和应用,设计出排课算法启发式排课算法(HTA)。

同时,又对HTA算法中薄弱点(主要是对课程等对优先权过于敏感)进行进一步改造,即在HTA算法的基础上,应用一些拟人的算法或策略,包括靠边策略、择劣策略、前景探测策略、学习策略,减少算法中各因素对优先权的敏感,克服HTA算法的缺陷,完善HTA算法内容。

改造后的算法命名为eHTA算法。

通过实验,证明eHTA算法在减少人工干预排课次数、好时间好教室的利用、尽量满足约束条件、班级和教师的同负荷均衡等方面,能够产生很好的效果,大大提高了排课效率。

论文还介绍了基于eHTA算法的江苏海事职业技术学院自动排课系统构架,并将系统应用的效果与人工排课进行对比,以科学的方式,证明eHTA算法在提高排课效率各方面的作用。

关键词:启发式算法,eHTA,排课The Research and Application of UniversityCoursesTimetabling AlgorithmAbstractCourses timetabling,is to arrange the appropriate time and the place to thecurriculum in school each specialized plan of instruction or is for each class’Scurriculum arrangement.Each semester,coursestimetabling work is in theteaching supervisory work key point and the difficulty.Auto-course timetablingcan help reduce working pressure and mall·made interruption.Courses timetabling,belonging to the NP question,is unable to give the direct answer,but a possibleresult through guess.Although the question does not have the answer,has thealgorithm actually,the algorithm usually cannot tell the answer,but Can tell whetherthe some possibility is true of false.Therefore,it is essential to research oftimetabling.It may help to enhance the timetabling efficiency,promote teachingmanagement level enhancement.This article in the consult massive correlation 1iterature foundation has carried onthe analysis to courscs timetabling,through to the artificial intelligence inspirationalsearch theory research,applied to the priority strategy and the assignment strategy,has designed new algorithm Heuristic Timetabling Algorithm(HTA).At the sametime,also to HTA algorithm in regarding curriculum the priority too sensitiveshortcoming has made the improvement,proposed the eHTA algorithm,appliessome personification’S algorithm or the strategy,“keeping to the side’’strategy,“selecting the poor'’strategy,“the prospectsurvey'’strategy,“studying'’strategy,reduces in the algorithm the curricula to the priority sensitivity.Through theexperiment,proved the eHTA algorithm in the reduced manual intervention numberof times,the good time good classroom use,satisfies theconstraint condition,theclass and grade and teacher's date load as far as possible balanced and SO on the aspects,can produce the very good results,enhanced the courses timetabling efficiency greatly.The paper also introduced based on the eHTA algorithm Jiangsu MaritimeInstitute’S courses automatic course timetabling system framework.It has alsorecorded this system application effect carried on the past artificial timetabling thecontrast,by the science way,proves the eHTA algorithm in the enhancementtimetabl ing efficiency various aspects function.Key Words:Heuristic Timetabling Algorithm,eHTA,courses timetabling1绪论1.1论文的研究目的在我国高等教育中有两个主体:一是学生主体,二是教师主体。

大学自动排课算法设计与实现(课设说明书)

大学自动排课算法设计与实现(课设说明书)

中北大学课程设计说明书软件工程大型实验学生姓名:史东海学号:0706054208 学院: 电子与计算机科学技术学院专业: 软件工程题目: 大学自动排课算法设计与实现系统——登陆及用户管理子系统成绩指导教师:宋礼鹏职称: 讲师2010 年 1 月 21 日1.设计目的该系统并不是所有人都能随便使用的。

系统应该有不同的权限用于排课和课表的查询,通过登陆可以解决权限问题。

而用户是会经常变动的(比如毕业生的离校),所以需要对用户进行相应的管理(如添加、删除及密码的修改),所以需要实现用户管理功能。

2.设计内容在整个系统中本人主要负责登陆和用户管理功能的实现,同时也参加算法的设计与实现。

本系统要涉及到管理人员、教师、学生三个不同的参与者,有两个不同的权限。

管理员可以录入教师、教室、班级等基本的信息然后进行排课,而教师和学生只具有查询课表的权限。

所以在登录的时候要把不同的权限划分出来。

程序在设计好后数据库中有一个默认的管理员的用户名和密码,通过该用户名和密码可以登陆系统,然后通过用户管理模块可以添加教师、学生或管理员。

为了防止用户忘记密码,管理员可以在不知道原始密码的情况下修改用户的密码。

而教师或学生若想修改自己的密码必须输入旧密码。

3.需求描述图1 登陆及用户管理子系统用例图用例描述如下:表1 UserManagement用例描述表表2 Login用例描述表表3 AddUser用例描述表表4 DeleteUser用例描述表表5 ModifyPassword用例描述表4.系统详细分析设计4.1顺序图(1)登陆顺序图:图2 登陆顺序图登陆首先输入用户名和密码,然后程序到数据库中查询用户名是否存在,密码是否正确,如果正确则登陆成功;不正确登陆失败,可以继续登陆或关闭登陆窗口。

(2)添加用户顺序图:图3 添加用户顺序图管理员输用户名、密码和确认密码。

如果数据库对应表中有所输入的用户名则给出提示;没有则比较两次输入密码是否相同,相同条件成功;不同则给出相应提示。

高校自动排课系统核心算法的设计与实现

高校自动排课系统核心算法的设计与实现

3 5
程 、 程标 志 、 闲时 段等 . 课 空 系统 定义 每位 教 师最 多可 讲授 4门课 程 , 且 按 每周 5个 工作 日, 日 并 每 5个 授 课 时 段 确 定 每 位 授 课 教 师 的 时 间 空 闲 情 况 .
4 教 室 数 据 表 cso m. 属 性 包 括 教 室 名 称 、 位 数 、 别 、 用 时 段 等 . 据 教 室 座 位 数 即 ) ls o 其 ar 座 类 可 根
下 面 给 出系 统 基 本 资 料 记 录 数 据 表 的详 细 定 义 .
1 班级数据 表 c s 其 属性 包括 班级 名称 、 ) ls a. 人数 、 开设课 程及 相应 课 程 的授课 教 师等 . 中每个 其 班每学 期最多可允许 开设 8门课 程.
2 课 程数据表 cu e 属性 包括课 程编 号 、 ) or . s其 课程 名 、 周课 时 、 程重要 性 权值 等. 课 我们 按专业必
I 自动排课 系 统 的数 学建 模 与设 计
11 数 据 库 设 计 .
根 据 排 课 的 实 际 需 要 , 系 统 数 据 库 中 设 计 了 2类 基 本 表 …, 1类 为 基 本 资 料 记 录 数 据 表 , 本 第
第 2 为 自动 排课过 程 中用到 的 临时 队列数 据表 . 类 自动排课 时 , 系统 首先 扫 描第 1 数据表 , 符 类 将 合 条 件 的数 据 记 录 扫 描 筛 选 到 第 2类 临 时 队 列 数 据 表 中 ; 后 , 这 些 临 时 队 列 表 中 进 行 资 源 匹 然 在 配操作 , 即将班级 、 亦 课程 、 教师及 教室 4种资源 间的条件 匹配查 询操作 集 中在 临时 队列表 中进行.

高校教务管理系统中的智能排课与优化设计

高校教务管理系统中的智能排课与优化设计

高校教务管理系统中的智能排课与优化设计智能排课与优化设计是现代高校教务管理系统中的一个重要功能,它的作用是通过智能算法和优化模型,实现课程与教师之间的最佳匹配,合理安排课程时间表,提升教学效率和学生满意度。

本文将深入探讨高校教务管理系统中智能排课与优化设计的原理、应用和挑战,以及未来的发展方向。

智能排课是指利用计算机技术和算法,根据教务管理系统中课程、教师、教室、学生等相关数据,自动化地生成最优的课程表的过程。

它不仅考虑到教务的基本要求,如避免冲突、合理安排时间等,还充分考虑到教师和学生的个人需求,如充分利用教师的专长和优势、减少学生的时间冲突等。

智能排课的实现需要依赖于智能算法和优化模型。

常见的算法包括遗传算法、模拟退火算法、禁忌搜索算法等。

这些算法通过多次迭代和优化,逐渐接近最优解。

而优化模型则是根据不同的排课要求和约束条件,构建数学模型,通过求解模型得到最优的排课方案。

在高校教务管理系统中,智能排课与优化设计的应用可以大大提升教学效率和学生满意度。

首先,它可以减少教务工作的繁琐和重复性,提高排课的准确性和效率。

其次,它能够合理安排教师的工作时间和课程负荷,提高教师的教学积极性和满意度。

同时,智能排课还可以减少学生的时间冲突,提高学生选课的自由度和满意度。

然而,高校教务管理系统中智能排课与优化设计也面临着一些挑战。

首先,排课所涉及的数据量庞大且复杂,需要高效的算法和优化模型来处理和求解。

其次,教师和学生的需求通常是多样化和动态变化的,如何在保证基本约束的前提下,满足个性化需求,仍然是一个有待解决的问题。

此外,由于各个学院、专业之间的差异,不同学校的智能排课需求也各不相同,因此开发出一套通用性强的智能排课系统仍然具有一定的难度。

未来,高校教务管理系统中智能排课与优化设计的发展方向主要有三个方面。

一是深度学习与人工智能的应用,通过对大量的历史排课数据进行学习和分析,提高排课的准确性和智能化水平。

自动排课系统算法的分析与设计概要

自动排课系统算法的分析与设计概要

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!科技情报开发与经济SCI-TECH INFORMATION DEVELOPMENT &ECONOMY 2007年第 17卷第34期吞吐量后才实施 , 不可轻易控制流量导致不必要的吞吐量下降。

流量控制后必须及时解除流量控制。

(2 技术流控手段和业务流控手段相结合。

(3 流控点设立于系统与外系统接口层和一级调度层 , 其他各层不设立流控点。

对银行前端发起的联机请求做流量控制 , 以防止后台出现堵塞 , 流控点的设置见表 1。

从技术流控和业务流控的角度实现系统的流量控制如下 :第一 , 为预防系统内出现堵塞 , 在系统交易入口即分中心控制总线上 , 建立预防性流控机制 ; 第二 , 建立系统状态主动探测机制 , 系统主动探测服务队列状态 , 发现系统繁忙或服务队列深度超过设定阀值 , 将启动相应的流控 ; 第三 , 可以根据管理需要 , 设定特定业务品种交易、特定分中心交易或特定服务的交易流量阀值 , 进行流量控制。

如在交易繁忙时段 , 可以采取限制部分查询交易等手段确保系统的稳定运行。

(责任编辑 :戚米莎─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─第一作者简介 :刘焱军 , 男 , 1975年 4月生 , 2001年毕业于太原理工大学计算机专业(硕士 , 中国建设银行厦门开发中心 , 福建省厦门市鹭江道 98号建行大厦 , 361012.Research on the Application of Bus Control Technology in Securities System of BankLIU Yan-junABSTRACT:This paper introduces the application of bus control technology in securities system of bank, and probes intothe implementation of the flow control.KEY WORDS:bus technology of trade control; securities system of bank; flow control教学排课可以说是教学管理的一个中心 , 它直接关系到教学计划和教学质量。

基于C-S模式自动排课系统的算法分析

基于C-S模式自动排课系统的算法分析

基于C/S模式自动排课系统的算法分析摘要本文根据嘉应学院医学院教学排课工作的实际需求,从排课问题入手,分析了教室信息数据结构及课程信息数据结构,对排课算法流程进行详细描述和说明,给出了排课算法流程图,实现了排课、调课、查询、统计、打印等基本功能,可大大减少教学排课的手工劳动。

关键词排课;c/s;数据结构;算法中图分类号 tp393文献标识码 a文章编号1674-6708(2010)18-0122-021 排课问题描述随着高校教学改革工作的深化进行,教学排课工作的灵活性日益增强,如何对教室、教师、学生以及时间等几部份资源进行最优组合,是保证整个教学计划正常进行关键。

排课是将教师与学生在时间和空间上根据不同的约束条件进行排列组合,在满足全部约束条件的基础上,实现教室、教师、学生、时间等资源的最优组合[1]。

这里的约束条件主要是:同一时间对同一名教师安排了两门不同的课程,对于该教师来说课程的安排是冲突的;对于学生也是如此,同一时间给同一教室安排两门不同的课程,则对于这两门课程来说,安排的教室是冲突的。

2 数据结构定义2.1 教室信息数据结构typedef struct{int ftotalseat; //座位数int ffunctionid; // 课室功能号int fid;//t_jxclassroomlist的主键fid,//设置此项是为了数据库访问的方便}roomkey;typedef struct{ansistringfarrangeitemid;//记录教室的用途是全日制还是夜大,2为全日制,3为夜大ansistringfdays;//可用周(01200:1至20周全周) ansistringfperiod;//可用节次(01:星期日早上)}roomvalue;//教室的排序函数对象(按座位数从大到小排)class compareroom{public:bool operator() (const roomkey& room1, const roomkey& room2){return (room1.ftotalseat>room2.ftotalseat|| (room1.ftotalseat==room2.ftotalseat&& room1.fidroom2.ftotalseat|| (room1.ftotalseat==room2.ftotalseat&& room1.fid roommap;//教室信息数据图(按座位数从大到小排,用于最后的强制排课) typedef std::multimap forceroommap;roommap roomlist;//教室信息表2.2 课程信息数据结构typedef struct{int ftotalstudent;//总共人数int ffunctionid; // 课室功能号int fid;//t_jxteachimplement表的主键fid}coursekey;typedef struct{ansistringfclassno; //开课对象ansistringfteachweeks;//面授周数ansistringcountperweek;// 每周上课次数ansistringfarrangeitemid;//记录课程班是全日制还是夜大,1为全日制,2为夜大ansistringfctime; //上课时间ansistringfcplace;//上课地点,未排课之前为空字符串}coursevalue;//课程的排序函数对象(按总共人数从大到小排)class comparecourse{public:bool operator() (const coursekey& course1, const coursekey& course2){return (course1.ftotalstudent>course2.ftotalstudent||(course1.ftotalstudent==course2.ftotalstudent&& course1.fid coursemap;coursemap courselist;//课程信息表3算法流程描述第一步:清空上次排课的结果;第二步:根据条件查询数据库得到教室使用信息与待排课程信息,初始化roomlist(教室信息链表)和courselist(课程信息链表); 第三步:进行自动排课。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!科技情报开发与经济SCI-TECH INFORMATION DEVELOPMENT &ECONOMY 2007年第 17卷第34期吞吐量后才实施 , 不可轻易控制流量导致不必要的吞吐量下降。

流量控制后必须及时解除流量控制。

(2 技术流控手段和业务流控手段相结合。

(3 流控点设立于系统与外系统接口层和一级调度层 , 其他各层不设立流控点。

对银行前端发起的联机请求做流量控制 , 以防止后台出现堵塞 , 流控点的设置见表 1。

从技术流控和业务流控的角度实现系统的流量控制如下 :第一 , 为预防系统内出现堵塞 , 在系统交易入口即分中心控制总线上 , 建立预防性流控机制 ; 第二 , 建立系统状态主动探测机制 , 系统主动探测服务队列状态 , 发现系统繁忙或服务队列深度超过设定阀值 , 将启动相应的流控 ; 第三 , 可以根据管理需要 , 设定特定业务品种交易、特定分中心交易或特定服务的交易流量阀值 , 进行流量控制。

如在交易繁忙时段 , 可以采取限制部分查询交易等手段确保系统的稳定运行。

(责任编辑 :戚米莎─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─第一作者简介 :刘焱军 , 男 , 1975年 4月生 , 2001年毕业于太原理工大学计算机专业(硕士 , 中国建设银行厦门开发中心 , 福建省厦门市鹭江道 98号建行大厦 , 361012.Research on the Application of Bus Control Technology in Securities System of BankLIU Yan-junABSTRACT:This paper introduces the application of bus control technology in securities system of bank, and probes intothe implementation of the flow control.KEY WORDS:bus technology of trade control; securities system of bank; flow control教学排课可以说是教学管理的一个中心 , 它直接关系到教学计划和教学质量。

而排课的过程也是一个复杂的推理思考过程 , 我们通过对排课逻辑原理的分析和排课系统操作流程的总结 , 研究出一套排课算法 , 通过该排课系统的实现 , 可以大大减少教务管理员的工作量 , 并给教务信息管理带来方便。

迄今为止 , 对课程表的研究工作已有 40多年 , 取得了丰硕的成果 , 但仍存在许多不足之处 , 例如规模大、约束 (条件复杂以及规律不断变化等 , 因此排课问题至今仍未完全解决。

虽然目前很多系统中都包含了排课子系统 , 但是由于各个学校的教学情况不同 , 这些排课系统不一定适合各院的实情。

下面根据我校的教学安排情况 , 对排课系统的算法进行探讨。

1自动排课系统的优势和目前存在的问题课程表的编排是一个涉及多种因素的组合规划问题 , 它要保证在课程安排中教师、学生、教室不能产生冲突 , 并且要满足教师的要求和资源限制等约束条件。

目前 , 国内的大部分高中仍然采用手工排课的方法。

手工排课工作的主要手段是“摆牌” , 就是在一个画有空课表的版面上将有课名的小牌摆在适当的位置上 , 边摆、边观察、边调整 , 凭借经验将各门课摆在合理的位置上 , 最后形成一个有效的课程表。

这种办法没有一定的规律性 , 没有理论指导 , 更没有数据模型 , 具有很大的盲目性。

所以 , 要为上千名学生和上百名教师安排出合理的课程表 , 往往需要花费教务处人员很多的时间 , 工作量大 , 且排出的课程表不宜调整。

随着中国教育体制改革的不断深入 , 学生人数的不断上升 , 课程设置不断向深度和广度发展 , 手工排课的缺点也越来越突出。

由于计算机具有运算速度快、处理能力强等特点 , 很自然地就进入这一应用领域中。

用计算机进行排课能够快速地得到满足约束条件的可行结果 , 具有排课时间短、省人力和质量高的优点 , 不但能使教务人员从繁杂的排课任务中解脱出来 , 而且对于推动教学的发展也起到了非常重要的作用。

但由于大学排课工作的主观性较强 , 目前仍无完善的自动排课系统可以实现排课工作的全面自动化。

遇到高等数学、大学英语等全校规模的通道课 , 系统仍然无法自动处理。

在一些课程的排课时间、顺序上 , 系统也无法达到人工的识别水平 , 即使给出较为细分的优先级 , 也不能完全合理、人性化地排出课表。

目前的排课系统自动排出的课表不经过手工调整往往是不能直接投入运行的。

系统与人工相结合也还有许多问题有待改进。

如何使高校的课程表安排工作更加科学合理 , 适合“以人为本” 的新时期教育思想 , 仍是值得探讨的问题。

2排课系统流程分析课程安排的流程跟教务工作的顺序有很大的关系 , 被安排的课程的信息来源主要是前期很多教务工作的总结。

其基本流程见图 1。

2.1整理课程信息整理本学期需要安排课程的基本信息 , 包括课程类型(选修、必修、实验课、室外课、普通教室课、多媒体教室课等 , 讲课老师(任课教师对上课提出的要求、上课时间段和上课用教室 , 听课的班级 (各班人数、总人数等。

2.2课程分类根据整理出的课程需求 , 我们对每门课程根据情况进行优先级别分文章编号 :1005-6033(2007 34-0217-03收稿日期 :2007-10-24自动排课系统算法的分析与设计陈静(义乌工商学院计算机工程系 , 浙江义乌 , 322000摘要 :分析了自动排课系统的优势和存在的问题 , 并对自动排课系统算法进行了探讨。

关键词 :自动排课系统 ; 算法 ; 教学管理中图分类号 :G434文献标识码 :A图 1课程安排流程217类 , 作为排课队列的顺序。

2.3获取可安排的教室教室是根据每个系的情况进行分配的 , 部分特殊教室的使用也是有限制的 , 因此在排课前必须获得所有能够安排课程的教室情况。

2.4排课根据课程的优先级别按顺序再依据规则依次对课程进行时间和教室的安排 , 在这里重点是规则的定义和在上课时间和教室空间纵横轴组成的二维空间中对每个课单元的排课许可。

排课的过程是一个搜索的过程 , 当最后的课程搜索不到位置时 , 表示课程安排有冲突 , 可通过回溯的方法通过改变前一门课的定位来增加可选的机会 , 当最后仍然出现课程冲突时 , 可列出所有与该课冲突的信息 , 以便教务管理员分析和重新对某些属性进行设定。

2.5生成课表将排好课的节次时间和教室空间纵横轴组成的二维表的每个单元数据存入数据库。

通过各种检索可以生成课表。

3排课算法详解排课系统的实现主要在于排课系统的算法。

下面笔者将对该算法的实现进行详解。

3.1基本对象的定义通过分析课程表我们可以看到 , 无外乎教室使用空间问题和每周安排课程的占用时间问题 (这里根据本学校的情况 , 时间以周来算。

我们把这两个问题放到一个二维表格里面 , 分别定义为空间轴和时间轴。

而空间的每个单元我们可以简单地称为教室元 , 每个时间单元我们称为节次元。

教室元 , 主要是每间教室的类型 , 可容纳的人数等信息。

在教室的空间轴上依次排列。

排列的顺序的设定在一定程度上影响着排课的效率 , 所以必须根据教室的属性分类一次排序。

节次元 , 主要是以一周的时间为时间轴 , 每天按节次分为 6次课 , 上午 3次 , 下午 2次 , 晚上 1次。

由时间和空间轴组成的二维数组存储课程信息后的安排表见表 1。

这里我们把可安排课程的单元格称为排课单元。

3.2对每门课程的教室元进行预设定排课前 , 每门课程必须有自己选择教室的范围。

这里我们为了简化操作 , 安排课程时在空间轴上的设定如下 :(1 总体教室元的范围设定。

对于本学院 , 主要设置为系别、专业、班级。

一般教室的使用有一定的系部范围 , 特别的专业有相关的专业范围教室或者还有特殊的班级范围。

我们可以从范围上从大到小地对各自属性的排课进行教室区域范围的划分 , 使在各范围内班级的排课范围都预设定好 , 避免了对每门课程具体设置的复杂过程。

(2 各门课程教室的范围设定。

总体教室元的范围设定并不能完全解决排课的特殊逻辑需求 , 对各门课程都要进行教室元范围的设定。

这主要是根据各门课程的属性自动设置完成的 , 当然也有一些需要管理员手动设定。

最后综合两种设定 , 每门课程都有针对本课在课程表安排时需要的空间轴上教室元的许可设定。

我们假设总体教室元的范围设定为序列 ArrayT , 各课程教室范围设定序列为 ArrayC 。

通过ArrayC ∩ ArrayT (i 来求得最终的各课程表的教室范围。

其中 ArrayT (i 为所有与 ArrayC 课程相关的总体教室元的范围设定序列。

3.3对每门课程节次时间元的预设定针对每门课程的类型和任课教师的部分特殊要求 , 比如必修课的英语必须安排在上午等条件 , 对每门课程同样要设置其节次元。

基本方法同课程教室范围的设定 , 如假设对于该课程的节次设定序列有 i 个要求的 ArrayS (i , 那么通过各 ArrayS (i 的交集求得一确定的序列便是该课程的节次时间元的预设定。

3.4综合设定表最后 , 将各门课程教室的教室元范围设定 ArrayC 和课程的节次元设定 ArrayT 进行运算 :CourseT (i =ArrayC (i ×ArrayT (i , 求得二维课表 CourseT 课程安排矩阵表 , 该表每个单元的值表示的便是该课程在此排课单元上的使能。

在后面的排课操作中便可以此为基准进行排课搜寻。

除此之外 , 为了细分 , 我们还需要根据现有教室范围进行选取 , 将邻近教室范围的设定分成相关区域 , 并独立成多个课程安排矩阵表 , 以便于邻近表教室之间的操作。

3.5课程优先级的设定在排课之前还有一个重要的工作 , 那便是对所有排课进行优先级的设定。

由于后面采用的是队列的算法来实现 , 所以一定的课程排课的顺序也决定了课程表能否成功安排。

3.6排课规则在排课的过程中 , 排课规则主要是用来协调选择性排课单元的搜索 , 使课程的定位更具人性化和合理性。

这里我们列举如下几点 :同一个课程元不能连续在一天上两次 ; 同一个课程元最好不要连续上两天 ; 同一老师同一天两次连续的课时间上最好不连续 , 比如一次在上午 , 一次在下午 ; 一天内同一班级的课程最好教室距离不要太远。

规则定义好了 , 主要还是看算法的实现。

相关文档
最新文档