首页> 中国专利> 混合启发式规则和遗传算法的动态工作流调度优化方法

混合启发式规则和遗传算法的动态工作流调度优化方法

摘要

本发明公开了混合启发式规则和遗传算法的动态工作流调度优化方法,包括以下步骤:1)设定启发式规则;2)将启发式规则根据编号编码到染色体中,初始化种群;3)根据适应度函数计算每个染色体的适应度值;4)根据适应度值筛选并淘汰部分个体;5)通过交叉和变异生成新的子代个体,直到种群中的个体恢复到原来的数量;6)如果迭代到阀值,则执行步骤7),否则执行步骤3);7)记录当前种群中适应度最高个体所代表的解决方案,并开始执行方案,执行时间为一个周期;8)在一个周期时间结束后,收集尚未调度的任务和在执行期间到达的工作任务,组成一个新的任务集合;9)以新的任务集合为基础,执行步骤2),得到新的调度方案。

著录项

  • 公开/公告号CN113010319A

    专利类型发明专利

  • 公开/公告日2021-06-22

    原文格式PDF

  • 申请/专利权人 华南理工大学;

    申请/专利号CN202110354888.9

  • 发明设计人 陈伟能;肖建平;龚月姣;詹志辉;

    申请日2021-03-31

  • 分类号G06F9/50(20060101);G06N3/12(20060101);

  • 代理机构44102 广州粤高专利商标代理有限公司;

  • 代理人何淑珍;江裕强

  • 地址 510640 广东省广州市天河区五山路381号

  • 入库时间 2023-06-19 11:32:36

说明书

技术领域

本发明涉及工作流调度和智能计算两大领域,主要涉及混合启发式规则和遗传算法的动态工作流调度优化方法。

技术背景

云平台工作流调度可以通过调度任务的执行顺序和资源分配策略,有效地提高资源的利用率,并加快任务整体的完成时间。随着云计算产业的兴起,为了追求一个高效并低能耗的云平台环境,平台对调度算法的要求越来越高。

工作流调度的主要方法包括传统的任务调度算法和基于启发式思想的任务调度算法。传统的任务调度算法,一种是贪心算法,例如OLB,MET,MCT算法,它们分别采用机器最早可用时间优先、最短执行时间优先、最早完成时间优先的策略。而Duplex算法则是基于MET和MCT,并根据系统的负载均衡来选择MET或MCT算法。另外一个种是任务集中调度算法,包括MinMini算法和MaxMin算法。传统的调度算法由于没有考虑到整个云平台任务的整体情况,因此容易陷入局部最优。而基于启发式思想的任务调度算法包括遗传算法、模拟退火算法、蚁群优化算法和粒子群优化算法。相比于传统的调度算法,启发式算法的优点是不受搜索空间限制性假设的约束,不要求连续性、可导性等假设,能从离散的、多极值的、含有噪音的高温问题中以很高的概率找到全局最优解。因此,启发式算法十分适用于工作流调度优化。

Ozdamar(Ozdamar L.A genetic algorithm approach to a general categoryproject scheduling problem[J].Systems Man&Cybernetics Part C Applications&Reviews IEEE Transactions on,1999,29(1):44-59.)提出使用启发式规则和遗传算法相结合,用于调度单个工作流,但是遗传算法主要针对于固定规模的问题,对于动态工作流不具有兼容性。

发明内容

针对以上问题,本发明提出了一种遗传算法与批处理相结合的方法对动态工作流进行调度优化,使遗传算法拥有接近实时处理的能力。本发明的一种混合启发式规则和遗传算法的动态工作流调度优化方法能够运用到云计算平台工作流调度中。

本发明至少通过如下技术方案之一实现。

混合启发式规则和遗传算法的动态工作流调度优化方法,包括以下步骤:

(1)设定需要编码在染色体上的启发式规则;

(2)将确定好的启发式规则根据编号编码到染色体中,设定遗传算法参数,初始化种群;

(3)模拟运行计算每一个任务的具体执行时间,以及所分配的资源,根据适应度函数计算每个染色体的适应度值;

(4)根据适应度值筛选并淘汰部分个体;

(5)通过交叉和变异生成新的子代个体,直到种群中的个体恢复到原来的数量;

(6)如果迭代到设定的阀值,则执行步骤(7),否则,执行步骤(3);

(7)记录当前种群中适应度最高个体所代表的解决方案,并开始执行方案,执行时间为一个周期T;

(8)在一个周期时间结束后,收集尚未调度的任务和在执行期间到达的工作任务,组成一个新的任务集合;

(9)以新的任务集合为基础,开始执行步骤(2),得到新的调度方案。

优选的,所述启发式规则包括:

①最小松弛度MINSK:

P

②最小最晚结束时间MIN LFT:

P

③最小运行时间MIN SPT:

P

④最小最晚开始时间MIN LST:

P

⑤最小最早结束时间MIN EFT:

P

其中,P

优选的,所述适应度函数为:

makespan

其中,ft

优选的,所述工作流W

W

G

其中,W

优选的,所述交叉具体为,在筛选后的种群中,随机选取两个人个体作为父代,并随即选取父代染色体上的两个点作为交叉的起点和终点,然后交换两条染色体上起点和终点之间的片段,生成两个新的染色体。

优选的,所述变异的具体为:对每个染色体的每一维生成一个随机分布于0和1之间的随机数,如果这个随机数小于设定的变异概率P

优选的,在步骤1中,编码染色体时,将启发式的序号设置为染色体上的基因;染色体上的基因决定在调度任务时,应当选择对应的启发式规则。

优选的,所述启发式规则还包括:

1)、先来先服务FCFS:

P

Arri表示任务的到达时间,越早到达的任务执行优先度越高;

2)、最小传输时间MIN TT:

P

dtij表示执行当前任务需要传输的数据量;

3)、随机选择Random:

P

优选的,在步骤4中,种群在迭代时的淘汰率为20%~40%。

优选的,所述参数包括种群大小和迭代次数。

与现有的技术相比,本发明的有益效果为:

由于遗传算法概念简单,易于实现,而且可以适用于解决大部分的NP难问题,因此有广泛的应用。但是由于任务繁多,大大提高了解决问题的规模,因此算法的效率也会下降。因此,本发明在遗传算法中引用了启发式规则,是的遗传算法在迭代时不仅是随机搜索最优解,而是根据一些经验而总结的一些启发规则,从而使得收敛速度更快。同时,为了解决动态环境中的调度问题,采用了遗传算法结合批处理的方式,使得它能够循环调度工作流。

附图说明

图1为本实施例混合启发式规则和遗传算法的动态工作流调度优化方法的流视图;

图2为本实施例动态批处理框架图。

具体实施方式

以下结合附图,进一步对发明的方法进行描述。

在云计算平台中,主要存在计算密集型的问题和数据传输密集型的问题,这些问题都可被归结为工作流问题。在动态的云平台环境中,在一段时间内,往往都会有若干个任务在不定的时刻到达。

如图2所示,本实施例一种混合启发式规则和遗传算法的动态工作流调度优化方法,包括以下步骤:

(1)设定需要编码在染色体上的启发式规则;

所述启发式规则包括:

①MINSK(最小松弛度):

P

②MIN LFT(最小最晚结束时间):

P

③MIN SPT(最小运行时间):

P

④MIN LST(最小最晚开始时间):

P

⑤MIN EFT(最小最早结束时间):

P

其中,P

(2)将确定好的启发式规则根据编号编码到染色体中,确定遗传算法的一些算法参数。例如,设种群大小为N=1000,迭代次数为50。其中,种群的大小和迭代的次数由实际问题而定,如果问题规模小,则可以适当减少种群的大小,如果要求快速收敛得到可行解,则可以减少迭代的次数,如果对结果的精度和效率要求高,则适当增加迭代次数。然后初始化种群。

模拟运行计算每一个任务的具体执行时间,以及所分配的资源,根据适应度函数计算每个染色体的适应度值;所述适应度函数为:

makespan

(3)筛选并淘汰适应度值低的个体,淘汰率通常为种群大小的20%~40%,对于不同的问题可以多次试验得到效果最好的淘汰率;

(4)通过交叉和变异生成新的子代个体,直到种群中的个体恢复到原来的数量;

运用交叉与变异算子以增加粒子群体的多样性。交叉的具体方法为,在筛选后的种群中,随机选取两个人个体作为父代,并随即选取父代染色体上的两个点作为交叉的起点和终点,然后交换两条染色体上起点和终点之间的片段,生成两个新的染色体。

变异的具体方法为:对每个染色体的每一维生成一个随机分布于0和1之间的随机数。如果这个随机数小于变异概率P

(5)如果迭代到设定的阀值,则执行步骤(7),否则,执行步骤(3);

(6)记录当前种群中适应度最高个体所代表的解决方案,并开始执行方案,执行时间为一个周期T;

(7)在一个周期时间T结束后,收集尚未调度的任务和在执行期间到达的工作任务,组成一个新的任务集合;

(8)以新的任务集合为基础,开始执行步骤(2),得到新的调度方案。

图1展示了其中一个拥有5个任务的简单的工作流,每个任务用编号1~5表示。通常,一个工作流W

总的来说,工作流调度就是将工作流中的任务安排到对应的云平台虚拟机,生成具体的工作流调度方案,并且满足使工作流整体的运行时间达到最小。

本发明采用遗传算法和启发式规则混合的算法来获得解决方案。在本发明中使用到的启发式信息主要基于关键路径算法,通过经验将各种变量组合为高效的启发式规则,并结合数据在虚拟机之间传输的时间,用到的启发式信息有:

1.最小松弛度:

由关键路径算法生成一个任务t

P

松弛度表示一个任务可任意安排的一段时间,在这段时间中,无论任务在何时开始何时结束,都不会影响到其他任务的运行。对于较小松弛度时间的任务来说,调度的时间不灵活,因此具有更高的优先级。

2.最早结束时间:

以单个任务在理想条件下最小结束时间lft

P

以每个任务最早结束时间为标准,这样可以最大化在同一台虚拟机上能够处理的任务数量。能有效减少数据传输的时间,并提高处理任务的效率。

3.最小处理时间:

以给定单个任务的工作量d

P

以每个任务最早结束时间为标准,这样可以最大化减少其他任务等待的时间,提高处理任务的效率。

4.最小最晚开始时间:

P

这个启发信息在启发信息2的基础上,考虑了任务本身需要处理的时间。

5.最小最早结束时间:

P

以上为本发明需要使用的启发式信息。定义好所需要的启发式信息后,开始将启发式信息编码入遗传算法的染色体。

由于每个启发式信息都需要使用到关键变量lft

根据给定的种群参数,确定种群的大小,随机初始化种群。对于每个染色体来说,都是一种调度方案,测试每个染色体的适应度。即在当前的集群环境中,按当前染色体的调度方案模拟调度,计算当前染色体的适应度。其适应度方程为:

makespan

其中,ft

以给定的淘汰率参数淘汰适应度低的个体,然后随机选择剩下的个体进行交叉编译产生新的个体,直到种群中染色体的恢复至原来的数量。通常种群在迭代时的淘汰率为20%~40%,由于问题的规模和问题本身的难易程度,需要通过多次的试验从而得出最合适的淘汰率。

对于交叉来说,随机选取父代两条染色体上对应的一段,然后交叉生成新的个体。对比变异来说,对染色体上的每一维都生成一个0-1之间的浮点数,若这个随机数小于给定的变异概率,则对应的维所对应的启发式信心变异为随机的其他的启发式方法。

重复淘汰、生成新个体、交叉变异的过程,直到满足所定义的代数。记录最终代的最优结果。

对于动态的云计算平台来说,工作流在会源源不断的到达。针对这个问题,本发明采用批处理的方式。图2展示了批处理的框架,以时间T为一个周期,在周期开始时,收集上一个周期到达的新工作流和目前尚未调度的工作流,初始化一个种群,迭代到给定代数之后,选取最优的解决方案,作为当前周期的调度方案。然后运行一个周期时间T,在一个周期时间T后,停止运行,进入下一个周期,初始化新的种群,迭代得到下一个周期的解决方案,由此往复,可以不断调度云平台上的任务流。

步骤1中,在将启发式规则编码入种群的染色体中时,具体实施方式1采用了最小松弛度、最小最晚结束时间、最小运行时间、最小最晚开始时间、最小最早结束时间5种启发式规则,并将所有的启发式规则作为基因编码入染色体。然而,事实是对于越多的启发式规则,最后找到的调度方案具有更好的效率,但是,在搜索的过程中,采用启发式规则越多,搜索空间越大,因此,搜索解的时间会更长。另外,对于启发式来说,有些启发式本身对某些问题的解决效率较低,并不是所有的启发式规则都适用于所有的问题,适当选择合适的启发式规则和选择合适的规则数量可以提高遗传算法搜索的效率。

作为另一优选的实施例,可以只选择启发式规则集合中的一个子集,例如,只选择1~3号启发式规则,然后编码染色体{1,2,3,2,2,1}。这条染色体表示一共调度六次,每次调度使用的启发式规则为1~3号启发式规则中的一个。在实际问题中,针对不同的问题,可以多次试验得到最好的启发式规则组合。

作为优选的实施例,针对不同的问题是使用不同启发式组合,从而更加针对性地解决具体的问题。因此,可添加其他的启发式规则。例如:

1)、FCFS(先来先服务):

P

Arri表示任务的到达时间,越早到达的任务执行优先度越高。

2)、MIN TT(最小传输时间):

P

dtij表示执行当前任务需要传输的数据量,这条启发式规则针对于IO密集型任务来说效率更好,因为当需要传输大量数据的两个任务先后在同一台主机上执行时,是不需要进行数据传输的,因此,可以很高地提高效率调度的效率。

3)、Random(随机选择):

P

随机选择是为每个任务随机赋予一个优先值,这样的方法更接近于原始的遗传算法,在选择启发式规则的过程中可以用作对照实验,确定每种启发式规则的自身的效率。

在步骤8中,在每个周期初生成的调度方案只能在当前周期中起作用,运行T时间后,需要重新开始调度生成新的调度方案,而每次生成新的调度方案是,针对的是上一个周期到达的任务和上一个周期未完成的任务,因此,相当于任务的调度存在延时性,延时的时间为一个周期。在实际上操作中,这个周期时间可以根据实际上情况调整。

例如电商平台的配送规定是当天上午人的订单下午配送,下午的订单次日上午配送,对于这种情况来说,允许有半天的延迟调度,因此,可以将T定义为6小时(除去晚上的时间)。而对于更加需要接近实时调度的任务来说,可以减少T所有定义的时间,可以定义为1小时或者更少。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号