一种任务安排表制定方法、装置和介质与流程

文档序号:18199405发布日期:2019-07-17 06:04阅读:193来源:国知局
一种任务安排表制定方法、装置和介质与流程

本发明涉及遗传算法技术领域,特别是涉及一种任务安排表制定方法、装置和计算机可读存储介质。



背景技术:

遗传算法是模仿自然界生物遗传进化过程中“物竞天择、适者生存”的原理,而开发出的一种全局优化随机搜索算法。传统的遗传算法已经在工业工程和设计、经济管理、交通运输等领域得到了广泛的应用。

在实际应用中,常采用遗传算法的思想解决实际问题。例如,学校课程表的安排,公司职员排班表的安排等。但是由于计算机条件的限制,遗传算法的种群规模是有限的,并且在算法运行过程中通常保持群体规模不变。而遗传操作中的选择操作往往使优良个体呈指数级增长,随着种群的进化,部分高适应度模式的指数级增长,必然使得种群中大部分个体趋于一致,种群的多样性逐渐减小。因此,基于遗产算法制定任务安排表时,在进化初期往往会出现大量相同的优良样本,这些优良样本趋于一致,导致样本多样性丧失,使得算法只能收敛于局部任务安排表,引起“早熟”现象的发生。

可见,如何降低任务安排表陷入局部最优,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例的目的是提供一种任务安排表制定方法、装置和计算机可读存储介质,可以有效的降低任务安排表陷入局部最优,提升任务安排表的寻优效率。

为解决上述技术问题,本发明实施例提供一种任务安排表制定方法,包括:

根据初始化后的任务参数,建立满足约束条件的初始任务安排表;

依据预先设定的交叉概率,对各所述初始任务安排表进行自交叉操作,得到多个交叉表;

按照预设规则从所述交叉表中筛选出优化表;

判断各所述优化表是否满足预设条件;

若是,则输出适应度最高的优化表;若否,则将各所述优化表作为初始任务安排表,并返回所述按照预先设定的交叉概率,对各所述初始任务安排表进行自交叉操作,得到多个交叉表的步骤。

可选的,所述按照预设规则从所述交叉表中筛选出优化表包括:

从多个所述交叉表中删除不满足所述约束条件的交叉表,得到优化表;

依据各优化表的适应度,确定出初始优化表;

按照轮盘赌方式从剩余的优化表中筛选出次优表,并将所述初始优化表和所述次优表作为优化表。

可选的,所述判断各所述优化表是否满足预设条件包括:

判断优化表的自交叉操作次数是否达到预设次数。

可选的,所述判断各所述优化表是否满足预设条件包括:

判断是否存在适应度大于或等于预设阈值的优化表。

可选的,所述约束条件包括课程安排等式约束条件、教师满意度约束条件、教室承载力约束条件。

本发明实施例还提供了一种任务安排表制定装置,包括建立单元、自交叉单元、筛选单元、判断单元、作为单元和返回单元;

所述建立单元,用于根据初始化后的任务参数,建立满足约束条件的初始任务安排表;

所述自交叉单元,用于依据预先设定的交叉概率,对各所述初始任务安排表进行自交叉操作,得到多个交叉表;

所述筛选单元,用于按照预设规则从所述交叉表中筛选出优化表;

所述判断单元,用于判断各所述优化表是否满足预设条件;若是,则触发所述作为单元;若否,则触发所述返回单元;

所述作为单元,用于输出适应度最高的优化表;

所述返回单元,用于将各所述优化表作为初始任务安排表,并触发所述自交叉单元。

可选的,所述筛选单元包括删除子单元、确定子单元和作为子单元;

所述删除子单元,用于从多个所述交叉表中删除不满足所述约束条件的交叉表,得到优化表;

所述确定子单元,用于依据各优化表的适应度,确定出初始优化表;

所述作为子单元,用于按照轮盘赌方式从剩余的优化表中筛选出次优表,并将所述初始优化表和所述次优表作为优化表。

可选的,所述判断单元具体用于判断优化表的自交叉操作次数是否达到预设次数。

可选的,所述判断单元具体用于判断是否存在适应度大于或等于预设阈值的优化表。

可选的,所述约束条件包括课程安排等式约束条件、教师满意度约束条件、教室承载力约束条件。

本发明实施例还提供了一种任务安排表制定装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如上述任务安排表制定方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任务安排表制定方法的步骤。

由上述技术方案可以看出,根据初始化后的任务参数,建立满足约束条件的初始任务安排表;依据预先设定的交叉概率,对各初始任务安排表进行自交叉操作,得到多个交叉表;自交叉操作实现了数据的降维处理,在获取新的优良任务安排表的同时,提高了任务安排报的制定速度与精度。按照预设规则从交叉表中筛选出优化表;判断各优化表是否满足预设条件;当优化表满足预设条件时,则输出适应度最高的优化表;当优化表不满足预设条件时,则说明仍需要对任务安排表进行优化,此时可以将各优化表作为初始任务安排表,并返回按照预先设定的交叉概率,对各初始任务安排表进行自交叉操作,得到多个交叉表的步骤。通过不断的优化迭代,从而得到满足预设条件的任务安排表。通过自交叉操作,保证了优化过程中任务安排表的多样性,有效的降低了任务安排表陷入局部最优的情况发生。并且通过对每个初始任务安排表各自进行自交叉操作,降低了数据处理量,提升了任务安排表的寻优效率。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种任务安排表制定方法的流程图;

图2为本发明实施例提供的一种课表自交叉示意图;

图3为本发明实施例提供的一种任务安排表制定装置的结构示意图;

图4为本发明实施例提供的一种任务安排表制定装置的硬件结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

接下来,详细介绍本发明实施例所提供的一种任务安排表制定方法。图1为本发明实施例提供的一种任务安排表制定方法的流程图,该方法包括:

s101:根据初始化后的任务参数,建立满足约束条件的初始任务安排表。

不同的应用场景下,对应有不同的初始任务安排表,例如,企业的员工值班表,学校的排课表等。

以学校的排课为例,排课是将教师与学生在时间和空间上根据不同的约束条件进行排课组合,以使教学工作正常进行。在有限教学资源情况及限定的教学环境下,满足教师授课、班级上课在时间以及空间(教室安排)上的约束条件,并保证不会造成教师授课、班级上课在时间上、空间上的冲突。

约束条件可以包括课程安排等式约束条件、教师满意度约束条件、教室承载力约束条件。在本发明实施例中,根据具体的需求,可以对约束条件进行调整。

其中,课程安排等式约束条件为学校制定的教学计划,例如,课程的学时、课程的周数等。

以课表为例,优化的自变量是某一周某一节课上第几门课程。

s102:依据预先设定的交叉概率,对各初始任务安排表进行自交叉操作,得到多个交叉表。

交叉概率用于表示初始任务安排表中可调整顺序的元素占总元素的比例。对于同一个初始任务安排表,采用不同的交叉方式,可以得到不同的交叉表。

以图2所示的课表自交叉示意图为例,交叉概率用于表示可以交换的课程数占所有课程数量的比例。图2中最上侧的列表为初始课程表,中间位置的列表为需要进行交换的课程,最下侧的列表为自交叉操作后的课程表。图2中各列表中的数字表示课程,数字出现的次数即为该课程的课程数量。

s103:按照预设规则从交叉表中筛选出优化表。

在本发明实施例中,对各任务安排表进行自交叉操作,任意一个满足课程安排等式约束条件的可行课表,通过课表内部自交叉得到的新课表仍然是满足课程安排等式约束条件的课表。通过课表的自交叉操作大大减少了优化的搜索空间范围,实现了降维。

在对初始任务安排表进行交叉操作之后,得到的交叉表可能会不满足除课程安排等式约束条件之外的其它约束条件,为了保证各交叉表的可用性,可以从多个交叉表中删除不满足约束条件的交叉表,得到优化表;依据各优化表的适应度,可以确定出适应度最高的一个优化表作为初始优化表;按照轮盘赌方式从剩余的优化表中筛选出次优表,并将初始优化表和次优表作为优化表。

s104:判断各优化表是否满足预设条件。

优化表的个数有多个,在本发明实施例中,可以以各优化表的自交叉操作次数作为预设条件的判断依据。具体的,可以判断优化表的自交叉操作次数是否达到预设次数。

当各优化表的自交叉操作次数达到预设次数时,说明各优化表满足预设条件,此时可以执行s105。当各优化表的自交叉操作次数未达到预设次数时,说明各优化表仍不满足预设条件,此时可以执行s106。

除了依据自交叉操作次数外,也可以判断是否存在适应度大于或等于预设阈值的优化表。当存在适应度大于或等于预设阈值的优化表时,则说明各优化表满足预设条件,此时可以执行s105;当不存在适应度大于或等于预设阈值的优化表时,则说明各优化表不满足预设条件,此时可以执行s106。

s105:输出适应度最高的优化表。

s106:将各优化表作为初始任务安排表,并返回按照预先设定的交叉概率,对各初始任务安排表进行自交叉操作,得到多个交叉表的步骤。

由上述技术方案可以看出,根据初始化后的任务参数,建立满足约束条件的初始任务安排表;依据预先设定的交叉概率,对各初始任务安排表进行自交叉操作,得到多个交叉表;自交叉操作实现了数据的降维处理,在获取新的优良任务安排表的同时,提高了任务安排报的制定速度与精度。按照预设规则从交叉表中筛选出优化表;判断各优化表是否满足预设条件;当优化表满足预设条件时,则输出适应度最高的优化表;当优化表不满足预设条件时,则说明仍需要对任务安排表进行优化,此时可以将各优化表作为初始任务安排表,并返回按照预先设定的交叉概率,对各初始任务安排表进行自交叉操作,得到多个交叉表的步骤。通过不断的优化迭代,从而得到满足预设条件的任务安排表。通过自交叉操作,保证了优化过程中任务安排表的多样性,有效的降低了任务安排表陷入局部最优的情况发生。并且通过对每个初始任务安排表各自进行自交叉操作,降低了数据处理量,提升了任务安排表的寻优效率。

图3为本发明实施例提供的一种任务安排表制定装置的结构示意图,包括建立单元31、自交叉单元32、筛选单元33、判断单元34、作为单元35和返回单元36;

建立单元31,用于根据初始化后的任务参数,建立满足约束条件的初始任务安排表;

自交叉单元32,用于依据预先设定的交叉概率,对各初始任务安排表进行自交叉操作,得到多个交叉表;

筛选单元33,用于按照预设规则从交叉表中筛选出优化表;

判断单元34,用于判断各优化表是否满足预设条件;若是,则触发作为单元35;若否,则触发返回单元36;

作为单元35,用于输出适应度最高的优化表;

返回单元36,用于将各优化表作为初始任务安排表,并触发自交叉单元。

可选的,筛选单元包括删除子单元、确定子单元和作为子单元;

删除子单元,用于从多个交叉表中删除不满足约束条件的交叉表,得到优化表;

确定子单元,用于依据各优化表的适应度,确定出初始优化表;

作为子单元,用于按照轮盘赌方式从剩余的优化表中筛选出次优表,并将初始优化表和次优表作为优化表。

可选的,判断单元具体用于判断优化表的自交叉操作次数是否达到预设次数。

可选的,判断单元具体用于判断是否存在适应度大于或等于预设阈值的优化表。

可选的,约束条件包括课程安排等式约束条件、教师满意度约束条件、教室承载力约束条件。

图3所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,根据初始化后的任务参数,建立满足约束条件的初始任务安排表;依据预先设定的交叉概率,对各初始任务安排表进行自交叉操作,得到多个交叉表;自交叉操作实现了数据的降维处理,在获取新的优良任务安排表的同时,提高了任务安排报的制定速度与精度。按照预设规则从交叉表中筛选出优化表;判断各优化表是否满足预设条件;当优化表满足预设条件时,则输出适应度最高的优化表;当优化表不满足预设条件时,则说明仍需要对任务安排表进行优化,此时可以将各优化表作为初始任务安排表,并返回按照预先设定的交叉概率,对各初始任务安排表进行自交叉操作,得到多个交叉表的步骤。通过不断的优化迭代,从而得到满足预设条件的任务安排表。通过自交叉操作,保证了优化过程中任务安排表的多样性,有效的降低了任务安排表陷入局部最优的情况发生。并且通过对每个初始任务安排表各自进行自交叉操作,降低了数据处理量,提升了任务安排表的寻优效率。

图4为本发明实施例提供的一种任务安排表制定装置40的硬件结构示意图,包括:

存储器41,用于存储计算机程序;

处理器42,用于执行计算机程序以实现如上述任务安排表制定方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任务安排表制定方法的步骤。

以上对本发明实施例所提供的一种任务安排表制定方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1