云平台的任务调度算法是云计算领域研究的热点。如何在满足不陷入局部最优解的同时有更快的收敛速度,一直是研究者追求的目标之一。为此,本文提出将改进随机因子和惯性权重的增强型粒子群算法(EPSO)引入到遗传算法(GA)变异操作中的增强型遗传粒子群混合算法(GA_EPSO)。通过EPSO算法中的当前最优解和全局最优解重构变异算子,探索提升GA_EPSO算法在不陷入局部最优解的条件下,有更快的收敛速度。仿真实验表明,相同条件下,与遗传算法(GA),改进后的遗传算法(IGA),粒子群算法(PSO),增强型粒子群算法(EPSO)以及遗传粒子群算法(GA_PSO)相比,本文提出的改进算法不仅收敛速度快,而且任务调度效率也有明显提升。 The task scheduling algorithm of cloud platform is a hot topic in the field of cloud computing. How to achieve faster convergence speed while not meeting the local optimal solution has always been one of the goals pursued by researchers. To this end, this paper proposes an enhanced genetic and particle swarm optimization algorithm (GA_EPSO) that introduces an enhanced particle swarm optimization algorithm (EPSO) with improved random factors and inertia weights into mutation operations in genetic algorithm (GA). Reconstructing the mutation operator by the current optimal solution and the global optimal solution in enhanced particle swarm optimization algorithm, the enhanced genetic and particle swarm optimization algorithm has a faster convergence speed without falling into the local optimal solution. Simulation experiments show that under the same conditions, compared with genetic algorithm (GA), improved genetic algorithm (IGA), particle swarm optimization (PSO), enhanced particle swarm optimization (EPSO) and genetic particle swarm optimization (GA_PSO), the algorithm not only accelerates the convergence speed, but also has a significant improvement in task scheduling efficiency.
王晴,付学良*,李宏慧,李建荣
内蒙古农业大学计算机与信息工程学院,内蒙古 呼和浩特
收稿日期:2018年8月22日;录用日期:2018年8月30日;发布日期:2018年9月6日
云平台的任务调度算法是云计算领域研究的热点。如何在满足不陷入局部最优解的同时有更快的收敛速度,一直是研究者追求的目标之一。为此,本文提出将改进随机因子和惯性权重的增强型粒子群算法(EPSO)引入到遗传算法(GA)变异操作中的增强型遗传粒子群混合算法(GA_EPSO)。通过EPSO算法中的当前最优解和全局最优解重构变异算子,探索提升GA_EPSO算法在不陷入局部最优解的条件下,有更快的收敛速度。仿真实验表明,相同条件下,与遗传算法(GA),改进后的遗传算法(IGA),粒子群算法(PSO),增强型粒子群算法(EPSO)以及遗传粒子群算法(GA_PSO)相比,本文提出的改进算法不仅收敛速度快,而且任务调度效率也有明显提升。
关键词 :云计算,任务调度,遗传算法,粒子群算法,收敛速度,任务调度效率
Copyright © 2018 by authors and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
云计算作为当今IT界的热点技术,从产生便受到各领域学者的广泛关注,它拥有强大的处理能力,其中关键技术就是基于云计算任务调度算法的设计与应用。如何合理地分配和利用云环境中的资源、有效地调度用户提交的海量任务且保证云系统的负载均衡成为云计算研究的重点。探究在云计算环境中的优秀调度算法已成为专家学者们研究的重点内容之一 [
任务调度策略直接影响用户应用任务的服务质量和云计算系统的运行效率,同时还需考虑到云计算系统的负载平衡、资源利用率、系统能耗以及运营成本等诸多因素,因此单一的智能算法难以较好的满足需求,例如蚁群算法搜索时间长、收敛速度慢,易陷入局部最优解;粒子群算法易陷入局部最优解;遗传算法收敛速度慢 [
混合算法,即利用一种算法的优点弥补另一种算法的缺点,使结果更优。张雨等人 [
以上各种混合智能算法虽然同时结合二者的优点,在一定程度上加快收敛速度且降低任务完成时间,提高了任务调度效率,但还有进一步提升的空间。针对该问题,本文以最小完成时间、最快收敛速度为目的,提出增强型遗传粒子群混合算法(GA_EPSO),算法的特点是在对惯性权重和随机因子改进的同时,将粒子间信息传递的特性引入GA算法,较好的满足了云平台对任务调度算法的需求。
任务调度是保证用户能够及时得到云服务器响应和处理的关键,高效的调度策略可以提高系统对用户请求的响应速度和服务质量。因此,如何针对现有资源对云任务进行合理的分配与调度,提高云计算资源的利用率,并极大程度地满足用户需求是资源分配亟待解决的问题。
云计算平台中包含两个层面的任务调度 [
为了明确云计算环境下的任务调度问题,作如下假设:
1) 任务的长度在一定范围内随机选取;
2) 所有云计算资源被映射成虚拟机,且虚拟机的性能在一定范围内随机选取;
3) 提交的任务数量远远大于虚拟机数量。
因此,云任务调度问题可描述为:如何将m个长度不同的任务合理地映射到n个性能不同的虚拟机运行,使任务完成时间最短。
遗传算法往往根据实际问题设置个体编码方案,常见的GA编码方式有二进制编码和实数编码。对于信息量较大的问题,使用二进制编码会使编码过于冗长,增加算法的计算量,影响算法性能。因此,本文采用实数编码,该方法适用于表示取值范围较大的数,并且对染色体处理的复杂度大大降低,提高了算法的精度。
为了得到总任务完成时间最小且收敛速度最快的调度结果,在任务调度过程中,先利用遗传算法全局搜索能力强的优势,通过选择、交叉、变异等操作找到任务分配的较优解,然后在变异操作中引入PSO算法,更有效地产生接近目标的新个体。
本文以任务的总完成时间为目标,因此将所有任务的完成时间作为适应度函数。具体公式如下所示:
fitness = max ( time i ) , i ∈ { 0 , 1 , 2 , ⋯ , n − 1 } (1)
其中,timei表示在虚拟机i上完成所有任务的时间,n表示虚拟机的数量。根据适应度函数可知,当代种群中个体适应度越低,表示所有任务完成时间越短,越不容易被淘汰。
遗传算法主要通过选择、交叉以及变异三个遗传操作不断产生新个体,从而选出最优解。
选择操作使用轮盘赌法。在选择过程中,通过个体适应度值确定个体被选择的概率,具体计算方法如公式(2)所示。
p i = 1 / ( f ( i ) ∗ θ ) i ∈ ( 1 , 2 , 3 , ⋯ , n ) (2)
θ = ∑ i = 1 n f ( i ) , i ∈ ( 0 , 1 , 2 , ⋯ , n ) (3)
其中,n表示种群中所有个体数量, f ( i ) 表示个体适应度值,θ表示所有个体适应度值倒数之和,pi表示第i个个体被选中的概率。
交叉操作采用双点交叉法,左右交叉点随机选取。
变异操作引入增强型粒子群算法(EPSO)。传统变异既不考虑历史状态,也不考虑变异算子的优良性,从而影响算法的收敛性。本文通过PSO算法中的当前最优解和全局最优解重构变异算子。
v i d ( t + 1 ) = ω v i d ( t ) + c 1 r 1 ( t ) ( p i d ( t ) − x i d ( t ) ) + c 2 r 2 ( t ) ( p g d ( t ) − x i d ( t ) ) (4)
x i d ( t + 1 ) = x i d ( t ) + v i d ( t + 1 ) (5)
其中,GA算法中第i位上的最优解代替式(4)中的 p i d ( t ) ;GA算法中的历史最优解代替式(4)中的 p g d ( t ) 。r1和r2是相互关联且服从均匀分布的随机因子。ω是自适应惯性权重,具体采用式(6)计算。
ω ( t ) = ( ω max − ω min ) p s ( t ) + ω min 0 ≤ ω min ≤ ω max (6)
其中, p s ( t ) 表示粒子群在第t次迭代时的成功率,计算方法如公式(7)所示。
p s ( t ) = ∑ i = 1 n S ( i , t ) / n (7)
其中,n表示粒子个数, S ( i , t ) 表示粒子i在第t次迭代过程中的成功值,计算方法如公式(8)所示。
其中, pbest i t 表示粒子i在第t次迭代时的最优位置, globalbest t 表示全局最优值, fitness ( pbest i t ) 表示粒子i在第t次迭代时最优位置的适应度值。
引入PSO算法的变异操作能够根据历史最优解和个体最优解影响变异的方向和幅度。
S ( i , t ) = { 1 , fitness ( pbest i t ) < fitness ( pbest i t − 1 ) 且 fitness ( pbest i t ) < globalbest t ; 0.5 , fitness ( pbest i t ) < fitness ( pbest i t − 1 ) 且 fitness ( pbest i t ) ≥ globalbest t ; 0 , fitness ( pbest i t ) = fitness ( pbest i t − 1 ) (8)
本文利用CloudSim构建云环境任务调度模拟平台,Eclipse作为开发平台,将本文提出的GA_EPSO算法与PSO算法、EPSO算法 [
为了验证GA_EPSO算法的有效性,本文主要从任务完成时间和算法收敛性两个方面与其他算法进行比较。实验设置任务数从50到500变化,迭代200次的时间结果对比图,如图1所示。
其中,横坐标代表任务数量,纵坐标代表所有任务完成时间。从图1可以看出,GA_EPSO算法进行任务调度所用时间明显低于PSO算法和EPSO算法。当任务数量小于等于150时,GA_EPSO算法的总任务完成时间略低于GA,IGA和GA_PSO三种算法,但差距不明显。随着云任务数量的不断增加,GA_EPSO算法的效果明显优于其他三种算法。总而言之,进行任务调度时,GA_EPSO算法的效率高于其他几个算法,且任务数量越多,该算法的优势越明显。
图2是基于200个任务时,六种算法收敛性的比较。
其中,横坐标代表迭代次数,纵坐标代表适应度值。从图2可以看出,GA_EPSO算法的适应度最小,换句话说也就是任务完成时间最短。随着迭代次数的增加,PSO、EPSO、GA、IGA以及GA_PSO五种算法大概从迭代100次开始收敛,适应度值逐渐趋于稳定,但GA_EPSO算法不仅在GA算法中引入PSO算法影响变异操作,而且改进了PSO算法中的随机因子和惯性权重,因此GA_EPSO算法大概从迭代50次开始收敛,收敛速度明显提升。
算法 | 参数 | 取值 |
---|---|---|
GA | 种群规模/个 | 2000 |
GA | 交叉率 | 0.6 |
GA | 变异率 | 0.1 |
GA/PSO | 任务数量 | 50~500 |
PSO | 种群规模/个 | 100 |
PSO | 学习因子c1 | 2 |
PSO | 学习因子c2 | 2 |
表1. 算法参数设置
图1. 时间比较
图2. 收敛性比较
本文研究基于云计算任务调度问题时,针对单一算法无法在考虑最小任务完成时间的同时满足较高质量最优解和较快收敛速度的问题,提出将EPSO算法引入到GA算法变异操作的GA_EPSO算法。仿真实验证明,相比于其他五个算法,GA_EPSO算法既加快了收敛速度,又使算法在最短时间内找到最优解。但本实验目前仅优化了任务完成时间,真实的云环境还需考虑其他因素,因此有必要进一步改进和完善该算法。
国家自然科学基金(61363016, 61063004);内蒙古自然科学基金(No. 2015MS0605, No. 2015MS0626, No. 2015MS0627, No. 2017MS0605);内蒙古教育厅高校研究项目(NJZC059);内蒙古自治区高等学校科学研究重点项目(NJZZ14100);教育部留学人员基金([
王 晴,付学良,李宏慧,李建荣. 基于云计算任务调度的遗传粒子群优化算法 Genetic and Particle Swarm Optimization Algorithm Based on Cloud Task Scheduling[J]. 计算机科学与应用, 2018, 08(09): 1334-1340. https://doi.org/10.12677/CSA.2018.89144
https://doi.org/10.23940/ijpe.17.07.p9.10701076