掌桥专利:专业的专利平台
掌桥专利
首页

基于马尔科夫关联的排课方法及装置

文献发布时间:2023-06-19 12:24:27


基于马尔科夫关联的排课方法及装置

技术领域

本发明属于智能排课技术领域,具体涉及基于马尔科夫关联的排课方法及装置。

背景技术

马尔可夫链(Markov Chain,MC)是概率论和数理统计中具有马尔可夫性质(Markov property)且存在于离散的指数集(index set)和复杂度空间(state space)内的随机过程(stochastic process)。适用于连续指数集的马尔可夫链被称为马尔可夫过程(Markov process),但有时也被视为马尔可夫链的子集,即连续时间马尔可夫链(Continuous-Time MC,CTMC),与离散时间马尔可夫链(Discrete-Time MC,DTMC)相对应,因此马尔可夫链是一个较为宽泛的概念。

排课,即课程编排,是指学校为了正常进行教学工作,对班级、教师、课程及学校教学资源合理安排,制定各种各样课程表的行为。排课是一件很复杂的工作,其中必须要解决的问题是课程冲突的问题,否则教学工作无法正常开展。

排课算法是一个复杂程度相当高的算法,穷举是行不通的。不同的班级,不同的教师的课程纵横交错,不可能对每一种组合一一穷举。一间不到三十个班的学校,其课程组合的数量级常常超过整个宇宙质子数的总和。但在这么多的课程组合中,找出“相对合理”的课程组合,满足学校、教师、学生的要求是可行的。

专利号为CN201710867739.6A的专利公开了一种选课和排课系统及其方法。其包括选课系统和排课系统,选课系统与排课系统之间能够实现数据交换;其中,选课系统包括依次连接的第一应用服务层模块、第一算法模块、数据访问层模块、缓存层模块、数据库模块以及数据库集群层模块;另外,排课系统包括依次连接的第二应用服务层模块、第二算法模块、计算平台和数据存储层模块。该排课方式灵活、颗粒度细、约束自由组合、走班与非走班结合、兼容度高。全自动课表生成算法,允许半自动或手动分配,排课力度可以细化到每一个学生,每一个约束条件的权重可以灵活调整,支持走班和非走班同时排课。

发明内容

有鉴于此,本发明的主要目的在于提供基于马尔科夫关联的排课方法及装置,其通过建立马尔科夫链管理来进行课表生成,相较于传统的人工排课程表或者通过统计的方式来排课程表,其排出的课程表冲突率较低,同时,本发明使用马尔科夫关联预测模型来进行复杂度预测,降低排课表的复杂度,提升配课表的使用便捷性,降低高复杂度导致的排课表错误发生率,同时本发明对排课表进行冲突优化,有效降低了排课表的课程冲突概率发生情况。

为达到上述目的,本发明的技术方案是这样实现的:

基于马尔科夫关联的排课方法,所述方法执行以下步骤:

步骤1:获取排课数据,所述排课数据包括:班级数据、课程数据和教师数据;分别对排课数据分别进行关联,具体包括:建立班级数据和对应课程数据的关联;然后建立课程数据和对应的教师数据的关联;然后将班级数据随机打乱,按照打乱后的班级数据的顺序,建立班级数据的马尔科夫关联;

步骤2:使用预设的马尔科夫关联预测模型对建立好的班级数据马尔科夫关联进行复杂度预测;根据预测的结果,调整马尔科夫链的顺序,直到马尔科夫链的复杂度预测在设定的阈值范围内;

步骤3:根据步骤2最终调整得到的班级数据的马尔科夫链关联,将马尔科夫链中的班级数据对应的课程数据和对应的教师数据进行关联,生成第一课程表;

步骤4:对第一课程表进行冲突优化,得到最终的课程表。

进一步的,所述步骤2中使用预设的马尔科夫关联预测模型对建立好的班级数据马尔科夫关联进行复杂度预测的方法包括:采用K均值聚类算法将马尔科夫关联中的链元素聚为k个簇;构造隐马尔科夫模型λ=[π,A,B],将k个簇作为模型的观测复杂度,将系统复杂度作为隐藏复杂度;π为初始复杂度的概率分布,A为隐藏复杂度转移矩阵,B为隐藏复杂度与观测复杂度关系矩阵;对隐马尔科夫模型进行训练,得到新的隐马尔科夫模型I;利用采集的系统观测值和新的隐马尔科夫模型I对系统实际复杂度进行预测。

进一步的,所述马尔科夫关联预测模型使用如下公式进行表示:

进一步的,所述对隐马尔科夫模型进行训练,得到新的隐马尔科夫模型I的方法包括:随机赋值初始化隐马尔科夫模型的参数,得到初始化的隐马尔科夫模型;选定一组已知的观测序列,利用该观测序列和初始化的隐马尔科夫模型对隐马尔科夫模型进行重估,并对重估后的隐马尔科夫模型I进行反复迭代重估,直至收敛,得到训练好的隐马尔科夫模型,为重估的隐马尔科夫模型中观察到观测序列0的概率。

进一步的,所述步骤4中对第一课程表进行冲突优化,得到最终的课程表的方法包括:引入优先度,结合班级数据、课程数据和教师数据,通过预设随机函数生成原始优先度,再对所述原始优先度进行冲突检测,消除检测到的所述原始优先度中的冲突优先度,获得待选排课优先度;通过预设目标课程生成算法,将所述待选排课优先度进行迭代组合,获得第一组合排课优先度和迭代组合次数;通过预设适应度获取算法,获取适应度,其中,所述适应度包括所述待选排课优先度的待选适应度和所述第一组合排课优先度的第一适应度;基于所述待选适应度和所述第一适应度的比较结果,以及所述迭代组合次数和预设次数阈值的比较结果,输出目标课程优先度。

进一步的,所述对所述原始优先度进行冲突检测,消除检测到的所述原始优先度中的冲突优先度,获得待选排课优先度的步骤包括:检测所述原始优先度是否存在相同时间情况下相同教师的上课课程数量大于1的第一冲突,以及是否存在相同时间情况下相同教室的上课班级数量大于1的第二冲突;若检测到所述原始优先度存在所述第一冲突和/或所述第二冲突,则获取符合所述第一冲突和/或所述第二冲突的优先度作为冲突优先度;通过自动定位变异算子消除所述原始优先度中的所述冲突优先度,获得待选排课优先度。

进一步的,所述待选排课优先度由字符组成,所述预设目标课程生成算法包括预设第一生成方法、预设第二生成方法和预设第三生成方法,所述通过预设目标课程生成算法,将所述待选排课优先度进行迭代组合,获得第一组合排课优先度和迭代组合次数的步骤包括:通过所述预设第一生成方法、所述预设第二生成方法和所述预设第三生成方法中的至少两种方法,将所述待选排课优先度进行迭代组合,获得第一组合排课优先度和迭代组合次数,其中,所述预设第一生成方法为复制所述待选排课优先度,所述预设第二生成方法为随机组合所述待选排课优先度中的任两个优先度,所述预设第三生成方法为将组成所述待选排课优先度的任一字符随机变异。

基于马尔科夫关联的排课装置,所述装置包括:数据关联单元,配置用于获取排课数据,所述排课数据包括:班级数据、课程数据和教师数据;分别对排课数据分别进行关联,具体包括:建立班级数据和对应课程数据的关联;然后建立课程数据和对应的教师数据的关联;然后将班级数据随机打乱,按照打乱后的班级数据的顺序,建立班级数据的马尔科夫关联;复杂度预测单元,配置用于使用预设的马尔科夫关联预测模型对建立好的班级数据马尔科夫关联进行复杂度预测;根据预测的结果,调整马尔科夫链的顺序,直到马尔科夫链的复杂度预测在设定的阈值范围内;第一课表生成单元,配置用于根据步骤2最终调整得到的班级数据的马尔科夫链关联,将马尔科夫链中的班级数据对应的课程数据和对应的教师数据进行关联,生成第一课程表;冲突优化单元,配置用于对第一课程表进行冲突优化,得到最终的课程表。

进一步的,所述冲突优化单元对第一课程表进行冲突优化,得到最终的课程表的方法包括:引入优先度,结合班级数据、课程数据和教师数据,通过预设随机函数生成原始优先度,再对所述原始优先度进行冲突检测,消除检测到的所述原始优先度中的冲突优先度,获得待选排课优先度;通过预设目标课程生成算法,将所述待选排课优先度进行迭代组合,获得第一组合排课优先度和迭代组合次数;通过预设适应度获取算法,获取适应度,其中,所述适应度包括所述待选排课优先度的待选适应度和所述第一组合排课优先度的第一适应度;基于所述待选适应度和所述第一适应度的比较结果,以及所述迭代组合次数和预设次数阈值的比较结果,输出目标课程优先度。

进一步的,所述对所述原始优先度进行冲突检测,消除检测到的所述原始优先度中的冲突优先度,获得待选排课优先度的步骤包括:检测所述原始优先度是否存在相同时间情况下相同教师的上课课程数量大于1的第一冲突,以及是否存在相同时间情况下相同教室的上课班级数量大于1的第二冲突;若检测到所述原始优先度存在所述第一冲突和/或所述第二冲突,则获取符合所述第一冲突和/或所述第二冲突的优先度作为冲突优先度;通过自动定位变异算子消除所述原始优先度中的所述冲突优先度,获得待选排课优先度。

本发明的基于马尔科夫关联的排课方法及装置,本发明通过建立马尔科夫链管理来进行课表生成,相较于传统的人工排课程表或者通过统计的方式来排课程表,其排出的课程表冲突率较低,同时,本发明使用马尔科夫关联预测模型来进行复杂度预测,降低排课表的复杂度,提升配课表的使用便捷性,降低高复杂度导致的排课表错误发生率,同时本发明对排课表进行冲突优化,有效降低了排课表的课程冲突概率发生情况。主要通过以下过程实现:

1.马尔科夫关联的建立:本发明通过建立马儿科夫关联,一方面可以将排课所需要的数据进行关联,另一方面,关联后的数据在进行排课时,将能够从整体出发,将排课数据中的每个数据都考虑到,生成的排课表更加科学,冲突率更小;

2.复杂度的预测和降低:本发明在生成排课表后,进行了复杂度的预测,通过复杂度的预测和降低本发明将课表的复杂度降到了最低,便于后续的课表管理,同时课表逻辑也更加简单,有利于进行排课管理;

3.课表冲突率的优化:本发明通过对课表进行冲突优化,以降低课表的冲突发生率,使得课表更加科学。

附图说明

图1为本发明实施例提供的基于马尔科夫关联的排课方法的方法流程示意图;

图2为本发明实施例提供的基于马尔科夫关联的排课方法及装置的马尔科夫关联的结构示意图;

图3为本发明实施例提供的基于马尔科夫关联的排课方法及装置的排课冲突率随着实验次数变化的曲线示意图与现有技术的对比实验效果示意图。

具体实施方式

下面结合附图及本发明的实施例对本发明的方法作进一步详细的说明。

实施例1

如图1所示,基于马尔科夫关联的排课方法,所述方法执行以下步骤:

步骤1:获取排课数据,所述排课数据包括:班级数据、课程数据和教师数据;分别对排课数据分别进行关联,具体包括:建立班级数据和对应课程数据的关联;然后建立课程数据和对应的教师数据的关联;然后将班级数据随机打乱,按照打乱后的班级数据的顺序,建立班级数据的马尔科夫关联;

步骤2:使用预设的马尔科夫关联预测模型对建立好的班级数据马尔科夫关联进行复杂度预测;根据预测的结果,调整马尔科夫链的顺序,直到马尔科夫链的复杂度预测在设定的阈值范围内;

步骤3:根据步骤2最终调整得到的班级数据的马尔科夫链关联,将马尔科夫链中的班级数据对应的课程数据和对应的教师数据进行关联,生成第一课程表;

步骤4:对第一课程表进行冲突优化,得到最终的课程表。

实施例2

在上一实施例的基础上,所述步骤2中使用预设的马尔科夫关联预测模型对建立好的班级数据马尔科夫关联进行复杂度预测的方法包括:采用K均值聚类算法将马尔科夫关联中的链元素聚为k个簇;构造隐马尔科夫模型λ=[π,A,B],将k个簇作为模型的观测复杂度,将系统复杂度作为隐藏复杂度;π为初始复杂度的概率分布,A为隐藏复杂度转移矩阵,B为隐藏复杂度与观测复杂度关系矩阵;对隐马尔科夫模型进行训练,得到新的隐马尔科夫模型I;利用采集的系统观测值和新的隐马尔科夫模型I对系统实际复杂度进行预测。

实施例3

在上一实施例的基础上,所述马尔科夫关联预测模型使用如下公式进行表示:

具体的,马尔可夫链(Markov Chain,MC)是概率论和数理统计中具有马尔可夫性质(Markov property)且存在于离散的指数集(index set)和状态空间(state space)内的随机过程(stochastic process)。适用于连续指数集的马尔可夫链被称为马尔可夫过程(Markov process),但有时也被视为马尔可夫链的子集,即连续时间马尔可夫链(Continuous-Time MC,CTMC),与离散时间马尔可夫链(Discrete-Time MC,DTMC)相对应,因此马尔可夫链是一个较为宽泛的概念。

实施例4

在上一实施例的基础上,所述对隐马尔科夫模型进行训练,得到新的隐马尔科夫模型I的方法包括:随机赋值初始化隐马尔科夫模型的参数,得到初始化的隐马尔科夫模型;选定一组已知的观测序列,利用该观测序列和初始化的隐马尔科夫模型对隐马尔科夫模型进行重估,并对重估后的隐马尔科夫模型I进行反复迭代重估,直至收敛,得到训练好的隐马尔科夫模型,为重估的隐马尔科夫模型中观察到观测序列0的概率。

具体的,马尔可夫链可通过转移矩阵和转移图定义,除马尔可夫性外,马尔可夫链可能具有不可约性、常返性、周期性和遍历性。一个不可约和正常返的马尔可夫链是严格平稳的马尔可夫链,拥有唯一的平稳分布。遍历马尔可夫链(ergodic MC)的极限分布收敛于其平稳分布。马尔可夫链可被应用于蒙特卡罗方法中,形成马尔可夫链蒙特卡罗(MarkovChain Monte Carlo,MCMC)[2-3],也被用于动力系统、化学反应、排队论、市场行为和信息检索的数学建模。此外作为结构最简单的马尔可夫模型(Markov model),一些机器学习算法,例如隐马尔可夫模型(Hidden Markov Model,HMM)、马尔可夫随机场(Markov RandomField,MRF)和马尔可夫决策过程(Markov decision process,MDP)以马尔可夫链为理论基础。

实施例5

在上一实施例的基础上,所述步骤4中对第一课程表进行冲突优化,得到最终的课程表的方法包括:引入优先度,结合班级数据、课程数据和教师数据,通过预设随机函数生成原始优先度,再对所述原始优先度进行冲突检测,消除检测到的所述原始优先度中的冲突优先度,获得待选排课优先度;通过预设目标课程生成算法,将所述待选排课优先度进行迭代组合,获得第一组合排课优先度和迭代组合次数;通过预设适应度获取算法,获取适应度,其中,所述适应度包括所述待选排课优先度的待选适应度和所述第一组合排课优先度的第一适应度;基于所述待选适应度和所述第一适应度的比较结果,以及所述迭代组合次数和预设次数阈值的比较结果,输出目标课程优先度。

具体的,隐马尔可夫模型(Hidden Markov Model,HMM)是一个状态空间不完全可见,即包含隐藏状态(hidden status)的马尔可夫链,HMM中可见的部分被称为输出状态(emission state),与隐藏状态有关,但不足以形成完全的对应关系。以语音识别(speechrecognition)为例,需要识别的语句是不可见的隐藏状态,接收的语音或音频是和语句有关的输出状态,此时HMM常见的应用是基于马尔可夫性质从语音输入推出其对应的语句,即从输出状态反解隐藏状态。

实施例6

在上一实施例的基础上,所述对所述原始优先度进行冲突检测,消除检测到的所述原始优先度中的冲突优先度,获得待选排课优先度的步骤包括:检测所述原始优先度是否存在相同时间情况下相同教师的上课课程数量大于1的第一冲突,以及是否存在相同时间情况下相同教室的上课班级数量大于1的第二冲突;若检测到所述原始优先度存在所述第一冲突和/或所述第二冲突,则获取符合所述第一冲突和/或所述第二冲突的优先度作为冲突优先度;通过自动定位变异算子消除所述原始优先度中的所述冲突优先度,获得待选排课优先度。

具体的,马尔可夫决策过程(Markov decision process,MDP)是在状态空间的基础上引入了“动作”的马尔可夫链,即马尔可夫链的转移概率不仅与当前状态有关,也与当前动作有关。MDP包含一组交互对象,即智能体(agent)和环境,并定义了5个模型要素:状态(state)、动作(action)、策略(policy)、奖励(reward)和回报(return),其中策略是状态到动作的映射,回报是奖励随时间步的折现或积累。在MDP的演化中,智能体对环境的初始状态进行感知,按策略实施动作,环境受动作影响进入新的状态并反馈给智能体一个奖励。智能体接收“奖励”并采取新的策略,与环境持续交互。MDP是强化学习(reinforcementlearning)的数学模型之一,被用于模拟智能体可实现的随机性策略与回报。MDP的推广之一是部分可观察马尔可夫决策过程(partially observable Markov decision process,POMDP),即考虑了HMM中隐藏状态和输出状态的MDP。

实施例7

在上一实施例的基础上,所述待选排课优先度由字符组成,所述预设目标课程生成算法包括预设第一生成方法、预设第二生成方法和预设第三生成方法,所述通过预设目标课程生成算法,将所述待选排课优先度进行迭代组合,获得第一组合排课优先度和迭代组合次数的步骤包括:通过所述预设第一生成方法、所述预设第二生成方法和所述预设第三生成方法中的至少两种方法,将所述待选排课优先度进行迭代组合,获得第一组合排课优先度和迭代组合次数,其中,所述预设第一生成方法为复制所述待选排课优先度,所述预设第二生成方法为随机组合所述待选排课优先度中的任两个优先度,所述预设第三生成方法为将组成所述待选排课优先度的任一字符随机变异。

实施例8

基于马尔科夫关联的排课装置,所述装置包括:数据关联单元,配置用于获取排课数据,所述排课数据包括:班级数据、课程数据和教师数据;分别对排课数据分别进行关联,具体包括:建立班级数据和对应课程数据的关联;然后建立课程数据和对应的教师数据的关联;然后将班级数据随机打乱,按照打乱后的班级数据的顺序,建立班级数据的马尔科夫关联;复杂度预测单元,配置用于使用预设的马尔科夫关联预测模型对建立好的班级数据马尔科夫关联进行复杂度预测;根据预测的结果,调整马尔科夫链的顺序,直到马尔科夫链的复杂度预测在设定的阈值范围内;第一课表生成单元,配置用于根据步骤2最终调整得到的班级数据的马尔科夫链关联,将马尔科夫链中的班级数据对应的课程数据和对应的教师数据进行关联,生成第一课程表;冲突优化单元,配置用于对第一课程表进行冲突优化,得到最终的课程表。

实施例9

在上一实施例的基础上,所述冲突优化单元对第一课程表进行冲突优化,得到最终的课程表的方法包括:引入优先度,结合班级数据、课程数据和教师数据,通过预设随机函数生成原始优先度,再对所述原始优先度进行冲突检测,消除检测到的所述原始优先度中的冲突优先度,获得待选排课优先度;通过预设目标课程生成算法,将所述待选排课优先度进行迭代组合,获得第一组合排课优先度和迭代组合次数;通过预设适应度获取算法,获取适应度,其中,所述适应度包括所述待选排课优先度的待选适应度和所述第一组合排课优先度的第一适应度;基于所述待选适应度和所述第一适应度的比较结果,以及所述迭代组合次数和预设次数阈值的比较结果,输出目标课程优先度。

实施例10

在上一实施例的基础上,所述对所述原始优先度进行冲突检测,消除检测到的所述原始优先度中的冲突优先度,获得待选排课优先度的步骤包括:检测所述原始优先度是否存在相同时间情况下相同教师的上课课程数量大于1的第一冲突,以及是否存在相同时间情况下相同教室的上课班级数量大于1的第二冲突;若检测到所述原始优先度存在所述第一冲突和/或所述第二冲突,则获取符合所述第一冲突和/或所述第二冲突的优先度作为冲突优先度;通过自动定位变异算子消除所述原始优先度中的所述冲突优先度,获得待选排课优先度。

所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。

需要说明的是,上述实施例提供的系统,仅以上述各功能单元的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能单元来完成,即将本发明实施例中的单元或者步骤再分解或者组合,例如,上述实施例的单元可以合并为一个单元,也可以进一步拆分成多个子单元,以完成以上描述的全部或者单元功能。对于本发明实施例中涉及的单元、步骤的名称,仅仅是为了区分各个单元或者步骤,不视为对本发明的不当限定。

所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域技术人员应能够意识到,结合本文中所公开的实施例描述的各示例的单元、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件单元、方法步骤对应的程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

术语“第一”、“另一部分”等是配置用于区别类似的对象,而不是配置用于描述或表示特定的顺序或先后次序。

术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者单元/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者单元/装置所固有的要素。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术标记作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

以上所述,仅为本发明的较佳实施例而已,并非配置用于限定本发明的保护范围。

相关技术
  • 基于马尔科夫关联的排课方法及装置
  • 基于马尔科夫逻辑网络的数据关联方法、系统及设备
技术分类

06120113283295