多目标云任务均衡调度方法、服务器及存储介质
技术领域
本发明涉及通信技术领域,尤其涉及一种多目标云任务均衡调度方法、服务器及存储介质。
背景技术
云任务调度不同于传统的任务调度问题,需要考虑的因素更多更复杂。首先,其用户执行任务时的服务质量需求更加多样性,如需要满足服务响应时间或需要考虑服务代价等。其次,云服务具有异质性、动态性和弹性等特征。最后,在提交任务时,需要满足预定义的时间或执行预算的约束。此时的任务调度问题本质上是联合优化问题。
目前的研究中,一些工作主要集中于执行时间的优化,未考虑用户的预算约束。然而,由于云计算的市场化特征,用户必须对云资源使用进行付费,一些工作则考虑了用户预算和截止时间约束。
文献[W.Zheng and R.Sakellariou,Budget-deadline constrained workflowplanning for admission control[J],Journal of Grid Computing,2013,11]提出了一种基于预算约束的异构最快完成时间算法BHEFT,该算法是经典的异构最快完成时间工作流调度算法HEFT的改进,考虑了任务调度时的最优预算约束问题。
文献[H.Arabnejad,J.G.Barbosa,Abudget constrained scheduling algorithmfor workflow applications[J],Journal of Grid Computing,2014,12(4)]提出了一种异构预算约束调度算法HBCS,通过定义代价因子调整可用预算与最低廉价格可能性的比例,实现调度优化。
文献[李克武,张功萱,朱昭萌,云环境中基于分解的多目标工作流调度算法[J],计算机工程与科学,2016,38(8):1588-1594.]提出了MOSC/D算法则是以工作流完成时间和费用作为优化目标,通过目标分解机制对单一目标求解近似最优解。
上述现有技术文献多数工作集中于优化单一目标或单一约束,没有考虑不同目标间的相互影响,即执行时间与执行代价间的影响,也就是说在同时存在任务预定完成时间和任务执行预算均有约束的条件下,如何让任务执行时间和任务执行代价实现同步均衡优化调度,是一个亟需解决的技术问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种多目标云任务均衡调度方法、服务器及存储介质,旨在解决云任务在调度过程中,若在任务完成时间以及任务执行预算均有约束的条件时,如何实现任务执行时间和执行代价之间的均衡调度的技术问题。
为实现上述目的,本发明提供了一种多目标云任务均衡调度方法,所述方法包括以下步骤:
确定当前多目标云任务的目标参数,所述目标参数包括任务执行截止时间D、任务执行成本预算B、当前云任务集合T以及当前云资源集合R;所述当前云任务集合包括n个云任务,所述当前云资源集合包括m个云资源;对各个目标参数进行参数初始化处理;
基于不同的目标参数并根据预设规则为所述当前多目标云任务生成N个种群粒子,其中,每个种群粒子表征各个云任务在不同云资源上的调度结果,每个种群粒子表征一个m行n列的矩阵,所述矩阵的单个元素表征单个云任务在一个云资源上的调度结果,在单个云任务调度至一个云资源上成功执行时,所述单个元素为真值;在单个云任务调度至一个云资源上执行失败时,所述单个元素为假值;所述矩阵的每一列有一个值为真值的元素,所述矩阵的每一行有多个值为真值的元素;
对所述当前云任务集合进行遍历,获取遍历到的任务Tb;
从当前云资源集合中选取一个云资源作为资源Rg;
计算所述任务Tb在所述资源Rg上的执行时间t(Tb,Rg);
获取所述任务Tb在所述资源Rg上的调度结果,以及所述任务Tb在所述资源Rg上的执行代价c(Tb,Rg),返回所述从当前云资源集合中选取一个云资源作为资源Rg的步骤,直至所述当前云资源集合中的云资源均被选取过;
通过公式13对所述任务Tb在所述资源Rg上的调度结果进行表征:
其中,χ(T,R)表示所述任务Tb在所述资源Rg上的调度结果,若所述任务Tb调度至所述资源Rg上成功执行时,则χ(T,R)为真值1;若所述任务Tb调度至所述资源Rg上执行失败时,则χ(T,R)为假值0;
在对所述当前云任务集合遍历结束时,统计各个云任务在不同的云资源上的执行时间t(Tb,Rg)、各个云任务在不同的云资源上的执行代价c(Tb,Rg)、以及各个云任务在不同的云资源上的调度结果χ(T,R);
通过各个云任务在不同的云资源上的执行代价c(Tb,Rg)、以及各个云任务在不同的云资源上的调度结果χ(T,R)计算所述当前云任务集合的任务执行总代价C(T,R);
通过各个云任务在不同的云资源上的执行时间t(Tb,Rg)、以及各个云任务在不同的云资源上的调度结果χ(T,R)计算所述当前云任务集合的任务执行总时间T(T,R);
通过公式21并根据所述任务执行总代价C(T,R)、所述任务执行总时间T(T,R)、所述任务执行截止时间D和任务执行成本预算B计算所述N个种群粒子的适应度;
其中,fit表示适应度函数,α表示时间因子,β表示代价因子,其中,α+β=1,α、β∈[0,1],在所述任务执行总代价C(T,R)小于等于所述任务执行成本预算B,且所述任务执行总时间T(T,R)小于等于所述任务执行截止时间D时,所述种群粒子的适应度不为0;在所述任务执行总代价C(T,R)大于所述任务执行成本预算B,且所述任务执行总时间T(T,R)大于所述任务执行截止时间D时,所述种群粒子的适应度为0。
基于引力搜索算法并根据所述N个种群粒子的适应度分别计算各个种群粒子的粒子速度;
通过各个种群粒子的粒子速度对各个种群粒子对应的矩阵进行更新,将更新后的矩阵作为最终调度解;
在各个种群粒子进行矩阵更新处理之后,分别计算各个种群粒子的当前适应度,从各个当前适应度选取最优适应度,将所述最优适应度对应的种群粒子的最终调度解作为所述当前多目标云任务的任务调度最优解,以实现对所述当前多目标云任务的均衡调度。
优选地,通过公式12计算所述当前云任务集合的任务执行总代价C(T,R):
通过公式14计算所述当前云任务集合的任务执行总时间T(T,R):
优选地,每个种群粒子表征所述当前多目标云任务的一种聚类解,所述N为正整数;
所述通过公式21并根据所述任务执行总代价C(T,R)、所述任务执行总时间T(T,R)、所述任务执行截止时间D和任务执行成本预算B计算所述N个种群粒子的适应度的步骤,包括:
对所述N个种群粒子进行迭代;
通过公式21并根据所述任务执行总代价C(T,R)、所述任务执行总时间T(T,R)、所述任务执行截止时间D和任务执行成本预算B计算每次迭代周期t中所述N个种群粒子的适应度。
优选地,所述通过公式21并根据所述任务执行总代价C(T,R)、所述任务执行总时间T(T,R)、所述任务执行截止时间D和任务执行成本预算B计算每次迭代周期t中所述N个种群粒子的适应度的步骤之后,还包括:
对各个种群粒子的适应度进行大小排序;
从排序结果中选取最大的适应度worst(t)和最小适应度best(t);
将迭代到的种群粒子作为粒子i,获取粒子i在迭代周期t内的适应度fiti(t);
从目标种群粒子中选取一个作为粒子j,所述目标种群粒子为对所述粒子i产生粒子吸引力的种群粒子;
根据所述最大适应度worst(t)、所述最小适应度best(t)、以及所述适应度fiti(t)计算所述粒子i在迭代周期t内的质量mi(t);
计算所述粒子i受到的总引力。
优选地,通过公式29计算计算所述粒子i在迭代周期t内的质量mi(t):
相应地,通过公式30计算计算所述粒子i受到的总引力:
其中,randi表示[0,1]间的随机数。kbest表示拥有最优适应度和最大粒子质量的k个粒子集合,表示种群粒子j对粒子i在维度p上施加的引力;
通过公式31确定所述迭代周期t内的kbest集合中粒子的数量:
其中,N表示种群粒子数量,Tmax表示最大迭代次数。
通过公式32计算种群粒子j对粒子i的引力:
其中,G(t)表示引力系数,Mj(t)和Mi(t)分别表示粒子j和粒子i的质量,Dist(Xi,Xj)(t)表示粒子j和粒子i间的汉明距离,ε表示一个极小常量。
优选地,所述基于引力搜索算法并根据所述N个种群粒子的适应度分别计算各个种群粒子的粒子速度的步骤,具体包括:
通过公式34计算所述迭代周期t内粒子i在维度p上的加速度:
其中,所述加速度用于表征粒子i连续位置的更新,粒子i的更新速度为当前速度的一部分与其加速度之和,通过公式35计算所述粒子i的更新速度:
其中,表示所述迭代周期t内粒子i在维度p上的速度,表示所述粒子i的更新速度。
优选地,对种群粒子对应的矩阵进行更新的规则为:
通过公式36对所述矩阵中第y行第z列的元素进行取值:
此外,为实现上述目的,本发明还提出一种服务器,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的多目标云任务均衡调度程序,所述多目标云任务均衡调度程序配置为实现如上所述的方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质为计算机可读存储介质,所述计算机可读存储介质上存储有多目标云任务均衡调度程序,所述多目标云任务均衡调度程序被处理器执行时实现如上所述的方法步骤。
本发明对当前多目标云任务的目标参数进行初始化处理,基于不同的目标参数并根据预设规则为当前多目标云任务生成N个种群粒子,其中,每个种群粒子表征各个云任务在不同云资源上的调度结果,每个种群粒子表征一个m行n列的矩阵,所述矩阵的单个元素表征单个云任务在一个云资源上的调度结果;基于引力搜索算法计算各个种群粒子的粒子速度,通过各个种群粒子的粒子速度对各个种群粒子对应的矩阵进行更新,将更新后的矩阵作为最终调度解,最后从最终调度解中选取任务调度最优解,以实现对当前多目标云任务的均衡调度。本发明考虑执行时间与执行代价间的影响,在同时存在任务预定完成时间和任务执行预算均有约束条件的情况下,能够实现任务执行时间和任务执行代价的同步均衡优化调度。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的服务器结构示意图;
图2为本发明一种多目标云任务均衡调度方法一实施例的流程示意图;
图3为本发明一实施例中单个种群粒子表征的矩阵示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
需要说明的是,本申请的多目标云任务均衡调度方法是基于引力搜索算法的一种云任务调度方法。引力搜索算法是现有的一种算法:
引力搜索算法是受牛顿万有引力定理启发形成的一种多维解空间中求解连续优化问题的有效方法。算法假定多个agent粒子在多维空间中移动,每个agent代表问题的一个解,agent拥有的引力质量越大,其性能越好,这是由于质量更大的agent对于其他agent将具有更大的吸引力。在整个引力搜索算法的执行过程中,每个agent将根据引力调整其位置,并向着种群中最优的K个agent的方向移动。
假设系统现有N个agent在n维空间移动,agent i的位置表示为:
其中,表示agent i在d维空间上的位置。agent i的质量在第t次迭代时计算为:
其中,Mi(t)表示迭代t时agent i的质量,fiti(t)表示迭代t时agent i的适应度,由目标函数定义,worst(t)表示迭代t时所有agent中的最差适应度,best(t)表示迭代t时所有agent中的最优适应度,分别计算为:
根据牛顿万有引力定理,为了计算agent加速度,需要计算agent受到的引力总和。迭代数为t时,维度d上agent j对agent i产生的引力计算为:
其中,Mj表示吸引方agent j的质量,Mi表示被吸引方agent i的质量,G(t)表示迭代t时引力系数,ε表示极小常量,Dij表示agent i与agent j间的欧氏距离,定义为:
Dij(t)=||Xi(t),Xj(t)||2 公式7
agent i在维度d上受到的总引力以所受引力的权值形式表示为,定义为:
其中,randj表示[0,1]间的随机数,ε表示一个极小常量,kbest表示拥有最优适应度和最大agent质量的第一批K个agent的集合,K的取值表示为时间的函数,算法开始时其初值为Kini,然后随时间递减至1。
根据牛顿的万有引力定理,迭代t时,agent i在维度d上的加速度为:
agent移动过程中,其速度与位置的更新公式为:
其中,randi表示表示[0,1]间的随机数。
进一步地,基于引力搜索算法,参照图1,图1为本发明实施例方案涉及的硬件运行环境的服务器的结构示意图。
如图1所示,所述服务器可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对所述服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接收模块以及多目标云任务均衡调度程序。
本发明的服务器通过处理器1001调用存储器1005中存储的多目标云任务均衡调度程序,并执行所述多目标云任务均衡调度方法的步骤。
进一步地,参考图2,图2本发明的多目标云任务均衡调度方法的实施例流程示意图。
本实施例中,所述多目标云任务均衡调度方法包括以下步骤:
步骤S10:确定当前多目标云任务的目标参数,所述目标参数包括任务执行截止时间D、任务执行成本预算B、当前云任务集合T以及当前云资源集合R;所述当前云任务集合包括n个云任务,所述当前云资源集合包括m个云资源;对各个目标参数进行参数初始化处理;
需要说明的是,本实施例的执行主体为上述服务器,从计算机处理数据的角度对本实施例的多目标云任务均衡调度方法进行描述。
具体地,本实施例首先需要获取当前多目标云任务的各个目标参数,并对各个目标参数进行初始化操作,这些目标参数有与引力搜索算法相关的参数,其中包括:引力系数初值Gini、极小常量ε、常量δ,最大迭代次数Tmax;
还有与云计算任务调度环境相关参数,包括:云任务集合T、云资源集合R、任务执行时间矩阵ETC、任务执行代价矩阵ECC、任务执行截止时间D、任务执行费用预算B。所述任务执行时间矩阵包括各个云任务在不同云资源的单元执行时间,所述任务执行代价矩阵包括各个云任务在不同云资源上的占用的单元资源成本。
步骤S20:基于不同的目标参数并根据预设规则为所述当前多目标云任务生成N个种群粒子,其中,每个种群粒子表征各个云任务在不同云资源上的调度结果,每个种群粒子表征一个m行n列的矩阵,所述矩阵的单个元素表征单个云任务在一个云资源上的调度结果,在单个云任务调度至一个云资源上成功执行时,所述单个元素为真值;在单个云任务调度至一个云资源上执行失败时,所述单个元素为假值;所述矩阵的每一列有一个值为真值的元素,所述矩阵的每一行有多个值为真值的元素。
具体地,本实施例会基于引力搜索算法为所述当前多目标云任务生成N个种群粒子agent;同时参考图3,图3为单个种群粒子表征的矩阵示意图;
将任务集合T调度至资源集合R上的调度解编码为m×n的矩阵形式,如图1的形式,以此表示一个种群agent Xh=(x1 h,x2 h,…,xn h),矩阵中的每个元素表示任务Tb是否调度至资源Rg上,表示agent h中任务b在各资源的映射情况,为一个纵向矢量。如Xh(R2,T1)=1表明agent h表示的调度解中任务T1调度至资源R2上执行。由于单个任务仅能调度至一个资源上执行,所有矩阵中每一列中仅能有一个值为1的元素,每一行可拥有多个值为1的元素,由于单个资源可以按序执行多个任务。
在具体实现中,所述预设规则可以一下流程进行表征:首先对种群初始化。初始种群由三种方式生成,对于给定的云资源集合和云任务集合,以上述设计的编码形式随机生成N-2个种群agent,一个agent i的位置表示为 n表示agent位置维度,对应云任务数量,表示agent i中在维度p上的位置,也即对应于agent i中任务p的调度解。按照上文的编码形式,对于一个agent i,其位置Xi实则是一个m行n列的矩阵,表示大小为m的矢量。随机初始化过程中,约定矩阵每列只能一个元素取值为1,其它元素均为0,由于一个任务只能调度至一个资源上,任务不可分割。其次,在满足截止时间和预算约束的同时,仅以调度时间最小化为目标,以贪婪方法得到一个调度解,作为一个种群agent。最后,在满足截止时间和预算约束的同时,仅以调度代价最小化为目标,以贪婪方法得到另一个调度解,作为一个种群agent。如此,总共生成N个种群agent,构成初始种群。
需要说明的是,本实施例的云用户拥有包括n个独立任务的任务集T,T={T1,T2,…,Tn},约定完成该任务集的截止时间为D,完成任务集的费用预算为B。云资源提供者集合表示为R={R1,R2,…,Rm},表示m个可完成任务的云资源提供者。n个任务分别在m个资源上的执行时间表示为执行时间矩阵ETC,n个任务分别在m个资源上的执行代价表示为执行代价矩阵ECC。假定一旦一个任务调度至某资源上执行,则该任务独占其资源并不再发生迁移,直到完成才可以执行下一任务。令t(Tb,Rg)表示任务Tb在资源Rg上的执行时间,c(Tb,Rg)表示任务Tb在资源Rg上的执行代价,映射π:T→R表示任务的一种调度解,则任务执行总代价为:
其中,χ表示调度因子,且:
任务执行总时间为:
为了同步考虑任务执行时间和执行代价的优化,以权重函数的形式表示任务调度优化目标为:
min α×T(T,R)+β×C(T,R) 公式15其中,α和β分别表示时间因子和代价因子,用于指定用户执行任务时对于时间和代价优化的偏好,α+β=1,α、β∈[0,1]。
约束条件为:
T(T,R)≤D 公式16
C(T,R)≤B 公式17
α+β=1 公式18
0≤α≤1,0≤β≤1 公式19
其中,约束条件(公式16)确保执行时间不超过截止时间约束,约束条件(公式17)确保执行代价不超过预算约束,约束条件(公式18)和(公式19)确保时间因子和代价因子之和为1,且均属于[0,1]之间。
步骤S301,对所述当前云任务集合进行遍历,获取遍历到的任务Tb;
步骤S302,从当前云资源集合中选取一个云资源作为资源Rg;
步骤S303,计算所述任务Tb在所述资源Rg上的执行时间t(Tb,Rg);
步骤S304,获取所述任务Tb在所述资源Rg上的调度结果,以及所述任务Tb在所述资源Rg上的执行代价c(Tb,Rg),返回所述从当前云资源集合中选取一个云资源作为资源Rg的步骤,直至所述当前云资源集合中的云资源均被选取过;
通过公式13对所述任务Tb在所述资源Rg上的调度结果进行表征:
其中,χ(T,R)表示所述任务Tb在所述资源Rg上的调度结果,若所述任务Tb调度至所述资源Rg上成功执行时,则χ(T,R)为真值1;若所述任务Tb调度至所述资源Rg上执行失败时,则χ(T,R)为假值0;
步骤S305,在对所述当前云任务集合遍历结束时,统计各个云任务在不同的云资源上的执行时间t(Tb,Rg)、各个云任务在不同的云资源上的执行代价c(Tb,Rg)、以及各个云任务在不同的云资源上的调度结果χ(T,R);
步骤S306,通过各个云任务在不同的云资源上的执行代价c(Tb,Rg)、以及各个云任务在不同的云资源上的调度结果χ(T,R)计算所述当前云任务集合的任务执行总代价C(T,R);
步骤S307,通过各个云任务在不同的云资源上的执行时间t(Tb,Rg)、以及各个云任务在不同的云资源上的调度结果χ(T,R)计算所述当前云任务集合的任务执行总时间T(T,R);
步骤S308,通过(公式21)并根据所述任务执行总代价C(T,R)、所述任务执行总时间T(T,R)、所述任务执行截止时间D和任务执行成本预算B计算所述N个种群粒子的适应度;
其中,fit表示适应度函数,α表示时间因子,β表示代价因子,其中,α+β=1,α、β∈[0,1],在所述任务执行总代价C(T,R)小于等于所述任务执行成本预算B,且所述任务执行总时间T(T,R)小于等于所述任务执行截止时间D时,所述种群粒子的适应度不为0;在所述任务执行总代价C(T,R)大于所述任务执行成本预算B,且所述任务执行总时间T(T,R)大于所述任务执行截止时间D时,所述种群粒子的适应度为0。
可理解的是,基于引力搜索算法需要对所述N个种群粒子进行迭代来;
上述步骤301到步骤S308是计算N个种群粒子agent在每次迭代周期t中的适应度,其中通过公式12计算所述当前云任务集合的任务执行总代价C(T,R):
并通过公式14计算所述当前云任务集合的任务执行总时间T(T,R):
接着通过公式21结合所述任务执行截止时间D和任务执行成本预算B计算每次迭代周期t中所述N个种群agent粒子的适应度。
同时,将迭代到的种群粒子作为粒子i,获取粒子i在迭代周期t内的适应度fiti(t);
对各个种群agent的适应度进行大小排序;从排序结果中选取最大的适应度worst(t)和最小适应度best(t);即选择当前迭代中适应度最优best(t)(即适应度取值最小且不为0)和最差worst(t)的两个agent为:
进一步地,步骤S40到步骤S60为:基于引力搜索算法并根据所述N个种群粒子的适应度分别计算各个种群粒子的粒子速度:
步骤S40:根据所述最大适应度worst(t)、所述最小适应度best(t)、以及所述适应度fiti(t)计算所述粒子i在迭代周期t内的质量mi(t);
可理解的是,本实施例利用适应度函数计算种群agent的质量,迭代t时agent i的质量表示为:
其中,mi(t)定义为:
其中,fiti(t)表示agent i在迭代t时的适应度,worst(t)表示迭代t时的最差适应度,即最大适应度,best(t)表示迭代t时的最优适应度,即最小适应度。
步骤S50:计算所述粒子i受到的总引力。
具体地,种群agent i所受的总引力为其他agent在所有维度上施加的引力权重之和。总引力计算为:
其中,randi表示[0,1]间的随机数。kbest表示拥有最优适应度和最大agent质量的k个agent集合,即排序前k个的agent,初次迭代时,由于需要覆盖整个种群,kbest包括所有agent。迭代后,kbest集合中的agent数量线性递减,到达最大迭代次数时,kbest集合仅包括整个种群的2%的最优agent会对其他agent产生引力。具体地,迭代t时,kbest集合中agent数量的确定方法为:
其中,N表示种群agent数量,Tmax表示最大迭代次数。
根据牛顿万有引力定理,种群agent j对agent i施加的引力为:
其中,G(t)表示引力系数,Mj(t)和Mi(t)分别表示agent j和agent i的质量,Dist(Xi,Xj)(t)表示agent j和agent i间的汉明距离,ε表示一个极小常量。
引力系数的计算方式为:
其中,Gini和δ在步骤S10中进行初始化,两个参数的取值在搜索迭代过程中会降低。
需要说明的是,引力搜索算法通过在问题解空间中的agent位置移动搜索问题的最优解,由agent位置更新公式可知,新的agent位置由旧的agent位置与agent的移动长度之和构成,agent的移动长度即为agent的速度。由agent速度更新公式可知,新的agent速度由两部分构成,一部分为当前迭代时的速度,该部分与其他agent的移动速度无关;另一部分为agent的加速度,该部分需要考虑kbest集合中所有agent成员位置对该agent的影响。而由加速度的计算公式可知,加速度由kbest集合中agent的位置、agent间的线性距离、agent间的欧氏距离、kbest集合中agent的质量以及引力系数共同决定。
由所述图3所示的调度解编码可知,一个agent所代表的调度解是矩阵形式,无法以传统引力搜索算法中计算两个标量间的线性距离的方式计算两个agent间的距离,此时需要重新定义度量两个调度解间距离的方法。本实施例设计了一种基于汉明距离的调度解间距度量方法。汉明距离原本是利用在数据传输差错控制编码里面的,表示两个相同长度的数据流对应位不同的数量。为了度量不同调度解间的差异,按照图3所示的编码方式,可以汉明距离度量调度解中任务调度方式的差异性,即:若两个调度解中,若对应位置数值相同(同为0或1,表明任务的调度方式相同),则差异为0;若对应位置数值不同(一个为0,一个为1,表明任务的调度方式不同),则差异为1。两个调度解的间距即为两个agent中对应位置不同的数量,即为两个agent所代表的调度解的距离。令表示agent i中任务1的调度解,表示agent j中任务1的调度解,则agent i和agent j在任务1调度解上的距离定义为:
其中,Xi(q,1)和Xj(q,1)分别表示agent i和agent j中任务T1在资源Rq上的映射,即agent代表的矩阵第q行第1列对应的元素值。sgn()则代表两个元素的差异性,若值相同,则值为0,若值不同,则值为1。由此可知,两个调度解Xi和Xj的汉明距离可表示为:
步骤S60:引力搜索算法计算各个种群粒子的粒子速度;
具体地,首先通过公式34计算所述迭代周期t内粒子i在维度p上的加速度:
其中,所述加速度用于粒子i连续位置的更新,粒子i的更新速度为当前速度的一部分与其加速度之和,通过公式35计算所述粒子i的更新速度:
其中,表示所述迭代周期t内粒子i在维度p上的速度,表示所述粒子i的更新速度。
步骤S70:通过各个种群粒子的粒子速度对各个种群粒子对应的矩阵进行更新,将更新后的矩阵作为最终调度解;
可理解的是,由于调度解是不断地更新,更新时通过粒子的位置的移动表示出来,因此最终的调度解是通过粒子位置的移动表示出来的。由于agent位置代表的是任务的调度解,以矩阵形式表示的调度解中每个矩阵元素的取值仅为0或1,且每列仅有一元素取值为1,因此,不能利用引力搜索算法中的位置更新公式进行位置更新。agent位置的更新规则为:将对应的速度值取值最大时的对应选项取值为1,即:对于一个新的agent位置Xh(y,z)(t+1),即对应的第y行第z列的元素取值方式为:
步骤S80:在各个种群粒子进行矩阵更新处理之后,分别计算各个种群粒子的当前适应度,从各个当前适应度选取最优适应度,将所述最优适应度对应的种群粒子的最终调度解作为所述当前多目标云任务的任务调度最优解,以实现对所述当前多目标云任务的均衡调度。
可理解的是,本实施例的迭代终止条件为t达到了最大的预设迭代次数时,即T=Tmax,迭代终止;在各个种群粒子进行矩阵更新处理之后,分别计算各个种群粒子的当前适应度。最后统计各个迭代周期中粒子的适应度,从统计结果中选取最优适应度,将所述最优适应度对应的种群粒子的最终调度解作为所述当前多目标云任务的任务调度最优解,以实现对所述当前多目标云任务的均衡调度。
本实施例对当前多目标云任务的目标参数进行初始化处理,基于不同的目标参数并根据预设规则为当前多目标云任务生成N个种群粒子,其中,每个种群粒子表征各个云任务在不同云资源上的调度结果,每个种群粒子表征一个m行n列的矩阵,所述矩阵的单个元素表征单个云任务在一个云资源上的调度结果;基于引力搜索算法计算各个种群粒子的粒子速度,通过各个种群粒子的粒子速度对各个种群粒子对应的矩阵进行更新,将更新后的矩阵作为最终调度解,最后从最终调度解中选取任务调度最优解,以实现对当前多目标云任务的均衡调度。本实施例考虑执行时间与执行代价间的影响,在同时存在任务预定完成时间和任务执行预算均有约束条件的情况下,能够实现任务执行时间和任务执行代价的同步均衡优化调度。
此外,本发明还提供一种存储介质,所述存储介质为计算机可读存储介质,所述计算机可读存储介质上存储有多目标云任务均衡调度的程序,所述多目标云任务均衡调度的程序被处理器执行时实现如上所述的多目标云任务均衡调度方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。