论文部分内容阅读
摘要 排课问题历史由来已久,存在于每所学校中,是教学工作正常有序开展的基本保证。针对现在的排课算法进行分析,找出最优算法是很难的,只能是不同的学校根据自身的特点找出一个可行性高的算法来设计排课系统。
关键词 计算机 排课 算法
为了保证教学顺利有序地进行,严格执行教学计划是教学管理的中心环节,为了达到对学生的培养目的、提高教学质量,合理安排的课表起着解决性的作用。随着计算机的广泛应用,深入到每一所学校中,每个学校都在深入发展信息化管理,在此基础上,排课问题也从原来的手工排课逐渐被计算机智能排课所取代。
下面是几种比较著名的算法介绍:
1.Genetic Algorithm简称GA(遗传算法)
遗传算法是由美国Michigan大学的J.Holland教授在1975年首先提出,是借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。这种算法的主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。
遗传算法是从代表问题可能潜在的解集的一个种群开始的,而一个种群则由经过基因编码的一定数目的个体组成。每个个体实际上是染色体带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。因此,在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码,可以作为问题近似最优解。
遗传算法包括选择、交叉和变异三种操作。经过几十年的发展,遗传算法得到了改进和优化,在解决排课问题中发挥了巨大的作用。
2.Backtracking(回溯算法)
回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。
回溯算法是一个既带有系统性又带有跳跃性的搜索算法。它在包含问题的所有解的解空间树中,按照深度优先的策略,从根结点出发搜索解空间树。算法搜索至解空间树的任一结点时,总是先判断该结点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该结点为根的子树的系统搜索,逐层向其祖先结点回溯。否则,进入该子树,继续按深度优先的策略进行搜索。回溯法在用来求问题的所有解时,要回溯到根,且根结点的所有子树都已被搜索遍才结束。而回溯法在用来求问题的任一解时,只要搜索到问题的一个解就可以结束。这种以深度优先的方式系统地搜索问题的解的算法称为回溯法,它适用于解一些组合数较大的问题。
3. Simulate Anneal Arithmetic ,简称SAA(模拟退火算法)
模拟退火算法是1983年Kirkpatrick等人提出的,它来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。根据Metropolis准则,粒子在温度T时趋于平衡的概率为e-ΔE/(kT),其中E为温度T时的内能,ΔE为其改变量,k为Boltzmann常数。用固体退火模拟组合优化问题,将内能E模拟为目标函数值f,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法:由初始解i和控制参数初值t开始,对当前解重复“产生新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。退火过程由冷却进度表(Cooling Schedule)控制,包括控制参数的初值t及其衰减因子Δt、每个t值时的迭代次数L和停止条件S。
模拟退火法多被用来解决实际应用中的优化问题,所以用其来解决排课问题,也取得了一定的成功。
除了以上一些算法之外,国内外还有很多学者,从课元,资源匹配,分组优化策略等不同的角度对排课问题做出了研究。基于课元相关运算的高校排课算法,从课元的角度来分析了排课问题;基于课元与回溯算法的实验室智能排课与预约,将课元问题和回溯算法结合起来设计算法。智能排课系统及多约束条件下的资源分配模型,提出了资源分配的排课模型。排课表问题中的分组优化决策算法将排课问题按照分组优化的策略来研究。基于资源匹配的一种大学排课方法,是一种基于资源匹配的方式来进行大学的排课。
终上所述,迄今为止,还没有一个真正意义上好的算法来解决自动排课这一问题,虽然已经有了各种排课系统来完成排课这一任务,但是算法的好坏还是有待实际使用中来检验的。
关键词 计算机 排课 算法
为了保证教学顺利有序地进行,严格执行教学计划是教学管理的中心环节,为了达到对学生的培养目的、提高教学质量,合理安排的课表起着解决性的作用。随着计算机的广泛应用,深入到每一所学校中,每个学校都在深入发展信息化管理,在此基础上,排课问题也从原来的手工排课逐渐被计算机智能排课所取代。
下面是几种比较著名的算法介绍:
1.Genetic Algorithm简称GA(遗传算法)
遗传算法是由美国Michigan大学的J.Holland教授在1975年首先提出,是借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。这种算法的主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。
遗传算法是从代表问题可能潜在的解集的一个种群开始的,而一个种群则由经过基因编码的一定数目的个体组成。每个个体实际上是染色体带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。因此,在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码,可以作为问题近似最优解。
遗传算法包括选择、交叉和变异三种操作。经过几十年的发展,遗传算法得到了改进和优化,在解决排课问题中发挥了巨大的作用。
2.Backtracking(回溯算法)
回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。
回溯算法是一个既带有系统性又带有跳跃性的搜索算法。它在包含问题的所有解的解空间树中,按照深度优先的策略,从根结点出发搜索解空间树。算法搜索至解空间树的任一结点时,总是先判断该结点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该结点为根的子树的系统搜索,逐层向其祖先结点回溯。否则,进入该子树,继续按深度优先的策略进行搜索。回溯法在用来求问题的所有解时,要回溯到根,且根结点的所有子树都已被搜索遍才结束。而回溯法在用来求问题的任一解时,只要搜索到问题的一个解就可以结束。这种以深度优先的方式系统地搜索问题的解的算法称为回溯法,它适用于解一些组合数较大的问题。
3. Simulate Anneal Arithmetic ,简称SAA(模拟退火算法)
模拟退火算法是1983年Kirkpatrick等人提出的,它来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。根据Metropolis准则,粒子在温度T时趋于平衡的概率为e-ΔE/(kT),其中E为温度T时的内能,ΔE为其改变量,k为Boltzmann常数。用固体退火模拟组合优化问题,将内能E模拟为目标函数值f,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法:由初始解i和控制参数初值t开始,对当前解重复“产生新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。退火过程由冷却进度表(Cooling Schedule)控制,包括控制参数的初值t及其衰减因子Δt、每个t值时的迭代次数L和停止条件S。
模拟退火法多被用来解决实际应用中的优化问题,所以用其来解决排课问题,也取得了一定的成功。
除了以上一些算法之外,国内外还有很多学者,从课元,资源匹配,分组优化策略等不同的角度对排课问题做出了研究。基于课元相关运算的高校排课算法,从课元的角度来分析了排课问题;基于课元与回溯算法的实验室智能排课与预约,将课元问题和回溯算法结合起来设计算法。智能排课系统及多约束条件下的资源分配模型,提出了资源分配的排课模型。排课表问题中的分组优化决策算法将排课问题按照分组优化的策略来研究。基于资源匹配的一种大学排课方法,是一种基于资源匹配的方式来进行大学的排课。
终上所述,迄今为止,还没有一个真正意义上好的算法来解决自动排课这一问题,虽然已经有了各种排课系统来完成排课这一任务,但是算法的好坏还是有待实际使用中来检验的。