本发明涉及云任务调度技术领域,尤其涉及一种基于离散编码的云任务调度方法、服务器及存储介质。
背景技术:
云任务调度不同于传统的任务调度问题,需要考虑的因素更多更复杂。首先,其用户执行任务时的qos需求更加多样性,如需要满足服务响应时间或需要考虑服务提供方的负载平衡等问题。其次,云服务具有异质性、动态性和弹性等特征。最后,用户向云端提交任务时,需要满足预定义的截止时间约束。此时的云任务调度问题本质上是联合优化问题。
目前的研究中,多数工作主要集中于执行时间的优化,未考虑资源提供方在提供服务的负载均衡,即用户提交云任务需求更高的执行效率与云资源提供方需求资源的负载均衡间的相互影响。由于云计算的市场化特征,资源供求双方的利益都必须在进行任务调度时考虑在内,这是目前相关研究缺乏的地方。因此,在任务的完成时间存在截止时间约束的条件下,如何实现任务执行时间和资源负载均衡之间实现同步均衡优化,是一个亟需解决的技术问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
技术实现要素:
本发明的主要目的在于提供一种基于离散编码的云任务调度方法、服务器及存储介质,旨在存在截止时间约束的条件下,实现任务执行时间和资源负载均衡之间实现同步均衡优化。
为实现上述目的,本发明提出了一种基于离散编码的云任务调度方法,所述方法包括以下步骤:
根据预设编码规则对n个云任务和m个云资源之间的映射关系进行编码,获得多个任务调度解,所述任务调度解表征为包含n个不大于m的正整数元素的离散数组;
根据用户预设的约束参数计算每个任务调度解的适应度;
根据所述适应度按预设标识规则在获得的多个任务调度解中标识出一级任务调度解、二级任务调度解和三级任务调度解;
基于所述一级任务调度解、所述二级任务调度解和所述三级任务调度解,按照预设更新规则对每个任务调度解进行更新,获得更新后的任务调度解;
对所述更新后的任务调度解进行迭代计算,获得迭代后的一级任务调度解;
将所述迭代后的一级任务调度解作为最优云任务调度解。
优选的,所述根据预设编码规则对n个云任务和m个云资源之间的映射关系进行编码,获得多个任务调度解,具体包括:
根据云任务数n和云资源数m,通过佳点集算法生成多个佳点集;
基于所述多个佳点集根据n个云任务和m个云资源之间的映射关系获得多个任务调度解。
优选的,所述用户预设的约束参数包括用户预设的截止时间;所述根据用户预设的约束参数计算每个任务调度解的适应度,具体包括:
计算每个任务调度解的执行时间;
计算每个任务调度解的负载均衡参数;
根据所述执行时间、所述负载均衡参数和所述用户预设的截止时间通过以下公式计算每个任务调度解的适应度:
其中,fitness为任务调度解的适应度,makespan为执行时间,sd为负载均衡参数,deadline为用户预设的截止时间,σ为时间因子,ρ为代价因子,σ+ρ=1,σ∈[0,1],ρ∈[0,1]。
优选的,所述计算每个任务调度解的执行时间,具体包括:
根据n个云任务分别在m个云资源上的执行时间,通过以下公式计算每个任务调度解的执行时间:
其中,makespan为任务调度解的执行时间,t(ti,rj)为云任务ti在云资源rj上的执行时间,χ(ti,rj)为调度因子:
其中,π:t→r表示云任务集t与云资源集r的一种映射解。
优选的,所述计算每个任务调度解的负载均衡参数,具体包括:
根据n个云任务分别在m个云资源上的执行时间,通过以下公式计算每个所有云资源的负载均衡参数:
其中,sd为负载均衡参数,awtavg为m个云资源的平均执行时间:
其中,awt(rj)为第j个资源的实际执行时间:
其中,t(ti,rj)为云任务ti在云资源rj上的执行时间,χ(ti,rj)为调度因子:
其中,π:t→r表示云任务集t与云资源集r的一种映射解。
优选的,所述基于所述一级任务调度解、所述二级任务调度解和所述三级任务调度解,按照预设更新规则对每个任务调度解进行更新,获得更新后的任务调度解,具体包括:
根据预设规则确定各任务调度解对应的收敛系数;
根据所述收敛系数按预设修正规则获取第一修正系数a1,并根据所述一级任务调度解通过以下公式对各任务调度解进行计算,获得各任务调度解中第k个元素的第一更新参数x1,k:
x1,k=|xα,k-a1·dα|
其中,xα,k为所述一级任务调度解中第k元素的值,dα为关联值:
dα=|c1·xα,k-xk|
其中,c1为区间[0,2]内的随机值,xk为每个任务调度解中第k个元素的值;
根据所述收敛系数按预设修正规则获取第二修正系数a2,并根据所述二级任务调度解通过以下公式对各任务调度解进行计算,获得各任务调度解中第k个元素的第二更新参数x2,k:
x2,k=|xβ,k-a2·dβ|
其中,xβ,k为所述二级任务调度解中第k个元素的值,dβ为关联值:
dβ=|c2·xβ,k-xk|
其中,c2为区间[0,2]内的随机值;
根据所述收敛系数按预设修正规则获取第三修正系数a3,并根据所述三级任务调度解通过以下公式对各任务调度解进行计算,获得各任务调度解中第k个元素的第三更新参数x3,k:
x3,k=|xδ,k-a3·dδ|
其中,xδ,k为所述三级任务调度解中第k个元素的值,dδ为关联值:
dδ=|c3·xδ,k-xk|
其中,c3为区间[0,2]内的随机值;
根据所述第一更新参数x1,k、所述第二更新参数x2,k和所述第三更新参数x3,k通过以下公式获得各任务调度解中第k个元素的初始更新值xh,k:
按以下公式对所述初始更新值xh,k修正后,获得各任务调度解中第k个元素的更新后的值:
yh,k=「xh,k×m]
其中,yh,k为第h个任务调度解中第k个元素的更新后的值,m为云资源数;
将各任务调度解中第k个元素的更新值作为更新后的任务调度解。
优选的,所述根据预设规则确定各任务调度解对应的收敛系数,具体包括:
获取预设的收敛系数初始值ainitial和收敛系数最终值afinal;
根据每个任务调度解的适应度获取所有任务调度解对应的平均适应度,并判断各任务调度解的适应度是否大于或等于所述平均适应度;
若是,则按照以下公式更新所述收敛系数初值,获得该任务调度解对应的收敛系数:
其中,t表示当前迭代次数,tmax表示最大迭代次数;
若否,则将所述收敛系数初始值ainitial作为该任务调度解对应的收敛系数。
此外,为实现上述目的,本发明还提出一种云任务调度装置,所述装置包括:
调度解编码模块,用于根据预设编码规则对n个云任务和m个云资源之间的映射关系进行编码,获得多个任务调度解,所述任务调度解表征为包含n个不大于m的正整数元素的数组;
适应度计算模块,用于根据用户预设的约束参数计算每个任务调度解的适应度;
迭代模块,用于根据所述适应度按预设标识规则在获得的多个任务调度解中标识出一级任务调度解、二级任务调度解和三级任务调度解;还用于基于所述一级任务调度解、所述二级任务调度解和所述三级任务调度解,按照预设更新规则对每个任务调度解进行更新,获得更新后的任务调度解;还用于对所述更新后的任务调度解进行迭代计算,获得迭代后的一级任务调度解;
最优解确定模块,用于将所述迭代后的一级任务调度解作为最优云任务调度解。
此外,为实现上述目的,本发明还提出一种云任务调度设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的云任务调度程序,所述云任务调度程序配置为实现如上述的基于离散编码的云任务调度方法的步骤。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有云任务调度程序,所述云任务调度程序被处理器执行时实现如上述的基于离散编码的云任务调度方法的步骤。
本发明根据预设编码规则对n个云任务和m个云资源之间的映射关系进行编码,获得多个任务调度解,所述任务调度解表征为包含n个不大于m的正整数元素的离散数组;再根据用户预设的约束参数计算每个任务调度解的适应度;然后,根据所述适应度按预设标识规则在获得的多个任务调度解中标识出一级任务调度解、二级任务调度解和三级任务调度解;并基于所述一级任务调度解、所述二级任务调度解和所述三级任务调度解,按照预设更新规则对每个任务调度解进行更新,获得更新后的任务调度解;对所述更新后的任务调度解进行迭代计算,获得迭代后的一级任务调度解;最后,将所述迭代后的一级任务调度解作为最优云任务调度解。本发明在存在截止时间约束的条件下,实现任务执行时间和资源负载均衡之间实现同步均衡优化,并在整个过程中引入更多的随机性,可以提供决策空间中的全局搜索,避免局部最优。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的服务器的结构示意图;
图2为灰狼群体等级层次关系示意图;
图3为本发明的基于离散编码的云任务调度方法的第一种实施例流程示意图;
图4为本发明的基于离散编码的云任务调度方法的第三种实施例流程示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的服务器的结构示意图。
如图1所示,所述服务器可以包括:处理器1001,例如cpu,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对所述服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接收模块以及云任务调度程序。
本发明的服务器通过处理器1001调用存储器1005中存储的云任务调度程序,并执行基于离散编码的云任务调度方法的步骤。
需要说明的是,本申请的基于离散编码的云任务调度方法是基于灰狼优化算法的一种云任务调度方法,灰狼优化算法是现有的一种算法。
灰狼优化算法以的灰狼群体内部严格的社会等级层次关系为背景,将问题解表征为灰狼个体,并根据个体的适应度划分层级,最高的视为α狼,第二高的灰狼视为β狼,第三高的灰狼视为δ狼,剩余候选者全部视为ω狼。等级层次关系如图2所示,其中,α代表α狼,β代表β狼,δ代表δ狼,ω代表ω狼。
灰狼优化算法中,问题最优化过程相当于灰狼群体进行不断地的捕猎。捕猎行为由α、β、δ三头狼指挥,ω狼跟随α、β、δ三头狼的位置进行位置更新,通过对位置的不断迭代,寻找猎物。
捕猎过程中,灰狼包围猎物的数学模型为:
d=|c·xp(t)-x(t)|(1)
x(t+1)=xp(t)-a·d(2)
其中,t表示当前迭代次数,a表示修正系数,c表示系数矢量,xp表示猎物的位置矢量,x表示灰狼的位置矢量。式(1)表示某一灰狼与猎物之间的距离,式(2)则表示灰狼的位置更新公式。
修正系数a的计算公式如下:
a=2a·r1-a(3)
系数矢量c的计算公式如下:
c=2r2(4)
其中,r1和r2表示区间[0,1]内的随机数,其作用是增强灰狼搜索时,移动的随机性和个体多样性,a表示收敛系数,定义为:
其中,tmax表示算法的最大迭代次数。可以看出,收敛系数a会随着算法迭代线性地从2递减为0。
需要说明的是,为了模拟灰狼的狩猎行为,可以保存目前为止最优的前三个解,并迫使其他ω狼根据这三个最优解所代表的最优灰狼位置更新其自身位置进行狩猎。则,灰狼狩猎的数学模型为:
dα=|c1·xα-x|(6)
dβ=|c2·xβ-x|(7)
dδ=|c3·xδ-x|(8)
其中,dα、dβ和dδ分别表示灰狼个体与α狼、β狼和δ狼之间的距离,xα、xβ和xδ分别表示α狼、β狼和δ狼之间的当前位置,x表示为灰狼个体的当前位置。
x1=xα-a1·dα(9)
x2=xβ-a2·dβ(10)
x3=xδ-a3·dδ(11)
其中,式(9)、(10)、(11)分别定义了灰狼个体朝向α狼、β狼和δ狼前进的步长和方向,式(12)则定义灰狼个体最终的更新位置。
需要说明的是,为了模拟灰狼接近猎物的过程,可以逐步减小收敛系数a的取值。相应地,a的波动范围也将随着a的取值而降低。换言之,迭代过程中a从2减小至0时,a将是处于区间[-2a,2a]间的随机值。当a的随机值处于[-1,1]时,搜索灰狼的下一位置将是其当前位置和猎物位置间的任意位置。
需要说明的是,灰狼优化算法主要通过α狼、β狼和δ狼的位置搜索猎物。灰狼之间相互分离搜索猎物,并逐步靠近并攻击猎物。为了在数学模型上建立灰狼间的分散,可以利用大于1的随机值a或小于-1的随机值a迫使搜索中的灰狼与猎物间的分离,这使得灰狼优化算法具备全局搜索的能力。
由式(4)可知,c是处于区间[0,2]的随机值。c表示灰狼所在位置对猎物影响的随机权重值,c>1表明定义灰狼与猎物间的距离时权重较大,c<1表明定义灰狼与猎物间的距离时权重较小。该参数有助于为灰狼优化算法引入更加随机的行为,便于空间搜索并避免局部最优。同时,与a相比,c不是线性递减的,这样在整个迭代过程中,算法可以提供决策空间中的全局搜索。
参照图3,图3本发明的基于离散编码的云任务调度方法的第一种实施例流程示意图。
在本实施例中,所述基于离散编码的云任务调度方法以下步骤:
步骤s10:根据预设编码规则对n个云任务和m个云资源之间的映射关系进行编码,获得多个任务调度解,所述任务调度解表征为包含n个不大于m的正整数元素的离散数组。
需要说明的是,传统的灰狼优化算法属于连续灰狼优化过程,灰狼可以连续地在搜索空间中的任意点移动。对于云任务调度问题而言,并非连续优化问题,因此在本申请中,云任务和云资源之间的映射关系地约束一个离散数组上。云任务调度问题,将云资源以1至m间的数进行编号,因此灰狼优化算法中的灰狼位置仅能以以1至m间的离散数值形式出现,每个任务调度解表示灰狼优化算法中一头灰狼的位置,具体地,各任务调度解的形式为:
xh=[yh,1,yh,2,…,yh,n](13)
其中,xh表示第h个任务调度解,n为云任务数,yh,n的值表示第h个任务调度解中的第n个任务对应的云资源序号,例如,若yh,3=4,表示第3个云任务在第4个云资源上执行。
可以理解的是,由于单个任务仅能调度至一个资源上执行,而由于单个资源可以按序执行多个任务,所以在离散数组中,可存在多个数值相同的元素。
为了让每个元素的值更具有随机性,按下列公式得到xh,n的值:
其中,
步骤s20:根据用户预设的约束参数计算每个任务调度解的适应度。
需要说明的是,所述约束参数可以是用户期望的截止时间。
在本实施例中,用户拥有包括n个独立任务的任务集t,t={t1,t2,…,tn},约定完成该任务集的截止时间为deadline。云资源提供者集合表示为r={r1,r2,…,rm},表示m个可完成任务的云资源提供者。n个任务分别在m个资源上的执行时间表示为执行时间矩阵etc。假定一旦一个任务调度至某资源上执行,则该任务独占其资源并不再发生迁移,直到完成才可以执行下一任务。令t(tb,rg)表示任务tb在资源rg上的执行时间映射π:t→r表示任务的一种调度解。
具体地,根据n个云任务分别在m个云资源上的执行时间,通过以下公式计算每个任务调度解的执行时间:
其中,makespan为任务调度解的执行时间,t(ti,rj)为云任务ti在云资源rj上的执行时间,χ(ti,rj)为调度因子:
其中,π:t→r表示云任务集t与云资源集r的一种映射解。
具体地,根据n个云任务分别在m个云资源上的执行时间,通过以下公式计算每个所有云资源的负载均衡参数:
其中,sd为负载均衡参数,awtavg为m个云资源的平均执行时间:
其中,awt(rj)为第j个资源的实际执行时间:
其中,t(ti,rj)为云任务ti在云资源rj上的执行时间,χ(ti,rj)为调度因子:
其中,π:t→r表示云任务集t与云资源集r的一种映射解。
再根据所述执行时间、所述负载均衡参数和用户预设的截止时间通过以下公式计算每个任务调度解的适应度:
其中,fitness为任务调度解的适应度,makespan为执行时间,sd为负载均衡参数,deadline为所述截止时间,σ为时间因子,ρ为代价因子,σ+ρ=1,σ∈[0,1],ρ∈[0,1]。
可以理解的是,适应度计算中的约束条件确保了执行时间不超过截止时间约束。
步骤s30:根据所述适应度按预设标识规则在获得的多个任务调度解中标识出一级任务调度解、二级任务调度解和三级任务调度解。
在本实施例中,所述一级任务调度解对应为灰狼优化算法的α狼,所述二级任务调度解对应为β狼,所述三级任务调度解δ狼。
需要说明的是,所述预设标识规则具体可为按适应度数值的大小进行标识,任务调度解的适应度越大,说明任务调度解对应的调度方案最解决用户期望。
步骤s40:基于所述一级任务调度解、所述二级任务调度解和所述三级任务调度解,按照预设更新规则对每个任务调度解进行更新,获得更新后的任务调度解。
步骤s50:对所述更新后的任务调度解进行迭代计算,获得迭代后的一级任务调度解。
需要说明的是,灰狼优化算法是一个不断迭代的过程,对每次迭代后获取的任务调度解,需要重新计算适应度,并基于重新计算的适应度重新标识一级任务调度解、二级任务调度解和三级任务调度解,在基于重新标识的一级任务调度解、二级任务调度解和三级任务调度解对每个任务调度解进行更新。此外,由于数组中元素均为整数,因此不能按照传统灰狼优化算法中的位置更新公式进行位置更新。
在本实施例中,基于灰狼优化算法,所述基于所述一级任务调度解、所述二级任务调度解和所述三级任务调度解,按照预设更新规则对每个任务调度解进行更新,获得更新后的任务调度解,具体过程为:
根据预设规则确定各任务调度解对应的收敛系数a;
在本实施例中,所述预设规则可为前述公式5。
根据所述收敛系数a按预设修正规则获取第一修正系数a1,并根据所述一级任务调度解通过以下公式对各任务调度解进行计算,获得各任务调度解中第k个元素的第一更新参数x1,k:
x1,k=|xα,k-a1·dα|(23)
其中,xα,k为所述一级任务调度解中第k元素的值,dα为关联值:
dα=|c1·xα,k-xk|(24)
其中,c1为区间[0,2]内的随机值,根据前述公式4获得,xk为每个任务调度解中第k个元素的值;
需要说明的是,所述预设修正规则为前述公式3。
根据所述收敛系数按预设修正规则获取第二修正系数a2,并根据所述二级任务调度解通过以下公式对各任务调度解进行计算,获得各任务调度解中第k个元素的第二更新参数x2,k:
x2,k=|xβ,k-a2·dβ|(25)
其中,xβ,k为所述二级任务调度解中第k个元素的值,dβ为关联值:
dβ=|c2·xβ,k-xk|(26)
其中,c2为区间[0,2]内的随机值,根据前述公式4获得;
根据所述收敛系数按预设修正规则获取第三修正系数a3,并根据所述三级任务调度解通过以下公式对各任务调度解进行计算,获得各任务调度解中第k个元素的第三更新参数x3,k:
x3,k=|xδ,k-a3·dδ|(27)
其中,xδ,k为所述三级任务调度解中第k个元素的值,dδ为关联值:
dδ=|c3·xδ,k-xk|(28)
其中,c3为区间[0,2]内的随机值,根据前述公式4获得;
根据所述第一更新参数x1,k、所述第二更新参数x2,k和所述第三更新参数x3,k通过以下公式获得各任务调度解中第k个元素的初始更新值xh,k:
需要说明的,按照前述公式12获取的值有可能不在(0,1]之间,因此需要将其按照上式转换至(0,1]之间。
按以下公式对所述初始更新值xh,k修正后,获得各任务调度解中第k个元素的更新后的值:
其中,yh,k为第h个任务调度解中第k个元素的更新后的值,m为云资源数;
将各任务调度解中第k个元素的更新值作为更新后的任务调度解。
按上述规则对所有任务调度解中的元素进行更新,则完成一次迭代。
需要说明的是,迭代次数可由用户预先设置,在达到预定次数后,结束迭代计算,得到最终的任务调度解。同时,重新计算所述最终的任务调度解的适应度,并重新标识一级任务调度解,获得迭代后的一级任务调度解。
步骤s60:将所述迭代后的一级任务调度解作为最优云任务调度解。
可以理解的是,在抽象的搜索空间中,对于猎物(即最优解)的位置并无法准确知晓,为了模拟灰狼的狩猎行为,假设α狼(即最优候选解)、β狼和δ狼知晓猎物的潜在位置,α狼与猎物距离最近,因此,迭代后的一级任务调度解即为最优候选解。
本发明根据预设编码规则对n个云任务和m个云资源之间的映射关系进行编码,获得多个任务调度解,所述任务调度解表征为包含n个不大于m的正整数元素的离散数组;再根据用户预设的约束参数计算每个任务调度解的适应度;然后,根据所述适应度按预设标识规则在获得的多个任务调度解中标识出一级任务调度解、二级任务调度解和三级任务调度解;并基于所述一级任务调度解、所述二级任务调度解和所述三级任务调度解,按照预设更新规则对每个任务调度解进行更新,获得更新后的任务调度解;对所述更新后的任务调度解进行迭代计算,获得迭代后的一级任务调度解;最后,将所述迭代后的一级任务调度解作为最优云任务调度解。本发明在存在截止时间约束的条件下,实现任务执行时间和资源负载均衡之间实现同步均衡优化,并在整个过程中引入更多的随机性,可以提供决策空间中的全局搜索,避免局部最优。
为使任务调度过程更快收敛,提高寻优能力,本发明还提出了基于离散编码的云任务调度方法的第二种实施例。
本实施例与第一种实施例的不同之处在于,所述根据预设编码规则对n个云任务和m个云资源之间的映射关系进行编码,获得多个任务调度解,具体包括:
根据云任务数n和云资源数m,通过佳点集算法生成多个佳点集;
基于所述多个佳点集根据n个云任务和m个云资源之间的映射关系获得多个任务调度解。
可以理解的是,在云计算环境中,对于n个任务在m个资源上的调度解,理论上一共拥有mn种。求解该问题本质上是np完全问题。初始种群的优劣对于群体智能算法的全局收敛速度和解的质量都有较大影响,初始种群的多样性可以提高算法的寻优能力。因此,在本实施例中,利用佳点集方法生成的初始任务调度解在搜索空间中将具有比随机生成方法更好更均衡的分布。
采用佳点集方法进行任务调度解的初始化操作,构造方法如下:设在s维欧氏空间中有单位立方体gt,令r∈gt,得到点集pn(k)={r1×k,r2×k,…,rt×k,1≤k≤n的偏差
可以理解的是,佳点集内元素的位置映射为云任务的序号,元素的值映射为云资源序号。
为使任务调度过程更快收敛,提高寻优能力,本发明还提出了基于离散编码的云任务调度方法的第三种实施例。
参照图4,本实施例与第一种实施例的不同之处在于,所述根据预设规则获取收敛系数a,具体包括:
优选的,所述根据预设规则确定各任务调度解对应的收敛系数,具体包括:
步骤s701:获取预设的收敛系数初始值ainitial和收敛系数最终值afinal;
步骤s702:根据每个任务调度解的适应度获取所有任务调度解对应的平均适应度,并判断各任务调度解的适应度是否大于或等于所述平均适应度;
步骤s703:若是,则按照以下公式更新所述收敛系数初值,获得该任务调度解对应的收敛系数:
其中,t表示当前迭代次数,tmax表示最大迭代次数。
可以理解的是,在灰狼优化算法中,灰狼对猎物的包围行为由修正系数a决定,而修正系数a则由收敛系数a决定。收敛系数a决定了灰狼在搜索空间中的寻优能力以及局部开发和全局勘探能力。收敛系数a的计算公式(5)表明,a值是线性地从2递减至0的。对于灰狼优化算法而言,迭代初期较大的收敛系数a可以使灰狼拥有较大的搜索步长,具有更强的全部勘探能力,避免算法早熟和过快收敛;而迭代后期较小收敛系数a可以使灰狼拥有较小的搜索步长,具有更强的局部开发能力,提升灰狼在局部空间中的搜索能力,加快算法收敛。全局勘探可以保证灰狼种群的多样性,而局部开发则可以保证在局部的精确搜索,加快算法收敛。确保全局勘探能力和局部开发能力之间的平衡是灰狼种群寻优的重要基础。但是两者的寻优过程并不是线性切换的,收敛系数的线性递减并不能实际体现灰狼的搜索过程,尤其在出现多峰值情况时容易陷入局部最优状况。
在本实施例中,收敛系数的更新不采用前述公式5,而通过公式31更新收敛系数初值。由公式可以看出,收敛系数将呈非线性衰减趋势。迭代初期衰减速度较慢,这样可以更好的进行全局勘探,得到全局最优解;迭代后期衰减速度加快,可以更好的进行局部开发,得到局部最优解。收敛系数的非线性衰减模式也更好的平衡了灰狼的全局勘探和局部开发能力。
步骤8704:若否,则将所述收敛系数初始值ainitial作为该任务调度解对应的收敛系数。
需要说明的是,任务调度解的适应度值是反映对应映射关系的执行质量的关键指标。故,在本实施例中,根据所述每个任务调度解的适应度fitnessh获取平均适应度fitnessavg。将待更新任务调度解的适应度fitnessh与整体平均适应度fitnessavg进行比较。如果待更新任务调度解的适应度值大于或等于整个种群的平均适应度(目标函数越大,适应度越差),则说明该待更新任务调度解目前距离猎物目标位置较近,可以利用上述公式(31)更新收敛系数;如果待更新任务调度解的适应度值小于整个种群的平均适应度,则说明该待更新任务调度解目前距离目标位置还较远,应该以更大的收敛系数增加灰狼的移动步长,向其他搜索空间勘探。因此在本实施例中,收敛系数a的更新公式可概况为:
此外,为实现上述目的,本发明还提出一种云任务调度装置,所述装置包括:调度解编码模块,用于根据预设编码规则对n个云任务和m个云资源之间的映射关系进行编码,获得多个任务调度解,所述任务调度解表征为包含n个不大于m的正整数元素的数组;
适应度计算模块,用于根据用户预设的约束参数计算每个任务调度解的适应度;
迭代模块,用于根据所述适应度按预设标识规则在获得的多个任务调度解中标识出一级任务调度解、二级任务调度解和三级任务调度解;还用于基于所述一级任务调度解、所述二级任务调度解和所述三级任务调度解,按照预设更新规则对每个任务调度解进行更新,获得更新后的任务调度解;还用于对所述更新后的任务调度解进行迭代计算,获得迭代后的一级任务调度解;
最优解确定模块,用于将所述迭代后的一级任务调度解作为最优云任务调度解。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有云任务调度程序,所述云任务调度程序被处理器执行时实现如上述的基于离散编码的云任务调度方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为标识。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器镜像(readonlymemoryimage,rom)/随机存取存储器(randomaccessmemory,ram)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。