基于遗传算法的排课算法

合集下载

基于遗传算法的排课系统研究

基于遗传算法的排课系统研究

基于遗传算法的排课系统研究基于遗传算法的排课系统的研究谷冰(沈阳建筑大学信息学院)摘要:排课问题是一个有约束的、多目标的组合优化问题,并且已经被证明为一个NP完全问题。

本文主要基于遗传算法,结合排课系统的一些具体需求,研究并实现一个排课系统。

【关键词】排课问题;遗传算法;组合优化一、背景近年来随着大学扩招,大学生人数的增加,每学期的排课问题一直是学校一项巨大的工作任务,使用人工手动排课对于这样一个庞大的课程体系来说简直是天方夜谭。

其中,最突出的问题就是班级多、课程多、教师少、教室少,从而导致传统的手工排课方法,由于工作量巨大、效率低下,容易出错已经不能满足需求;因此,研究计算机排课系统有重大的现实意义。

二、遗传算法遗传算法(Genetic Algorithms,GA)是根据自然界的选择和进化原来发展起来的高度并行、随机、自适应的随机搜索算法。

其模拟达尔文的适者生存原理,每个种群所面临的问题是寻找一种对复杂和变化着的环境最有利的适应方式。

遗传算法维持一个潜在的群体(染色体、变量),定义一个函数为:ttP(t)={ x1??,xn}染色体通常形成是一串的数组,近年来基于实数编码的遗传算法也得到广泛的应用。

每个解用其“适应值”进行评价其优劣程度。

然后通过选择更新(t+1次迭代)个新的群体。

新群体的成员通过杂交和变异进行变换,以形成新的解。

杂交组合了两个亲体染色体的特征,并通过交换父代相应的片段形成了两个相似的后代。

例如,如果父代用五维向量来表示,如下:(a1 ,b1 ,c1 ,d1 ,e1),(a2 ,b2 ,c2 ,d2 ,e2) 在第二个基因后杂交,染色将产生后代 (a1 ,b1 ,c2 ,d2 ,e2)杂交算子的意图是在不同潜在解之间进行信息交换。

变异是通过用一个等于变异率的概率随机地改变染色体上的一个或多个基因。

变异算子的意图是向群体加入一些额外的变化性。

我们可以把遗传算法简化以下步骤:1) 产生初始遗传群体的方法。

基于遗传算法的高校排课系统设计与分析

基于遗传算法的高校排课系统设计与分析
基于遗传算法的高校排课系统设计 与分析
01 一、引言
目录
02 二、文献综述
03 三、系统设计
04 四、系统分析
05 五、结论
一、引言
随着高校规模的不断扩大和教学管理的日益复杂,高校排课系统成为了教学 活动正常运行的重要环节。遗传算法是一种模拟自然选择和遗传演化的优化算法, 适用于解决复杂的优化问题,将其应用于高校排课系统能够提高课程安排的合理 性和教师资源的利用率。本次演示将介绍遗传算法在高校排课系统中的应用,并 对系统进行详细设计和分析。
(1)能够处理多种约束条件,生成合理的课程表; (2)具有较好的通用 性和扩展性,可以适应不同高校的教学需求; (3)能够提高课程安排的满意度 和资源利用率。
然而,该系统也存在一些缺点:
(1)运算时间较长,需要较长的计算时间和计算资源; (2)可能陷入局 部最优解,无法得到全局最优解; (3)需要手动设定参数,参数的选择会对排 课结果产生影响。
遗传算法具有自适应性和并行性的特点,能够处理大规模的优化问题。在高 校排课系统中,遗传算法能够根据多个约束条件进行优化排课,生成合理的课程 表。然而,遗传算法的运算时间较长,且易陷入局部最优解,因此需要在算法设 计和参数选择上加以改进和完善。
2、优缺点分析
基于遗传算法的高校排课系统具有以下优点:
3、改进空间及研究方向
针对上述缺点和问题,未来的研究方向可以包括:
(1)优化遗传算法的设计和参数选择,减少运算时间和提高搜索效率; (2)研究并行遗传算法,利用多核CPU或分布式计算环境进行加速计算; (3) 结合其他优化算法,如模拟退火、粒子群优化等,进行混合优化策略的研究; (4)加强系统的智能化程度,如引入人工智能技术进行自动化参数设定和优化 建议。

基于遗传算法的优化排课系统

基于遗传算法的优化排课系统

系统架构设计
数据库设计
排课系统需建立完善的数据库,以存储课程信息、教师信息和学 生信息等数据。
前端设计
前端界面需友好、易用,能够提供便捷的查询和操作功能。
后端设计
后端处理需稳定、高效,能够快速响应前端请求并处理数据。
系统功能模块
课程管理模块
该模块主要用于管理课程信息,包括 添加、修改和删除课程等功能。
遗传算法的概念与原理
遗传算法是一种模拟生物进化过程的优化算法,通过模拟基因选择、交叉、变异 等过程,寻找问题最优解。
遗传算法将问题参数编码为“染色体”(个体),并在群体中进行选择、交叉、 变异等操作,不断迭代进化,直至达到满足条件的最优解或次优解。
遗传算法的基本流程
1. 初始化
根据问题规模和参数要求,随机生成一定数量的 个体(染色体)作为初始群体。
适应度函数
根据问题的目标函数,设计合理的适应度 函数,能够直接影响算法的优化效果。
交叉操作
通过交叉操作,能够将父代的优良基因传 递给子代。常见的交叉操作有单点交叉、 多点交叉等。
选择操作
选择哪些个体参与交叉和变异操作,对算 法的性能和结果有很大影响。常用的选择 操作有轮盘赌选择、锦标赛选择等。
03
基于遗传算法的优化排课系 统
2023-11-08
contents
目录
• 引言 • 遗传算法基础 • 优化排课系统设计 • 遗传算法在排课系统中的应用 • 系统实现与测试 • 结论与展望
01
引言
研究背景与意义
排课系统是学校教学管理的重要组成部分,优化排课系统可以提高教学效率和质量 ,减少资源浪费。
遗传算法是一种基于生物进化原理的优化算法,具有自适应、并行性和鲁棒性等优 点,适用于解决复杂的排课问题。

基于遗传算法的排课优化问题求解

基于遗传算法的排课优化问题求解

基于遗传算法的排课优化问题求解排课优化问题一直是学校、大学以及一些培训机构所必须要面对的难题,在人力资源有限的情况下,如何科学地排出一个合理且不冲突的课表,已经成为了许多学校面临的共同问题。

为了解决这一难题,科学家和工程师们通过运用遗传算法和其他优化算法的方法,开发了许多可行性方案。

本文将从遗传算法的角度来探讨排课优化问题。

遗传算法(Genetic Algorithm)是一种模拟自然界进化的算法。

在自然界中,个体之间通过基因的遗传组合完成进化,并产生了最适应环境的生物种群。

将这种思想运用到人工智能领域中,遗传算法会更加聚焦于表现最佳的计算模型,从而求解出问题最优解。

在将遗传算法应用到排课优化问题中,我们首先需要清楚我们的目标,也即是要确定如何评价可以生产出合适课程表的个体(也就是排出来的课程表方案)。

通常我们选择以下几个指标:1.冲突数:每次安排的排课必须要避免同一时间段安排了不同课程的同学出现冲突的情况。

2.教师数量:我们需要限制每个教师一天最多要授课的数量。

3.上课时间:不同年级或专业应该拥有不同的上课时间设定。

4.考试时间:考试最好不要安排在同一天,或考试之间要有合适的缓冲时间。

在确定了目标之后,剩下的就是如何将遗传算法应用于实践中。

首先,我们需要确定个体应该包括哪些元素。

通常,我们选择将每个个体定义为一个完整的课程表,并将每节课定义为单一个体上的基因变量。

每个体内包括所有的课程计划,教室,教师和学生信息,并建立起课程表和基因之间的关系。

经过基因变异,评分和自然选择步骤后,我们就能得到最适应环境,即最优解的课程表方案。

在遗传算法中,最适应环境的确定方式通常是通过一个称为适应度函数(Fitness Function)的评分公式来计算的。

适应度函数由用户来设定,根据具体应用场景的实际需求设置不同的适应度计算规则。

这个过程可以理解为将每个个体放入一个生态系统中,生态中的任务是评判每个个体的适应度,并将最适应生物的优良特性遗传下去。

基于遗传算法的智能排课系统设计与优化

基于遗传算法的智能排课系统设计与优化

基于遗传算法的智能排课系统设计与优化摘要基于遗传算法的智能排课系统设计与优化是一项具有挑战性和重要性的任务。

排课是学校管理中关键的一环,它需要平衡师生时间表安排,确保教室和教学资源的有效利用。

然而,传统的手动排课方式存在效率低、容易出错的问题。

因此,开发一种高效、准确的智能排课系统对于学校管理的提升至关重要。

本文将介绍基于遗传算法的智能排课系统设计与优化的方法和实现。

1. 引言智能排课系统是指利用计算机科学和人工智能技术,通过自动化和优化算法来实现对学校课程排列的自动分配和优化。

传统的手动排课方式一方面存在人力浪费的问题,另一方面也容易出现排课冲突和资源浪费的情况。

基于遗传算法的智能排课系统可以借助计算机的高效计算能力和优化算法,解决传统排课方式的一系列问题。

2. 系统设计基于遗传算法的智能排课系统的设计包含以下几个关键步骤:2.1 问题建模智能排课系统需要将问题建模为数学模型。

通常,问题的建模包括定义课程、教师、班级、时间和教室等相关参数,以及约束条件。

建模的目的是为了将复杂的排课问题转化为数学优化问题。

2.2 遗传算法设计基于遗传算法的智能排课系统主要采用进化算法中的遗传算法来进行优化。

遗传算法模拟了生物界的进化过程,通过选择、交叉和变异等操作来生成和改进解。

具体来说,遗传算法包括以下几个关键步骤:初始化种群、选择操作、交叉操作、变异操作和适应度评价。

通过不断迭代和优化,遗传算法能够逐渐找到最优解。

2.3 系统实现基于遗传算法的智能排课系统的实现需要开发相关的软件工具和算法。

通常,系统的实现包括以下几个方面的内容:数据管理模块、遗传算法优化模块、结果评价模块和用户界面模块。

数据管理模块负责对课程、教师、班级、时间和教室等数据进行管理和处理。

遗传算法优化模块是系统的核心部分,负责通过遗传算法来进行排课优化。

结果评价模块用于评估算法的性能和结果的质量。

用户界面模块则提供给用户一个友好的交互界面,方便用户使用和操作系统。

基于遗传算法的排课系统

基于遗传算法的排课系统

基于遗传算法的排课系统随着教育信息化的不断发展和普及,学校管理者面临着诸多问题,其中排课难题一直是让教育管理者头疼的问题之一。

传统的手工排课已经无法满足高效、精准、科学的要求,而基于遗传算法的排课系统则成为了当前最有效、最具优势的解决方案。

一、遗传算法简介遗传算法是一种模拟自然界生物进化机制的计算方法,具有全局搜索的优势。

通过不断地模拟生物遗传、变异、选择等生命周期中的过程,从而找到问题的最优解。

其应用领域十分广泛,包括最优化问题、物流调度、排产计划等。

二、基于遗传算法的排课系统原理基于遗传算法的排课系统主要包含了三个部分:编码、适应度函数和遗传操作。

编码主要是将课程、班级、教室等信息进行数字化处理,以便计算机程序处理。

适应度函数则是系统评价排课方案的优劣,比如评价指标可以是课程的满足率、教室利用率、教师安排合理度等。

针对评价指标,可以设置一定的权重,以便达到更为精确的排课目标。

最后,遗传操作则是模拟生物遗传的过程,通过交叉、变异、选择等操作模拟新一代生物的生成,从而找到最优解。

三、基于遗传算法排课系统的优势相比传统的排课方式,基于遗传算法的排课系统具有以下几个优势:1.节省时间:传统排课方式需要大量工作人员,且容易出现排错、重复的情况,而基于遗传算法的排课系统可以自动化完成排课工作,大大降低了排课所需时间。

2.排课效率更高:传统排课方式不能对全局优化,而基于遗传算法的排课系统可以对整个排课过程进行全局最优化,从而找到最优的排课方案。

3.排课方案更科学:遗传算法可以针对不同的需求设置不同的评价指标,比如学生离散度、紧迫度等,以便生成更加科学的排课方案。

4.排课方案更灵活:基于遗传算法的排课系统可以根据需求进行适度的调整,比如增加或减少课程、班级等,从而生成更加灵活的排课方案。

四、未来展望基于遗传算法的排课系统是一种高效、精准、科学的排课方案,未来将在教育管理中扮演着越来越重要的角色。

随着技术的不断发展,基于遗传算法的排课系统也将不断进化和优化,以便更好地服务于教育事业的发展。

基于遗传算法的高校排课分析

基于遗传算法的高校排课分析

[ 2 ] 陈春 明 . 遗 传算 法在 自动排课 系统 中的应 用研 究【 D】 . 苏
州: 苏州大学, 2 0 0 9 : 4 7 - 4 9 .
[ 3 】 朱 良学. 遗 传算 法在 车 间调度 中的应 用研 究[ D 】 . 兰州: 兰
州大学, 2 0 0 7 : 5 4 - 5 7 .
务的反馈 自动生成课表 ,这个过 程主要实现课时 、 地点 的安排 ;第 四,自动排课完成后 ,根据排课结 果以及对课程 、班级 、教师 、教室等各种 因素可能 出现 的冲突 ,对课 表进行微调 ;最后 ,调整 完成
课 程 :给班级安排的教室必须可以容纳所有上该课 程的学生 :必须要有特定的教室提供给特定课程使 用 ( 如实验课 ) ;尽可能满足大多数人 相邻两节课 上课地点近 :为了方便本地学生尽早 回家周五下午
2 . 1 排课考虑的要素 笔者总结的排课要素主要有 以下几个 :同一时 刻一个学生只能选择一 门课程 ;同一时刻 同一个教
室 只能 上 一 门课 程 :同一 时刻 一个 教 师 只能 上一 门
教室或 多媒体 ,合堂教室及语音 室等 ) ,时间类型 ( 上午 ,下午 ,晚 自习或周末 ) ;第三 ,系统根据任
的特 点等 因 素 ,主要 分析 如下 。
1 )时间间隔 。人脑 记得最牢 固的是事 物的开
它运用于排课系统是十分科学合理 的,排课效率有 较大提升。
参考文献 :
头和结尾 ,可以使用这条规则来安排学习时间,以
此提高学习成效。1 个课 时大约为 4 5 分钟 ,2 个课 时加 中间休息为 9 5 分钟 .超过这个时间学生的注 意力开始不集 中。 2 )时间元 。人体的神经系统经过 一夜的睡眠

基于遗传算法的排课问题的研究

基于遗传算法的排课问题的研究

基于遗传算法的排课问题的研究排课问题是教育领域中一个重要的问题,它涉及到学校的教学安排、教师的教学任务分配、学生的课程安排等多个方面。

针对这一问题,本文提出了基于遗传算法的排课方法,并对其进行了实验验证。

实验结果表明,该方法能够有效地解决排课问题,具有较高的可行性和实用性。

关键词:排课问题;遗传算法;教学安排;教师任务分配;学生课程安排一、引言排课问题是教育领域中一个重要的问题,它涉及到学校的教学安排、教师的教学任务分配、学生的课程安排等多个方面。

在传统的排课方法中,通常是通过人工编排的方式进行排课,这种方法存在效率低、难以保证排课结果的合理性等问题。

因此,如何采用更加科学、智能化的方法来解决排课问题,成为了当前教育领域中一个亟待解决的问题。

遗传算法是一种基于进化论的优化算法,它模拟自然界中生物进化的过程,通过遗传、交叉、变异等操作,不断优化目标函数,最终得到最优解。

在排课问题中,遗传算法可以通过对教师课表、学生课表等进行编码,然后通过遗传、交叉、变异等操作,不断优化排课结果,最终得到最优的排课方案。

因此,本文提出了基于遗传算法的排课方法,并对其进行了实验验证。

二、相关研究在排课问题的研究中,已经有许多学者提出了各种各样的方法。

例如,有些学者采用了基于规则的方法,通过编写一些规则来指导排课过程,例如规定某些科目只能在特定的时间段上课等。

还有一些学者采用了基于约束的方法,通过定义一些约束条件来指导排课过程,例如规定某些教师只能教授特定的科目等。

此外,还有一些学者采用了基于优化的方法,例如采用模拟退火算法、遗传算法等方法来优化排课结果。

在这些方法中,基于优化的方法具有较强的优势,因为它可以通过对目标函数的优化,得到最优的排课方案。

而遗传算法作为一种优化算法,已经被应用于排课问题的研究中,并取得了一定的成果。

例如,有些学者采用了遗传算法来优化教师课表,通过对教师的课程安排进行优化,使得教师的教学任务更加合理化。

基于遗传算法的排课系统

基于遗传算法的排课系统

基于遗传算法的排课系统摘要:随着高校的发展,在教务管理系统中使用的排课模型也变得越来越复杂,亟需一种适用于开发、重用及设计的方法。

针对这种情况,本文给出了排课问题的数学模型,提出基于遗传算法解决方案。

结果表明,该算法能比较有效的解决排课问题。

该方法易于学习和应用,且不必依赖特殊的实现模式。

关键词:排课遗传算法优化算法一、介绍随着近几年各个高校的合并与扩招,我国的综合性大学和各个高校中在校的学生数量的大大增加,对于高校教务部门来说,排课工作是非常令人头痛的事,经常会出现课程排列冲突,比如:一个教师在同一时间上两门课,有两个教师同时去一个教室上不同的课程,有些教师在特定时间不可以上课。

如果没有很好地解决这些冲突,必将产生教学混乱等现象。

可见,排课算法的正确性、高效性是非常关键的。

[1]20世纪70年代中期,就有人论证了课表问题是NP完全问题。

当课表所涉及的任何信息量稍有变化将会导致课表编排选择方案的剧增。

课表问题存在固定的数学模型,能找到相应的解,且是一组解集。

为此,现提出一些关于高校教学管理系统排课的算法。

二、排课问题的数学模型学校排课问题本质上是时间表问题的一类典型应用实例,是为了解决课程安排对时间和空间资源的有效利用并避免相互冲突。

在排课过程中,需要考虑课程教学效果、满足教师特殊要求等多项优化指标,将各门课程安排到相应的时间和教室需要付出一定的“成本”(Cost)。

符号与约束条件设课程集合:L={l1,l2,.,lp,.,lP};班级集合:C = {c1,c2,.,cm,.,cM} ;教室集合:R = {r1,r2,.,rn,.,rN} ;教师集合:S={s1,s2,.,sk,.,sK} ;时间集合:T={t1,t2,.,td,.,tD};时间与教室对的笛卡尔积为:G=T·R=(t1,r1),(t1,r2),.,(tD,rN);G中的元素称为时间教室对;课表问题的求解过程就转化成为每一门课程寻找一个合适的时间教室对。

基于遗传算法的排课算法

基于遗传算法的排课算法

基于遗传算法的排课算法蒲保兴(邵阳学院信息与电气工程系,湖南 邵阳 422001)摘 要: 本文把排课问题转化为一个组合优化问题,在此基础上以罚函数的方法建立数学模型,并给出了基于遗传算法的解法,提出“动态罚值权定标方法”和“分块遗传策略”.关键词: 排课算法;遗传算法;分块遗传策略;培养型变异;动态罚值权定标中图分类号:G 642 文献标识码:A 文章编号:100528036(2006)0120083205收稿日期:2005206201作者简介:蒲保兴(1965-),男(瑶族),邵阳学院信息与电气工程系,副教授、硕士,主要从事人工智能研究. 优化排课问题就是在给定教师资源、教室资源和开课计划的前提下,如何合理地安排课表问题.其实质是含约束条件的目标函数优化问题,运筹学中论及了一些特殊的优化问题求解方法,如线性规划的单纯形法等[1].在对排课问题建立数学模型后,发现它难以用传统的启发式算法求解,而且其约束条件和目标函数难以用解析式表示出来,因此,必须寻求其他的算法.遗传算法[2~5]作为一种有效的全局搜索方法,从产生至今不断扩展了其应用领域,由于它的鲁棒性,适用范围广,有组织性、自适应和学习性、并行性、不需要求导和其他辅助知识等特点,在求最优化问题时,甚至只需给出目标函数的计算规则而不必给出目标函数的解析式等优点,备受人们喜爱,遗传算法为排课问题的求解提供了有效的途径.1 数学模型的建立在实际排课过程中,以某一等长的时间段为课表的时间安排单位,称之为时间单元.一个可行的课表安排应满足以下约束条件:课表以一个星期为一周期,一个星期的课表就是一个学期的课表;课表应满足班级、教师、教室上课不冲突;教室的座位应该满足上课班级学生的需要;其他一些特殊要求.在满足以上约束的前提下,应尽量使课程安排合理,符合教学规律,这叫做优化目标.优化目标包括以下几个方面:同一班级的同一门课程在时间安排上应尽量均衡;同一教师担任的所有的课程在时间上应安排均衡;同一班的同一门课程或同一教师担任的所有课程在节次上应错开,即不能均是相同的节次,例如,某一门课程每周开3次,这三次中最好有1—2节、3—4节、5—6节,不能都是1—2节或3—4节;若教室有空余的时间单元可以不排课,则这些空余时间单元应放在较差的时间段内,比如说下午.以上的约束条件和优化目标可能会互相矛盾,在教师、教室资源比较紧张的情况下,有可能会发生顾此失彼的现象,这里应当说明的是,对于约束条件和优化目标是难以用解析式描述的.设教室有n 1间,一个星期内有n 2天为上课时间,每间教室在每一天能排课的时间单元数为n 3,则一周内所有的教室可以排课的时间单元数为n 1×n 2×n 3,不妨把这些可供安排的时间单元记为T 1,T 2,Λ,T n ,我们把它称之为教室时间单元,其中n =n 1×n 2×n 3.为了方便操作,可以把属于同一间教室的时间单元放在一起,同时记下每一间教室在每一天的时间单元所对应的序号.2006年2月第15卷 第1期中央民族大学学报(自然科学版)Journal of the CUN (Natural Sciences Edition )Feb.2006V ol.15 N o.1根据教学计划,可以得出每一个班级、每一门课程在每周内应安排课的次数,我们把每一次课称之为课程时间单元,它要占用一个教室时间单元,综合各个班的每门课程每周内应安排课的次数,便可以得出一周内所有的班级、所有课程所需要的课程时间单元,不妨记为C1,C2,Λ,C m,同时记下每一课程时间单元对应的班级名称、课程名称和任课教师.那么,排课问题就是如何把课程时间单元C1,C2,Λ, C m指派到教室时间单元T1,T2,Λ,T n中去的一个指派问题.一般来说,有m≤n,当m<n时,可以添加n-m个虚拟课程时间单元后,凑成n个课程时间单元,其中虚拟课程时间单元并没有对应实际的课程,这样就变成了n个课程时间单元指派到n个教室时间单元的一个非平衡指派问题.进一步分析,让C1,C2,Λ,C n和T1,T2,Λ,T n的次序固定,那么一次具体的指派就是把每一课程时间单元Ci 指派给某一个教室时间单元,不妨记为Tli,从而一次具体的指派与n个自然数的全排列l1,l2,Λ,l n对应,反之亦然,即n个自然数的一个全排列l1,l2,Λ,l n对应一个具体的排课指派,其中:l i∈{1,2,Λ,n},且当i≠j时有l i≠l j 从以上分析可以看出,问题的实质是一个组合优化问题,为了便于操作,把约束条件以罚函数的方式计入目标函数,若某一课程、某一班级或某一教师的排课不满足约束条件,则给目标函数加上一个单位的罚值,若有多处不满足,则进行罚值累加.优化目标同样也以罚函数的方式计入目标函数,当某一排课在某一处不满足优化目标,则给予相应的罚值,若多处不满足,进行罚值累加.从而目标函数值是约束罚值与优化罚值的带权和.其最小值为0,对应为最为理想的排课方式.从此可以看出排课问题是一个求最小值问题.其数学模型为:min F(l1,l2,Λ,l n)l i∈{1,2,Λ,n} i=1,2,Λ,n(1)st l i≠l j 当i≠j时(2) 2 基于遗传算法的优化排课问题的求解2.1 基于动态罚值权定标的目标函数的计算方法约束条件和优化目标有轻重缓急之分,约束条件是必须满足的,优先级别最高,而各种优化目标也有优先级之分,应尽量满足级别高的优化目标.由于它们都转化为罚值,则其罚值权是不同的,高一级的罚值权比所有低级的罚值和还要大.从此可以看出,采用静态定标罚值权的方法是不可取的,我们采用动态罚值权的定标方法.遗传进化在进行选择操作中,我们着眼于目标函数或适应度函数的相对值而不关心其绝对值,确定个体的目标函数的真正目的是在于确定个体在群体中的优劣,因此我们根据整个群体情况来统一定标罚值权,我们把各级的罚值用一个向量来表示,而目标函数便是各级罚值的带权和.设有k级罚值,其优先级是从大到小严格按顺序排列的,其中第一级罚值对应的是约束罚值,其余各级罚值是根据优先级排列的各级优化罚值,每一级罚值应有一个罚值权,一次具体的排课对应于不同级别的罚值分别为(p1,p2,Λ,p k),它构成了一个k维向量,那么目标函数便是各分量的带权和,不妨记为:F=‖(p1,p2,Λ,p k)‖ 现在来说明目标函数计算方法,设群体规模为M,每一个体对应一种排课方式,第i种排课方式对应的罚值向量为(pi1,p i2,Λ,p ik),则它对应的目标函数值记为F i=‖(p i1,p i2,Λ,p ik)‖.第1步 定所有个体的目标函数的初始值为0,即0→Fi(i=1,2,Λ,M),k→t;第2步 取Gt=1,即优先级最低的罚值权为1;第3步 分别计算Fi =F i+G t×p it,其中i=1,2,Λ,M;48中央民族大学学报(自然科学版)第15卷 第4步 t -1→t ,若t =0,结束;否则,取G t =max (F 1,F 2,Λ,F M ),转第2步;以上求出(G 1,G 2,Λ,G k )便是各级的罚值权,同时计算出了每一个体的目标函数.2.2 编码策略与适应度函数标准的遗传算法采用二进制编码[6~7],但是,排课问题若采用二进制编码则不太直观,且交叉和变异较难操作,因此,就取这n 个自然数的全排列作为染色体编码:l 1l 2Λl n 这样交叉和变异操作就变得容易一些,且解码操作也非常容易.采用上述所述动态目标函数的计算方法,从计算过程可以看出,函数值越小,说明其罚值越小,其排课的质量越高,因此,原问题是求目标函数的最小化问题.适应度函数应反映目标函数的相对大小,另外,对于较差的个体应减小其选择压力[4].因此适应度函数为:f i =(1+c )×(max (F 1,F 2,Λ,F M )-min (F 1,F 2,Λ,F M ))-(F i -min (F 1,F 2,Λ,F M ))其中c 为一非负数,它的变化可以引起选择压力的变化.2.3 交叉算子和变异算子采用单点、对称、大片断基因保留、小片断基因保序的交叉办法[8],即对于父个体1和父个体2,随机地选择一个交叉点,同时确定该交叉点的对称点,父个体1的基因被交叉点分成了两部分,同时父个体2的基因被对称交叉点分成了两部分,在父个体1中选取较长的一部分基因直接遗传给子个体1,父体1中较短的那一部分基因接在父个体2中的顺序重新排列后组成子个体1的另一部分基因.同理,把父个体2的较长的一部分基因直接遗传给子个体2,把父个体2中较短的那一部分基因接在父个体1中的排列顺序重新排列组成子个体2的另一部分基因.例如,有以下两个父个体:父个体1:347651289,父个体2:134562987产生一个[1,8]之间的随机整数作为交叉点位置,比如交叉点位置为6,则对称交叉点的位置为3,那么交叉点和对称交叉点把两个父个体的基因分成了两部分父个体1:347651|289,父个体2:134|562987把父个体1中较长的一部分基因(347651)直接遗传给子个体1,父个体1中较短的那一部分基因(289)在父个体2中的顺序为(298),于是得出子个体1,同理可以得到子个体2.子个体1:347651|298,子个体2:341|562987从以上可以看出,新的个体保留两个父个体的共同特性,它继承了其中一个父个体中较长的基因片断和另一父个体中较短的基因顺序.尽量保证父个体中的优良模式遗传到下一代.此外,这种交叉方式能保证经交叉后的子个体仍然在所讨论的遗传空间中.采用随机交换基因变异法,其操作如下,对每一个体,其各位基因变异的顺序是从第一位基因开始,从左至右逐位变异.对每一位基因,在变异概率的作用下,进行操作,产生一个[0,1]之间的随机数r ,若r >p m (其中p m 为变异概率),则该位不发生变异,否则,该位发生变异.当某一位发生变异时,首先,产生一个[1,n ]之间的随机整数p ,然后使该位处与第p 位处的基因进交换.例如对于个体234578916,假设对第4位(该位的基因为5)进行变异,产生一个1至9之间的随机整数,不妨为7,则对该位的变异就是把该位的基因与第7位的基因进行交换,经变异后的个体为:234978516.显然,经变异后的个体仍然在所讨论的遗传空间中.此外,根据人类进化的规律,变异应该是往更好的方向发展,子个体虽然继承了父个体的特性,同时应有别于父个体,增加新的、更好的特性,在变异过程中,一方面是随机的,另一方面应有向适应高方向发展的趋势,因此,我们提出了“培养型变异”策略,其基本思想是:当个体被变异后产生了新的个体,比较新个体的适应度与父个体的适应度,若新个体比父个体的适应度高,则把新个体替换原有个体,否则,再进行一次变异,而第二次变异对适应度不作检查,直接替换原有个体.改进后的变异策略,一方面保持了变异的随机性,另一方面含有向适应度高的方向发展的趋势[9].58 第1期蒲保兴:基于遗传算法的排课算法3 分块遗传策略和算例就实际排课的情况来看,作为指派的对象教室和被指派的对象班级往往存在着分块对应的关系[10~11],即按系或学院分配教室的情况居多,有时甚至所有班级的教室固定.这样,教室被分成了若干块,而班级也分成了相应的若干块,每个班的课程只能安排在相应的教室块内,且可共享该块内的所有教室.各块之间的排课既有一定的独立性,又有一定的联系,因为教师资源是共享的,同一教师可以在两个以上的班级块内任课.针对这种情况,我们提出了“分块遗传策略”.分块遗传策略的基本思想是:根据教室分块情况和班级分块情况,把教室时间单元分成若干块,同样把课程时间单元也相应地分成与教室单元块数量一致的若干块,调整各块之间的排列顺序,使教室时间单元块与课程时间单元块一一对应.在进行排课指派时,应满足这一基本原则:每一课程时间块中任一单元可以被指派到相应教室时间块中的任一单元,但不能被指派到别的块中.因此,为了满足这一原则,在交叉和变异过程中,只要限制交叉和变异操作在块内进行即可.问题的实质便是“交叉、变异块内进行,适应度计算综合考虑”.具体操作如下:设可以指派的教室时间单元和被指派的课程时间单元分别被分成了相应的p块,同时对每个课程时间单元块添加若干虚拟课程时间单元,凑成单元数目与相应教室块的单元数目一致.教室时间单元和课程时间单元如下:T11T12ΛT1k1T21T22ΛT2k2ΛTp1T p2ΛT pkp,C11C12ΛC1k1C21C22ΛC2k2ΛCp1C p2ΛC pkp 每一块内的排课方式与一个自然数的全排列对应,这样一个自然数的全排列组成了染色体一个基因段,整个染色体编码由若干块基因段连接而成.块内排课的可按上述介绍的方法进行,所有的块并行地进行块内交叉和变异操作,而目标函数的计算则综合考虑,不仅考虑了块内排课的约束和优化,还需考虑块间排课方式由于教师资源的共享而不至于冲突.适应度的计算与精英保留策略是针对整染色体来考虑的,这便构成了分块遗传策略,它屏蔽了大量的“不可行解”,使得遗传空间缩小,从而提高了算法的运行效率.根据上述算法原理,我们给出了一个仿真系统,采用该仿真系统对下述数据进行了计算,得到了较为满意的结果.现有可供排课的教室2间,属于同一块,每一周有5天上课时间,每天3个时间单元,对一个星期的教室时间单元进行展开,得到了30个教室时间单元,设它们的编号分别为1,2,Λ,30,同时记下每个教室时间单元对应的教室编号、所在块号,以及工作日号和节次号.并假设有3个班参与排课,教学计划如表1.表1 排课计划T ab.1 Plan of school timetable arrangement班级编号班级名称课程名称教师编号教师姓名每周次数块号1中文系一班中国革命史1陶老师311中文系一班高等数学2王老师211中文系一班普通物理3刘老师311中文系一班公共外语4孙老师212数学系二班中国革命史1陶老师212数学系二班高等数学2王老师312数学系二班体育5李老师212数学系二班哲学6曾老师313物理系一班普通物理3刘老师213物理系一班公共外语4孙老师213物理系一班体育5李老师313物理系一班哲学6曾老师21 68中央民族大学学报(自然科学版)第15卷 以上共有16门课,在一个块内安排,与教室分块对应,每周共有29个课程时间单元,添加1个虚拟的课程时间单元,凑成30个课程时间单元,记它们编号分别为1,2,Λ,30,并记下它们对应的班级编号和任课教师编号,从而染色体的串长为30,群体规模取70,交叉概率为0.04653,变异概率为0.021,采用上述算法进行计算,两分钟后,得到最优个体为:10,5,30,26,4,2,13,9,29,6,11,1,19,14,3,22,8,1,28,24,20,15,7,18,23,21,25,17,12,16.它对应的各级约束罚值分别为:第一级 可行性约束罚值为0,说明满足可行性约束,课表不会发生冲突;第二级 同一班同一门课程不能安排在同一天,其罚值为0;第三级 虚拟时间单元尽量安排在较差的时间段,其罚值为0;第四级 课程安排在时间上均衡以及同一门课程在节次上错开,其罚值为8.上述最优个体的意义是第一个课程时间单元被安排在第10个教室时间单元(第一间教室的星期四1-2节课),第二个课程时间单元被安排在第5个教室时间单元(第一间教室的星期二3-4节课),依此类推,便可以得出完整的课表.从以上分析论证可以看出,该算法是切实可行的,采用该算法完全可以开发出一个较为满意的排课系统,它不仅适用于大专院校教室共享、分块共享的情形,同时也适合中小学教室独占、即每个班的教室独占的情况.该算法在运行时间上可能稍长了一点,但并不妨碍算法的使用,如能采用一些启发式方法改善运行时间,则算法的效果将更加好.参考文献:[1] 《运筹学》教材编写组.运筹学[M].北京:清华大学出版社,1999.[2] 周明,孙树栋.遗传算法原理及应用[M].北京:国防工业出版社,1999.[3] 陈国良,等.遗传算法及其应用[M].北京:人民邮电出版社,1996.[4] 李敏强,寇纪淞,等.遗传算法基本理论与应用[M].北京:科学出版社,2002.[5] 王小平,曹立明.遗传算法[M].西安:西安交大出版社,2002.[6] 梁吉业.遗传算法应用中的一些共性问题研究[J ].计算机应用研究,1999(7).[7] 彭伟,等.一种函数优化问题的混合遗传算法[J ].软件学报,1999(8).[8] 梁艳春,等.遗传算法求解旅行商问题时的基因片断保序[J ].系统工程与实践.2000(7).[9] 胡欣,等.遗传算法求解投资项目选择问题[J ].计算机应用研究,1999(4).[10] 刘锋,等.基于改进型遗传算法的门阵列模式布局[J ].小型微型计算机系统,2002(3).[11] 王斌,等.一种防止遗传算法过早收敛的“两阶段交替法”[J ].小型微型计算机系统,2003(3).T he A lgorithm o f A rranging School T im etab le B ased on G enetic A lgorithmsPU Bao 2xing(Department o f Information and Electricity Engineering ,Shaoyang College ,Shaoyang 422001,China )Abstract :The paper trans forms the problem of the school timetable arrangement to the problem of combinatorial optimization ,upon which ,the mathematical m odel is created by penalty function and the s olution to the problem is given based on genetic alg orithms.Furtherm ore it puts forward “the dynamic scaling approach of penalty weight ”and “the blocked genetic method ”.K ey w ords :school timetable arrangement alg orithm ;genetic alg orithm ;blocked genetic method ;culturemutation ;dynamic scaling approach of penalty weight[责任编辑:杨 玉]78 第1期蒲保兴:基于遗传算法的排课算法。

基于遗传算法的排课系统设计与优化策略研究

基于遗传算法的排课系统设计与优化策略研究

基于遗传算法的排课系统设计与优化策略研究1. 引言排课是大多数学校管理中非常重要且困难的任务之一。

合理的排课能够更好地满足学生和教师的需求,并提高教育质量。

然而,由于学校资源的有限性和各种约束条件的存在,设计一个高效且合理的排课系统一直是一个挑战。

遗传算法是一种模拟自然界遗传进化过程的优化算法,在NP-hard问题求解方面具有较好的效果。

因此,本文将基于遗传算法,设计一个排课系统,并通过研究优化策略,改进系统的性能。

2. 系统设计2.1 课程编码每门课程可以用一个唯一的数字编码来表示,从而将课程信息转化为遗传算法的基因组表示。

这样做的好处是可以方便地对课程进行操作和遗传变异。

2.2 个体编码每个个体可以表示为一个时间表,将课程安排在教室的特定时间和日期。

个体编码可以通过对时间和教室进行编码来实现。

2.3 适应度评估为了评估每个个体的适应度,需要定义一种适应度函数。

适应度函数需要综合考虑多个因素,例如是否满足教师和学生的需求,课程时间冲突等。

3. 优化策略为了提高系统的性能,需要研究并实施优化策略。

以下是一些可能的优化策略:3.1 交叉操作在遗传算法迭代过程中,通过对个体进行交叉操作,可以产生新的个体。

在排课系统中,交叉操作可以将两个个体的时间和教室信息进行交换,以产生新的个体。

3.2 变异操作变异操作是通过对个体的基因进行变异,引入新的解决方案。

在排课系统中,可以对某门课程的时间和教室信息进行变异,以产生更多的解决方案。

3.3 精英策略精英策略是在每代中选择适应度最高的个体,并直接复制到下一代。

通过保留最优解决方案,可以快速优化系统的性能。

4. 实验与结果为了验证设计的排课系统和优化策略的有效性,我们使用了一组实际的排课数据进行实验。

结果显示,基于遗传算法的排课系统能够在较短的时间内找到一组满足要求的课程安排,并且通过优化策略的引入,能够进一步提高系统性能。

5. 结论通过基于遗传算法的排课系统设计与优化策略研究,本文提出了一种可行且高效的解决方案。

基于遗传算法的排课系统概要

基于遗传算法的排课系统概要

基于遗传算法的排课系统设计陈常涛一、数据库设计概述排课问题是一个多因素的组合优化问题,属于NP完全类问题。

传统的方法难以得到高质量的课表,而采用遗传算法能更有效地得到更优化的课表。

需求分析排课问题有是关于教师,班级,时间,教室以及课程的多因素优化决策问题。

所以本系统要求实现以下功能1.在得出的课表中教师不能再同一个时间片段同时上两门或两门以上课程。

2.在得出的课表中一个班级在同一个时间片段内不能同时上两门或两门以上课程。

3.由于教室容量有限,所以在同一个时间片段内在该教室上课的班级的人数之和不能大于教室的容量。

4.在同一个教室上的课必须是同一门课,并且是同一个老师教的。

5.所有的课程按照上学期某各个学院的开课计划来安排 概念结构设计1.根据以上所述现划分出实体以及实体的属性如下●教师实体教师有其姓名,教师编号,并且一个教师可以教授多门课程和多个班级。

所以教师实体的属性如下属性一:教师姓名属性二:教师编号属性三:教师所教授的班级编号属性四:教师所授的课程编号●班级实体一个班级有其所属的年纪以及班级号,也有其班级编号,当然还有班级人数这个重要的属性,所以班级实体的属性如下属性一:班级所属年级以及班级号属性二:班级编号属性三:班级人数●教室实体属性一:教室编号属性二:教室容量●课程实体属性一:课程编号属性二:课程名●开课计划实体属性一:班级属性二:课程属性三:该课程每周需要开设的节次逻辑结构设计实体对应以下关系模式●教师(教师编号,教师姓名,教师所教授的班级编号,教师所授的课程编号)●班级(班级号,班级编号,班级人数)●教室(教室编号,教室容量)●课程(课程编号,课程名)●开课计划(班级编号,课程编号,开设节次)物理结构设计实体间参照关系如下教师实体的教师所授的班级编号和课程编号分别参照班级实体的班级编号和课程实体的课程编号开课计划的班级编号和课程编号分别参照班级实体的班级编号和课程实体的课程编号二、算法设计染色体的编码基因编码为:教师编号+课程编号+教室编号并且为了更好地拆分和组合基因,现规定教师编号为四位,课程编号为四位,教室编号为四位基因所代表的意思是某一时间片段的课程安排,而染色体所代表的是所有班级在一周内的20个时间片段的课程安排所以染色体为n个班和20个时间点所组成的二维维数组染色体结构如下:T1 T2 …T19 T20群体的初始化对于每一个班级,按照开课计划实体和教师实体里以及教室实体的数据组合成一个基因随机填入不同的时间片段内。

基于遗传算法的高校排课系统的设计与实现

基于遗传算法的高校排课系统的设计与实现

基于遗传算法的高校排课系统的设计与实现高校排课系统是一种能够自动化生成高校课程表的系统,遗传算法是一种能够模拟自然界进化机制的算法,通过对问题的多个解进行交叉、变异、选择等操作,最终找到适应度最高的解。

本文将介绍基于遗传算法的高校排课系统的设计与实现。

首先,高校排课系统的设计需要考虑以下几个方面:1.课程和教室的约束:每门课程需要有固定的上课时间和地点,每个教室也有固定的可用时间段。

在设计系统时,需要将这些约束考虑进去,以避免出现冲突。

2.教师的约束:每个教师可能同时教授多门课程,而每门课程又可能有不同的上课时间和地点。

因此,在设计系统时,需要将教师的时间和地点约束加入考虑,以确保教师能够合理安排时间和地点。

3.课程时间的合理性:在排课系统中,需要考虑到学生的学习习惯和日常生活习惯。

比如,早上的课程可能对于一些学生来说太早了,下午的课程可能会引起学生的困倦。

因此,我们需要在设计系统时,尽量满足学生的学习需求,提高学习效果。

在设计基于遗传算法的高校排课系统时,可以按照以下步骤进行实现:Step 1: 定义编码方式为了使用遗传算法解决排课问题,需要将排课问题转化为遗传算法可以处理的问题。

可以使用二进制编码表示每门课程的时间和地点,例如使用一个二进制串表示每节课的上课时间和地点。

Step 2: 初始化种群通过随机生成的方式初始化一组候选解,称为种群。

每个候选解对应一个课程表。

Step 3: 计算适应度函数适应度函数用于评估每个候选解的优劣程度,可以考虑课程之间的冲突程度、教室的冲突程度以及学生学习效果等因素。

适应度高的候选解将有更大的概率被选择。

Step 4: 选择操作根据适应度函数的结果,选择部分优秀的候选解作为下一代种群的父母。

Step 5: 交叉操作通过交叉操作,将被选择的父母候选解的部分基因进行交换,生成新的子代候选解。

Step 6: 变异操作通过变异操作,对新生成的子代候选解进行基因的随机变换,以增加种群的多样性。

遗传算法优化求解排课问题的应用研究

遗传算法优化求解排课问题的应用研究

遗传算法优化求解排课问题的应用研究
遗传算法是一种模拟自然进化过程的优化算法,可以应用于求解排课问题。

排课问题是指在规定的时间内,将一定数量的课程安排到不同的时间和地点,满足各种约束条件(如教师和教室的可用性、学生的选课情况等),并使得课程之间的冲突最小化或达到最优化的问题。

遗传算法是一种基于群体的优化算法,它模拟了生物进化的过程,通过“交叉”和“变异”等操作,不断地筛选和优化候选解。

在排课问题中,遗传算法可以通过将染色体表示为课程的安排方案,将基因表示为每个课程的时间和地点等信息,然后通过交叉和变异等操作来不断优化方案,得到最优的课程安排方案。

具体来说,遗传算法求解排课问题的步骤如下:
1. 定义适应度函数:将每个候选解(即课程安排方案)转化为一个数值,表示其优良程度。

通常可以采用课程冲突的数量或教室利用率等指标来作为适应度函数。

2. 初始化种群:将一定数量的随机解作为种群的初始状态。

3. 进行交叉和变异操作:通过交叉和变异等操作,不断地生成新的候选解,以期得到更优的课程安排方案。

4. 评估适应度:对于每个新生成的候选解,计算其适应度,并将其加入到种群中。

5. 选择优秀个体:从种群中选择适应度高的一些个体作为下一代种群的父代,并进行交叉和变异等操作,生成新的候选解。

6. 迭代更新种群:不断地进行上述步骤,直到种群中的最优解满足一定的条件为止。

通过遗传算法的优化求解,可以得到最优的课程安排方案,从而提高课程表的合理性和效率性,达到优化教学资源利用的目的。

以上是关于遗传算法优化求解排课问题的应用研究的简要介绍。

基于遗传算法的排课系统

基于遗传算法的排课系统
W u Zh n eg W a g Fe g u 2 n n k n
( Anh iF mi ln igS h o ,An i u a l P a nn c o l y hu”,Chz o 2 7 0 ) Ha g h uDin i ie st , n z o 3 0 1 ) ih u 4 0 0 ( n z o a z Un v riy Ha g h u 10 8


针对排课问题采用 了鲁棒性较强 的遗传算法 , 详细 阐述 了染色体 编码 、 选择 、 叉 、 交 变异操作 和控 制算 法 。 时间表问题 自适应
T 316 P 0 .
关键词 遗 传算 法
中图分类号
Ti e a e S s e s d o e tc A l ort m t bl y t m Ba e n G ne i g ihm
方 法 : 是 图 的染 色 问 题 也 是 NP完 全 问题 , 有 但 只
2 排 课 问题 的数 学模 型
排课 问题 的数 学模 型 可 简化 为一 个 资 源分 配 模型, 即在满 足 一定 的 约束 条 件 的情 况 下 , 于某 对 些定 量 的资 源分 配 给 不 同 的需 求 个 体 。我 们 的任 务是 将班 级 、 教师 、 课程 、 室根 据教 学计 划 安排 在 教
Ab t a t Ge e i l o ih wh c a o d r b s se s rc n tc a g rt m ih h s g o o u ti mp o e n t e t e a l r b e .Th a e a c l r d — l y d i h i t b e p o lm m e p p r p r iu a e
2 1 变 元集 合 .

基于遗传算法的高校排课系统的设计与实现

基于遗传算法的高校排课系统的设计与实现

基于遗传算法的高校排课系统的设计与实现一、问题分析。

随着高校课程的不断增多和学生数量的增加,高校排课成为一项非常困难的工作。

排课涉及到课程的时间、场地、老师等方面的因素,需要综合考虑各种因素,以达到高效的排课目的。

传统的排课方法通常采用手工绘制课表的方式,这种方法效率低下、易出现错误,需要不断修改和调整,耗费大量人力物力。

因此,设计一种基于遗传算法的高校排课系统,可以提高排课的效率,减少排课的错误率,降低了人力成本。

二、遗传算法的原理。

遗传算法是一种优化问题的求解方法,它的基本原理是通过“遗传”和“进化”这两个概念来寻找问题的最优解。

遗传算法的主要步骤有选择、交叉和变异。

选择:从上一代群体中选择适应度较高的个体,进行保留、复制、选择等操作。

选择也是变异率调整的一个环节。

交叉:通过随机选择两个个体,交配产生新的个体。

交叉有点交叉和位交叉两种方式。

变异:对新生成的个体进行突变,以增加种群的多样性。

三、高校排课系统的设计基本流程。

1.构建数据模型。

根据高校课程的特点,设计适合的数据模型。

数据模型包括学生、课程、班级、教师、教室、时间等各种实体及它们之间的关联。

2.初步生成排课个体。

以生成符合约束条件的初始排课个体为目标,建立相应的适应值评估策略。

3.遗传算法的编码设计。

将个体的排课方案转换为二进制编码,以利于进化计算中的交叉变异。

4.实现遗传算法。

实现遗传算法的各个步骤,包括选择、交叉、变异等步骤。

5.评估适应度。

计算当前个体的适应度值,并根据适应度值选择较优的个体进行下一步计算。

6.生成新一代个体。

通过交叉和变异操作,在当前代个体中生成新的个体。

7.校验解。

对生成的个体进行校验,确保排课方案符合约束条件,如果不符合,则重新生成个体。

8.输出结果。

输出得到的最优排课方案,包括教学时间、教室安排、教师安排等。

四、总体设计。

1.数据库设计。

设计数据库结构,包括各种实体及它们之间的关系。

2.界面设计。

设计用户界面,实现排课数据的录入、编辑、保存等功能。

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

基于遗传算法的排课算法蒲保兴(邵阳学院信息与电气工程系,湖南 邵阳 422001)摘 要: 本文把排课问题转化为一个组合优化问题,在此基础上以罚函数的方法建立数学模型,并给出了基于遗传算法的解法,提出“动态罚值权定标方法”和“分块遗传策略”.关键词: 排课算法;遗传算法;分块遗传策略;培养型变异;动态罚值权定标中图分类号:G 642 文献标识码:A 文章编号:100528036(2006)0120083205收稿日期:2005206201作者简介:蒲保兴(1965-),男(瑶族),邵阳学院信息与电气工程系,副教授、硕士,主要从事人工智能研究. 优化排课问题就是在给定教师资源、教室资源和开课计划的前提下,如何合理地安排课表问题.其实质是含约束条件的目标函数优化问题,运筹学中论及了一些特殊的优化问题求解方法,如线性规划的单纯形法等[1].在对排课问题建立数学模型后,发现它难以用传统的启发式算法求解,而且其约束条件和目标函数难以用解析式表示出来,因此,必须寻求其他的算法.遗传算法[2~5]作为一种有效的全局搜索方法,从产生至今不断扩展了其应用领域,由于它的鲁棒性,适用范围广,有组织性、自适应和学习性、并行性、不需要求导和其他辅助知识等特点,在求最优化问题时,甚至只需给出目标函数的计算规则而不必给出目标函数的解析式等优点,备受人们喜爱,遗传算法为排课问题的求解提供了有效的途径.1 数学模型的建立在实际排课过程中,以某一等长的时间段为课表的时间安排单位,称之为时间单元.一个可行的课表安排应满足以下约束条件:课表以一个星期为一周期,一个星期的课表就是一个学期的课表;课表应满足班级、教师、教室上课不冲突;教室的座位应该满足上课班级学生的需要;其他一些特殊要求.在满足以上约束的前提下,应尽量使课程安排合理,符合教学规律,这叫做优化目标.优化目标包括以下几个方面:同一班级的同一门课程在时间安排上应尽量均衡;同一教师担任的所有的课程在时间上应安排均衡;同一班的同一门课程或同一教师担任的所有课程在节次上应错开,即不能均是相同的节次,例如,某一门课程每周开3次,这三次中最好有1—2节、3—4节、5—6节,不能都是1—2节或3—4节;若教室有空余的时间单元可以不排课,则这些空余时间单元应放在较差的时间段内,比如说下午.以上的约束条件和优化目标可能会互相矛盾,在教师、教室资源比较紧张的情况下,有可能会发生顾此失彼的现象,这里应当说明的是,对于约束条件和优化目标是难以用解析式描述的.设教室有n 1间,一个星期内有n 2天为上课时间,每间教室在每一天能排课的时间单元数为n 3,则一周内所有的教室可以排课的时间单元数为n 1×n 2×n 3,不妨把这些可供安排的时间单元记为T 1,T 2,Λ,T n ,我们把它称之为教室时间单元,其中n =n 1×n 2×n 3.为了方便操作,可以把属于同一间教室的时间单元放在一起,同时记下每一间教室在每一天的时间单元所对应的序号.2006年2月第15卷 第1期中央民族大学学报(自然科学版)Journal of the CUN (Natural Sciences Edition )Feb.2006V ol.15 N o.1根据教学计划,可以得出每一个班级、每一门课程在每周内应安排课的次数,我们把每一次课称之为课程时间单元,它要占用一个教室时间单元,综合各个班的每门课程每周内应安排课的次数,便可以得出一周内所有的班级、所有课程所需要的课程时间单元,不妨记为C1,C2,Λ,C m,同时记下每一课程时间单元对应的班级名称、课程名称和任课教师.那么,排课问题就是如何把课程时间单元C1,C2,Λ, C m指派到教室时间单元T1,T2,Λ,T n中去的一个指派问题.一般来说,有m≤n,当m<n时,可以添加n-m个虚拟课程时间单元后,凑成n个课程时间单元,其中虚拟课程时间单元并没有对应实际的课程,这样就变成了n个课程时间单元指派到n个教室时间单元的一个非平衡指派问题.进一步分析,让C1,C2,Λ,C n和T1,T2,Λ,T n的次序固定,那么一次具体的指派就是把每一课程时间单元Ci 指派给某一个教室时间单元,不妨记为Tli,从而一次具体的指派与n个自然数的全排列l1,l2,Λ,l n对应,反之亦然,即n个自然数的一个全排列l1,l2,Λ,l n对应一个具体的排课指派,其中:l i∈{1,2,Λ,n},且当i≠j时有l i≠l j 从以上分析可以看出,问题的实质是一个组合优化问题,为了便于操作,把约束条件以罚函数的方式计入目标函数,若某一课程、某一班级或某一教师的排课不满足约束条件,则给目标函数加上一个单位的罚值,若有多处不满足,则进行罚值累加.优化目标同样也以罚函数的方式计入目标函数,当某一排课在某一处不满足优化目标,则给予相应的罚值,若多处不满足,进行罚值累加.从而目标函数值是约束罚值与优化罚值的带权和.其最小值为0,对应为最为理想的排课方式.从此可以看出排课问题是一个求最小值问题.其数学模型为:min F(l1,l2,Λ,l n)l i∈{1,2,Λ,n} i=1,2,Λ,n(1)st l i≠l j 当i≠j时(2) 2 基于遗传算法的优化排课问题的求解2.1 基于动态罚值权定标的目标函数的计算方法约束条件和优化目标有轻重缓急之分,约束条件是必须满足的,优先级别最高,而各种优化目标也有优先级之分,应尽量满足级别高的优化目标.由于它们都转化为罚值,则其罚值权是不同的,高一级的罚值权比所有低级的罚值和还要大.从此可以看出,采用静态定标罚值权的方法是不可取的,我们采用动态罚值权的定标方法.遗传进化在进行选择操作中,我们着眼于目标函数或适应度函数的相对值而不关心其绝对值,确定个体的目标函数的真正目的是在于确定个体在群体中的优劣,因此我们根据整个群体情况来统一定标罚值权,我们把各级的罚值用一个向量来表示,而目标函数便是各级罚值的带权和.设有k级罚值,其优先级是从大到小严格按顺序排列的,其中第一级罚值对应的是约束罚值,其余各级罚值是根据优先级排列的各级优化罚值,每一级罚值应有一个罚值权,一次具体的排课对应于不同级别的罚值分别为(p1,p2,Λ,p k),它构成了一个k维向量,那么目标函数便是各分量的带权和,不妨记为:F=‖(p1,p2,Λ,p k)‖ 现在来说明目标函数计算方法,设群体规模为M,每一个体对应一种排课方式,第i种排课方式对应的罚值向量为(pi1,p i2,Λ,p ik),则它对应的目标函数值记为F i=‖(p i1,p i2,Λ,p ik)‖.第1步 定所有个体的目标函数的初始值为0,即0→Fi(i=1,2,Λ,M),k→t;第2步 取Gt=1,即优先级最低的罚值权为1;第3步 分别计算Fi =F i+G t×p it,其中i=1,2,Λ,M;48中央民族大学学报(自然科学版)第15卷 第4步 t -1→t ,若t =0,结束;否则,取G t =max (F 1,F 2,Λ,F M ),转第2步;以上求出(G 1,G 2,Λ,G k )便是各级的罚值权,同时计算出了每一个体的目标函数.2.2 编码策略与适应度函数标准的遗传算法采用二进制编码[6~7],但是,排课问题若采用二进制编码则不太直观,且交叉和变异较难操作,因此,就取这n 个自然数的全排列作为染色体编码:l 1l 2Λl n 这样交叉和变异操作就变得容易一些,且解码操作也非常容易.采用上述所述动态目标函数的计算方法,从计算过程可以看出,函数值越小,说明其罚值越小,其排课的质量越高,因此,原问题是求目标函数的最小化问题.适应度函数应反映目标函数的相对大小,另外,对于较差的个体应减小其选择压力[4].因此适应度函数为:f i =(1+c )×(max (F 1,F 2,Λ,F M )-min (F 1,F 2,Λ,F M ))-(F i -min (F 1,F 2,Λ,F M ))其中c 为一非负数,它的变化可以引起选择压力的变化.2.3 交叉算子和变异算子采用单点、对称、大片断基因保留、小片断基因保序的交叉办法[8],即对于父个体1和父个体2,随机地选择一个交叉点,同时确定该交叉点的对称点,父个体1的基因被交叉点分成了两部分,同时父个体2的基因被对称交叉点分成了两部分,在父个体1中选取较长的一部分基因直接遗传给子个体1,父体1中较短的那一部分基因接在父个体2中的顺序重新排列后组成子个体1的另一部分基因.同理,把父个体2的较长的一部分基因直接遗传给子个体2,把父个体2中较短的那一部分基因接在父个体1中的排列顺序重新排列组成子个体2的另一部分基因.例如,有以下两个父个体:父个体1:347651289,父个体2:134562987产生一个[1,8]之间的随机整数作为交叉点位置,比如交叉点位置为6,则对称交叉点的位置为3,那么交叉点和对称交叉点把两个父个体的基因分成了两部分父个体1:347651|289,父个体2:134|562987把父个体1中较长的一部分基因(347651)直接遗传给子个体1,父个体1中较短的那一部分基因(289)在父个体2中的顺序为(298),于是得出子个体1,同理可以得到子个体2.子个体1:347651|298,子个体2:341|562987从以上可以看出,新的个体保留两个父个体的共同特性,它继承了其中一个父个体中较长的基因片断和另一父个体中较短的基因顺序.尽量保证父个体中的优良模式遗传到下一代.此外,这种交叉方式能保证经交叉后的子个体仍然在所讨论的遗传空间中.采用随机交换基因变异法,其操作如下,对每一个体,其各位基因变异的顺序是从第一位基因开始,从左至右逐位变异.对每一位基因,在变异概率的作用下,进行操作,产生一个[0,1]之间的随机数r ,若r >p m (其中p m 为变异概率),则该位不发生变异,否则,该位发生变异.当某一位发生变异时,首先,产生一个[1,n ]之间的随机整数p ,然后使该位处与第p 位处的基因进交换.例如对于个体234578916,假设对第4位(该位的基因为5)进行变异,产生一个1至9之间的随机整数,不妨为7,则对该位的变异就是把该位的基因与第7位的基因进行交换,经变异后的个体为:234978516.显然,经变异后的个体仍然在所讨论的遗传空间中.此外,根据人类进化的规律,变异应该是往更好的方向发展,子个体虽然继承了父个体的特性,同时应有别于父个体,增加新的、更好的特性,在变异过程中,一方面是随机的,另一方面应有向适应高方向发展的趋势,因此,我们提出了“培养型变异”策略,其基本思想是:当个体被变异后产生了新的个体,比较新个体的适应度与父个体的适应度,若新个体比父个体的适应度高,则把新个体替换原有个体,否则,再进行一次变异,而第二次变异对适应度不作检查,直接替换原有个体.改进后的变异策略,一方面保持了变异的随机性,另一方面含有向适应度高的方向发展的趋势[9].58 第1期蒲保兴:基于遗传算法的排课算法3 分块遗传策略和算例就实际排课的情况来看,作为指派的对象教室和被指派的对象班级往往存在着分块对应的关系[10~11],即按系或学院分配教室的情况居多,有时甚至所有班级的教室固定.这样,教室被分成了若干块,而班级也分成了相应的若干块,每个班的课程只能安排在相应的教室块内,且可共享该块内的所有教室.各块之间的排课既有一定的独立性,又有一定的联系,因为教师资源是共享的,同一教师可以在两个以上的班级块内任课.针对这种情况,我们提出了“分块遗传策略”.分块遗传策略的基本思想是:根据教室分块情况和班级分块情况,把教室时间单元分成若干块,同样把课程时间单元也相应地分成与教室单元块数量一致的若干块,调整各块之间的排列顺序,使教室时间单元块与课程时间单元块一一对应.在进行排课指派时,应满足这一基本原则:每一课程时间块中任一单元可以被指派到相应教室时间块中的任一单元,但不能被指派到别的块中.因此,为了满足这一原则,在交叉和变异过程中,只要限制交叉和变异操作在块内进行即可.问题的实质便是“交叉、变异块内进行,适应度计算综合考虑”.具体操作如下:设可以指派的教室时间单元和被指派的课程时间单元分别被分成了相应的p块,同时对每个课程时间单元块添加若干虚拟课程时间单元,凑成单元数目与相应教室块的单元数目一致.教室时间单元和课程时间单元如下:T11T12ΛT1k1T21T22ΛT2k2ΛTp1T p2ΛT pkp,C11C12ΛC1k1C21C22ΛC2k2ΛCp1C p2ΛC pkp 每一块内的排课方式与一个自然数的全排列对应,这样一个自然数的全排列组成了染色体一个基因段,整个染色体编码由若干块基因段连接而成.块内排课的可按上述介绍的方法进行,所有的块并行地进行块内交叉和变异操作,而目标函数的计算则综合考虑,不仅考虑了块内排课的约束和优化,还需考虑块间排课方式由于教师资源的共享而不至于冲突.适应度的计算与精英保留策略是针对整染色体来考虑的,这便构成了分块遗传策略,它屏蔽了大量的“不可行解”,使得遗传空间缩小,从而提高了算法的运行效率.根据上述算法原理,我们给出了一个仿真系统,采用该仿真系统对下述数据进行了计算,得到了较为满意的结果.现有可供排课的教室2间,属于同一块,每一周有5天上课时间,每天3个时间单元,对一个星期的教室时间单元进行展开,得到了30个教室时间单元,设它们的编号分别为1,2,Λ,30,同时记下每个教室时间单元对应的教室编号、所在块号,以及工作日号和节次号.并假设有3个班参与排课,教学计划如表1.表1 排课计划T ab.1 Plan of school timetable arrangement班级编号班级名称课程名称教师编号教师姓名每周次数块号1中文系一班中国革命史1陶老师311中文系一班高等数学2王老师211中文系一班普通物理3刘老师311中文系一班公共外语4孙老师212数学系二班中国革命史1陶老师212数学系二班高等数学2王老师312数学系二班体育5李老师212数学系二班哲学6曾老师313物理系一班普通物理3刘老师213物理系一班公共外语4孙老师213物理系一班体育5李老师313物理系一班哲学6曾老师21 68中央民族大学学报(自然科学版)第15卷 以上共有16门课,在一个块内安排,与教室分块对应,每周共有29个课程时间单元,添加1个虚拟的课程时间单元,凑成30个课程时间单元,记它们编号分别为1,2,Λ,30,并记下它们对应的班级编号和任课教师编号,从而染色体的串长为30,群体规模取70,交叉概率为0.04653,变异概率为0.021,采用上述算法进行计算,两分钟后,得到最优个体为:10,5,30,26,4,2,13,9,29,6,11,1,19,14,3,22,8,1,28,24,20,15,7,18,23,21,25,17,12,16.它对应的各级约束罚值分别为:第一级 可行性约束罚值为0,说明满足可行性约束,课表不会发生冲突;第二级 同一班同一门课程不能安排在同一天,其罚值为0;第三级 虚拟时间单元尽量安排在较差的时间段,其罚值为0;第四级 课程安排在时间上均衡以及同一门课程在节次上错开,其罚值为8.上述最优个体的意义是第一个课程时间单元被安排在第10个教室时间单元(第一间教室的星期四1-2节课),第二个课程时间单元被安排在第5个教室时间单元(第一间教室的星期二3-4节课),依此类推,便可以得出完整的课表.从以上分析论证可以看出,该算法是切实可行的,采用该算法完全可以开发出一个较为满意的排课系统,它不仅适用于大专院校教室共享、分块共享的情形,同时也适合中小学教室独占、即每个班的教室独占的情况.该算法在运行时间上可能稍长了一点,但并不妨碍算法的使用,如能采用一些启发式方法改善运行时间,则算法的效果将更加好.参考文献:[1] 《运筹学》教材编写组.运筹学[M].北京:清华大学出版社,1999.[2] 周明,孙树栋.遗传算法原理及应用[M].北京:国防工业出版社,1999.[3] 陈国良,等.遗传算法及其应用[M].北京:人民邮电出版社,1996.[4] 李敏强,寇纪淞,等.遗传算法基本理论与应用[M].北京:科学出版社,2002.[5] 王小平,曹立明.遗传算法[M].西安:西安交大出版社,2002.[6] 梁吉业.遗传算法应用中的一些共性问题研究[J ].计算机应用研究,1999(7).[7] 彭伟,等.一种函数优化问题的混合遗传算法[J ].软件学报,1999(8).[8] 梁艳春,等.遗传算法求解旅行商问题时的基因片断保序[J ].系统工程与实践.2000(7).[9] 胡欣,等.遗传算法求解投资项目选择问题[J ].计算机应用研究,1999(4).[10] 刘锋,等.基于改进型遗传算法的门阵列模式布局[J ].小型微型计算机系统,2002(3).[11] 王斌,等.一种防止遗传算法过早收敛的“两阶段交替法”[J ].小型微型计算机系统,2003(3).T he A lgorithm o f A rranging School T im etab le B ased on G enetic A lgorithmsPU Bao 2xing(Department o f Information and Electricity Engineering ,Shaoyang College ,Shaoyang 422001,China )Abstract :The paper trans forms the problem of the school timetable arrangement to the problem of combinatorial optimization ,upon which ,the mathematical m odel is created by penalty function and the s olution to the problem is given based on genetic alg orithms.Furtherm ore it puts forward “the dynamic scaling approach of penalty weight ”and “the blocked genetic method ”.K ey w ords :school timetable arrangement alg orithm ;genetic alg orithm ;blocked genetic method ;culturemutation ;dynamic scaling approach of penalty weight[责任编辑:杨 玉]78 第1期蒲保兴:基于遗传算法的排课算法。

相关文档
最新文档