基于改进布谷鸟搜索算法的云计算任务调度方法及系统的制作方法

文档序号:10612671阅读:506来源:国知局
基于改进布谷鸟搜索算法的云计算任务调度方法及系统的制作方法
【专利摘要】本发明公开了一种基于改进布谷鸟搜索算法的云计算任务调度方法及系统,方法包括:构建云计算任务调度模型,并以最优时间跨度时间和负载均衡为原则,确立云计算任务调度方案的适应度函数;根据云计算任务调度模型采用整数编码来对云计算任务调度方案的解进行描述;根据云计算任务调度方案的适应度函数采用改进的布谷鸟搜索算法求解云计算任务调度方案的最优解,然后根据求解的最优解为云计算任务分配相应的资源,所述改进的布谷鸟搜索算法采用柯西分布对陷入局部最优解的鸟巢进行柯西变异。本发明能跳出局部最优解,且能使调度方案同时在最优时间跨度和负载均衡方面表现优异,可广泛应用于云计算领域。
【专利说明】
基于改进布谷鸟搜索算法的云计算任务调度方法及系统
技术领域
[0001] 本发明涉及云计算领域,尤其是一种基于改进布谷鸟搜索算法的云计算任务调度 方法及系统。
【背景技术】
[0002] 随着信息时代的快速发展,在分布式计算、并行计算和网格计算逐步发展成熟的 基础上,云计算应运而生。作为一种新兴的商业计算模型,云计算已经成为了工业界和学术 界研究的热点。云计算的核心思想是利用分布在各地闲散异构的大规模廉价物理资源,整 合形成巨大的虚拟资源池,再通过网络将用户提交的计算和存储任务调度到不同的虚拟机 上,使得人们能够以极低的成本投入提升计算能力及存储容量,获得较高的服务质量。在云 计算系统中,可按需进行动态地部署、配置、重新配置和取消服务。
[0003] 然而,由于不断增长的用户量和云计算网络中节点的异构性和复杂性,如何及时、 高效地进行任务调度,合理地利用资源,提高资源利用率和任务执行的效率,成为云计算研 究的核心问题之一。
[0004] 在云计算系统中,任务调度的实质是将η个相互独立的任务合理分配到m个异构的 可用资源上,以达到任务调度目标。云计算的任务调度的目标是对用户提交的任务实现最 优调度,具体包括实现最优时间跨度(Optimal Makespan),保障服务质量(Quality of Service,QoS),保证负载均衡(Load Balancing)以及节省经济成本(Economic Principles)。时间跨度是从云计算系统中第一个任务开始,直到最后一个任务执行完成过 程中所消耗的时间,时间跨度越短证明调度策略越好。跨度是调度中重要且常见的目标,因 此,实现最优时间跨度是用户和云计算提供商的共同目标。而负载均衡是云计算系统中的 资源分配负载平衡,达到最佳化资源使用、最大化吞吐量和最小化响应时间,避免过载。
[0005] 在云任务调度过程中,最优调度方案的求解过程是一个离散型组合优化问题。近 年来,众多学者提出或优化了很多算法应用于任务调度,如蚁群算法、模拟退火算法、粒子 群优化算法、遗传算法等。这些算法以各自的优点对非确定性多项式问题和组合优化问题 进行求解。这些算法虽然可以从某个角度提高任务调度的效率,但是也存在其局限性,如很 难同时在最优时间跨度和负载均衡方面均表现良好。相比较而言,布谷鸟搜索算法是一种 比较新颖的群体智能启发式优化算法,其利用L6vy flights(莱维飞行)随机游动和偏好随 机游动来共同构成平衡算法的局部搜索和全局搜索的步骤,能通过L6vy flights(莱维飞 行)较快地寻找到全局最优解。国内外的一些学者在此方面做了一些研究,但鲜有将此算法 应用于求解云计算调度上。此外,现有的布谷鸟算法在进化后期容易造成早熟,易陷入局部 最优解,导致无法搜索出全局最优解,也限制了其在云计算调度上的应用。

【发明内容】

[0006] 为解决上述技术问题,本发明的目的在于:提供一种能跳出局部最优解,且能使调 度方案同时在最优时间跨度和负载均衡方面表现优异的,基于改进布谷鸟搜索算法的云计 算任务调度方法。
[0007] 本发明的另一目的在于:提供一种能跳出局部最优解,且能使调度方案同时在最 优时间跨度和负载均衡方面表现优异的,基于改进布谷鸟搜索算法的云计算任务调度系 统。
[0008] 本发明所采取的技术方案是:
[0009] 基于改进布谷鸟搜索算法的云计算任务调度方法,包括以下步骤:
[0010] S1、构建云计算任务调度模型,并以最优时间跨度时间和负载均衡为原则,确立云 计算任务调度方案的适应度函数;
[0011] S2、根据云计算任务调度模型采用整数编码来对云计算任务调度方案的解进行描 述;
[0012] S3、根据云计算任务调度方案的适应度函数采用改进的布谷鸟搜索算法求解云计 算任务调度方案的最优解,然后根据求解的最优解为云计算任务分配相应的资源,所述改 进的布谷鸟搜索算法采用柯西分布对陷入局部最优解的鸟巢进行柯西变异。
[0013] 进一步,所述步骤S1中云计算任务调度模型G的表达式为:
[0014]
[0015]所述云计算任务调度方案X的适应度函数F(X)的表达式为:
[0016]
[0017]其中,Task为任务集,S为资源集,η为任务的数量,m为资源的数量,VM为任务集中 的任一任务,Clet为资源集中的任一资源,vmid表示资源id号,mips表示CPU运行指令数, size表示资源大小,ram表示内存,bw表示带宽,pesNumber代表拥有的CPU个数,id表示任务 1(1,161^七11代表任务长度,;1^165126、01^。1^5126分别代表任务(]161:的输入、输出文件大小, Tl?为S中资源i运行的总时间,T^STask中任务j执行所需要的时间,E(X)?表示资源VM运 行时间的期望值,D(X)?表示资源VM运行时间的方差,E(X)elet表示任务Clet运行时间的期 望值,〇0严&表示任务Clet运行时间的方差,βε(〇,1)为比例因子,Load(X)为负载平衡因 子,ω e (〇, 1]为权值因子。
[0018] 进一步,所述步骤S2采用整数编码来对云计算任务调度方案的解进行描述时,编 码公式为:C=[Cl,c 2,…,C1,…,cn],对应的解码公式为 e[l,m+l)且(^为实数,c为对m个资源的序列号进行编码后得到的一维编码数组集,C'为C 对应的一维解码数组集,?_」"为向下取整符号,C'中每一维上的数值代表η个任务中对应 任务所分配的执行资源序列号。
[0019] 进一步,所述步骤S3包括:
[0020] S31、采用改进的布谷鸟搜索算法求解云计算任务调度方案X的适应度函数F(X)的 全局最优解;
[0021 ] S32、根据求解的最优解进行为云计算任务分配相应的资源。
[0022] 进一步,所述步骤S31包括:
[0023] S311、初始化布谷鸟搜索算法的基本参数和鸟巢;
[0024] S312、计算各鸟巢的适应度并根据柯西扰动条件判断其是否需要进行柯西变异, 若满足柯西扰动条件,则需要则执行步骤S313,反之,则跳至步骤S314,所述设定的柯西扰 动条件为:
[0025]
[0026]其中,Tpre表示向前比较的代数,Tcur表示当前代数,Fe(X)表示第e代当前鸟巢的 适应度值,Tpre<e<Tcur,5为柯西扰动因子;
[0027] S313、根据柯西变异公式对鸟巢进行变异,然后以变异后的鸟巢执行步骤S314,所 述柯西变异公式为:+C(0J),其中,<表示变异前第k代鸟巢群中的第h个鸟巢 的第〇个蛋,pty表示变异后第k代鸟巢群中的第h个鸟巢的第〇个蛋,C(0,1)为标准柯西分 布的随机变量;
[0028] S314、根据莱维飞行的公式更新鸟巢的位置,并计算及评估新的鸟巢适应度值,然 后对比先前最优后更新最优鸟巢记录,所述莱维飞行的公式为其 中,if表示在t+Ι代中第u个鸟巢的位置,表示在t代中第u个鸟巢的位置,α表示步长控制 量,?表示点乘积,L6 vy (λ)服从λ (1 < 3)的莱维分布;
[0029] S315、通过偏好随机游动产生随机数R,然后将R与布谷鸟的蛋被寄主发现的概率 Pa进行比较,其中,Pae[0,l],若R>pa,则随机改变鸟巢位置,得到一组新的鸟巢位置,反 之,则保留当前鸟巢位置;
[0030] S316、判断是否满足设定的停止条件,若是,则表明最优鸟巢位置寻找完毕,此时 根据最优鸟巢位置得到云计算任务调度方案对应的最优解,否则返回步骤S312继续下一代 的搜索。
[0031]进一步,所述资源集中的资源为虚拟机,所述云计算任务调度方案X的最优解为适 应度函数F(X)取最小值时对应的解。
[0032]本发明所采取的另一技术方案是:
[0033]基于改进布谷鸟搜索算法的云计算任务调度系统,包括:
[0034]建模模块,用于构建云计算任务调度模型,并以最优时间跨度时间和负载均衡为 原则,确立云计算任务调度方案的适应度函数;
[0035]整数编码模块,用于根据云计算任务调度模型采用整数编码来对云计算任务调度 方案的解进行描述;
[0036] 最优解寻找与分配模块,用于根据云计算任务调度方案的适应度函数采用改进的 布谷鸟搜索算法求解云计算任务调度方案的最优解,然后根据求解的最优解为云计算任务 分配相应的资源,所述改进的布谷鸟搜索算法采用柯西分布对陷入局部最优解的鸟巢进行 柯西变异;
[0037] 所述建模模块的输出端通过整数编码模块而和最优解寻找与分配模块的输入端 连接。
[0038]进一步,所述建模模块中云计算任务调度模型G的表达式为:
[0039]
[0040] 所述云计算任务调度方案X的适应度函数F(X)的表达式为:
[0041]
[0042]其中,Task为任务集,S为资源集,η为任务的数量,m为资源的数量,VM为任务集中 的任一任务,Clet为资源集中的任一资源,vmid表示资源id号,mips表示CPU运行指令数, size表示资源大小,ram表示内存,bw表示带宽,pesNumber代表拥有的CPU个数,id表示任务 1(1,161^七11代表任务长度,;1^165126、01^。1^5126分别代表任务(]161:的输入、输出文件大小, TV?为S中资源i运行的总时间,为Task中任务j执行所需要的时间,E(X)?表示资源VM运 行时间的期望值,D(X)?表示资源VM运行时间的方差,E(X)elet表示任务Clet运行时间的期 望值,〇0严&表示任务Clet运行时间的方差,βε(〇,1)为比例因子,Load(x)为负载平衡因 子,ω e (〇, 1]为权值因子。
[0043] 进一步,所述最优解寻找与分配模块包括:
[0044] 最优解寻找单元,用于采用改进的布谷鸟搜索算法求解云计算任务调度方案X的 适应度函数F(X)的全局最优解;
[0045] 分配单元,用于根据求解的最优解进行为云计算任务分配相应的资源;
[0046] 整数编码模块的输出端通过最优解寻找单元进而与分配单元的输入端连接。
[0047]进一步,所述最优解寻找单元包括:
[0048] 初始化子单元,用于初始化布谷鸟搜索算法的基本参数和鸟巢;
[0049] 柯西变异判断子单元,用于计算各鸟巢的适应度并根据柯西扰动条件判断其是否 需要进行柯西变异,若满足柯西扰动条件,则需要则转至柯西变异子单元,反之,则跳至莱 维飞行更新子单元,所述设定的柯西扰动条件为:
[0050]
[0051]其中,Tpre表示向前比较的代数,Tcur表示当前代数,Fe(X)表示第e代当前鸟巢的 适应度值,Tpre<e<Tcur,5为柯西扰动因子;
[0052]柯西变异子单元,用于根据柯西变异公式对鸟巢进行变异,然后以变异后的鸟巢 执行莱维飞行更新子单元的操作,所述柯西变异公式为:其中,表示 变异前第k代鸟巢群中的第h个鸟巢的第〇个蛋,表示变异后第k代鸟巢群中的第h个鸟 巢的第〇个蛋,c(〇,i)为标准柯西分布的随机变量;
[0053]莱维飞行更新子单元,用于根据莱维飞行的公式更新鸟巢的位置,并计算及评估 新的鸟巢适应度值,然后对比先前最优后更新最优鸟巢记录,所述莱维飞行的公式为: ?C:1_ = < ,其中,表示在t+Ι代中第U个鸟巢的位置,;表示在t代中第U个鸟 巢的位置,a表示步长控制量,?表示点乘积,L6vy(A)服从λ(1<λ<3)的莱维分布;
[0054]偏好随机游动子单元,用于通过偏好随机游动产生随机数R,然后将R与布谷鸟的 蛋被寄主发现的概率Pa进行比较,其中,Pae[0,l],若R>pa,则随机改变鸟巢位置,得到一 组新的鸟巢位置,反之,则保留当前鸟巢位置;
[0055] 寻优终止输出子单元,判断是否满足设定的停止条件,若是,则表明最优鸟巢位置 寻找完毕,此时根据最优鸟巢位置得到云计算任务调度方案对应的最优解,否则返回柯西 变异判断子单元继续下一代的搜索;
[0056] 所述整数编码模块的输出端通过初始化子单元而与柯西变异判断子单元的输入 端连接,所述柯西变异判断子单元的输出端分别与柯西变异子单元的输入端和莱维飞行更 新子单元的第一输入端连接,所述柯西变异子单元的输出端和莱维飞行更新子单元的第二 输入端连接,所述莱维飞行更新子单元的输出端通过偏好随机游动子单元而与寻优终止输 出子单元的输入端连接,所述寻优终止输出子单元输出端分别与柯西变异判断子单元的输 入端以及分配单元的输入端连接。
[0057]本发明的方法的有益效果是:先构建云计算任务调度模型和确定适应度函数,再 进行整数编码,最后采用改进的布谷鸟搜索算法求解最优解,将基于全局搜索柯西变异的 布谷鸟搜索算法应用于云计算任务调度,利用柯西变异对陷入局部最优解的鸟巢进行扰 动,以跳出局部最优解,提高了搜索速度和搜索质量;且以最优时间跨度时间和负载均衡为 原则,确立云计算任务调度方案的适应度函数,能使调度方案同时在最优时间跨度和负载 均衡方面表现优异。
[0058] 本发明的系统的有益效果是:先在构建模块中构建云计算任务调度模型和确定适 应度函数,再在整数编码模块进行整数编码,最后在最优解寻找与分配模块中采用改进的 布谷鸟搜索算法求解最优解,将基于全局搜索柯西变异的布谷鸟搜索算法应用于云计算任 务调度,利用柯西变异对陷入局部最优解的鸟巢进行扰动,以跳出局部最优解,提高了搜索 速度和搜索质量;且以最优时间跨度时间和负载均衡为原则,确立云计算任务调度方案的 适应度函数,能使调度方案同时在最优时间跨度和负载均衡方面表现优异。
【附图说明】
[0059] 图1为本发明基于改进布谷鸟搜索算法的云计算任务调度方法的整体流程图;
[0060] 图2为本发明基于改进布谷鸟搜索算法的云计算任务调度系统的结构框图;
[0061 ]图3为高斯N(0,1)随机数和柯西C(0,1)随机数的分布密度;
[0062]图4为本发明改进的布谷鸟搜索算法流程图。
【具体实施方式】
[0063]参照图1,基于改进布谷鸟搜索算法的云计算任务调度方法,包括以下步骤:
[0064] S1、构建云计算任务调度模型,并以最优时间跨度时间和负载均衡为原则,确立云 计算任务调度方案的适应度函数;
[0065] S2、根据云计算任务调度模型采用整数编码来对云计算任务调度方案的解进行描 述;
[0066] S3、根据云计算任务调度方案的适应度函数采用改进的布谷鸟搜索算法求解云计 算任务调度方案的最优解,然后根据求解的最优解为云计算任务分配相应的资源,所述改 进的布谷鸟搜索算法采用柯西分布对陷入局部最优解的鸟巢进行柯西变异。
[0067]进一步作为优选的实施方式,所述步骤S1中云计算任务调度模型G的表达式为:
[0068]
[0069]所述云计算任务调度方案X的适应度函数F(X)的表达式为:
[0070]
[0071 ]其中,Task为任务集,S为资源集,η为任务的数量,m为资源的数量,VM为任务集中 的任一任务,Clet为资源集中的任一资源,vmid表示资源id号,mips表示CPU运行指令数, size表示资源大小,ram表示内存,bw表示带宽,pesNumber代表拥有的CPU个数,id表示任务 1(1,161^七11代表任务长度,;1^165126、01^。1^5126分别代表任务(]161:的输入、输出文件大小, Tl?为S中资源i运行的总时间,If"为Task中任务j执行所需要的时间,E(X)?表示资源VM运 行时间的期望值,D(X)?表示资源VM运行时间的方差,E(X)elet表示任务Clet运行时间的期 望值,〇0严&表示任务Clet运行时间的方差,βε(〇,1)为比例因子,Load(X)为负载平衡因 子,ω e (〇, 1]为权值因子。
[0072] 进一步作为优选的实施方式,所述步骤S2采用整数编码来对云计算任务调度方案 的解进行描述时,编码公式为4=[(31,(: 2,...,(31,...,(^],对应的解码公式为: 亡=[1>;1」,^」,...,^」],其中,。1£[1,11 1+1)且(31为实数,(:为对111个资源的序列号进行编码后 得到的一维编码数组集,C'为C对应的一维解码数组集/'L」"为向下取整符号,C'中每一维 上的数值代表η个任务中对应任务所分配的执行资源序列号。
[0073] 进一步作为优选的实施方式,所述步骤S3包括:
[0074] S31、采用改进的布谷鸟搜索算法求解云计算任务调度方案X的适应度函数F(X)的 全局最优解;
[0075] S32、根据求解的最优解进行为云计算任务分配相应的资源。
[0076]进一步作为优选的实施方式,所述步骤S31包括:
[0077] S311、初始化布谷鸟搜索算法的基本参数和鸟巢;
[0078] S312、计算各鸟巢的适应度并根据柯西扰动条件判断其是否需要进行柯西变异, 若满足柯西扰动条件,则需要则执行步骤S313,反之,则跳至步骤S314,所述设定的柯西扰 动条件为:
[0079] v e-icur
[0080] 其中,Tpre表示向前比较的代数,Tcur表示当前代数,Fe(X)表示第e代当前鸟巢的 适应度值,Tpre<e<Tcur,5为柯西扰动因子;
[0081] S313、根据柯西变异公式对鸟巢进行变异,然后以变异后的鸟巢执行步骤S314,所 述柯西变异公式为:= At+C(0,1),其中,表示变异前第k代鸟巢群中的第h个鸟巢 的第0个蛋,(xt/表示变异后第k代鸟巢群中的第h个鸟巢的第0个蛋,C(0,1)为标准柯西分 布的随机变量;
[0082] S314、根据莱维飞行的公式更新鸟巢的位置,并计算及评估新的鸟巢适应度值,然 后对比先前最优后更新最优鸟巢记录,所述莱维飞行的公式为+??Z^(vU),其 中,f1表示在t+Ι代中第u个鸟巢的位置,表示在t代中第u个鸟巢的位置,α表示步长控制 量,發表不点乘积,L6vy(A)服从λ(1<λ<3)的莱维分布;
[0083] S315、通过偏好随机游动产生随机数R,然后将R与布谷鸟的蛋被寄主发现的概率 Pa进行比较,其中,Pae[0,l],若R>pa,则随机改变鸟巢位置,得到一组新的鸟巢位置,反 之,则保留当前鸟巢位置;
[0084] S316、判断是否满足设定的停止条件,若是,则表明最优鸟巢位置寻找完毕,此时 根据最优鸟巢位置得到云计算任务调度方案对应的最优解,否则返回步骤S312继续下一代 的搜索。
[0085] 进一步作为优选的实施方式,所述资源集中的资源为虚拟机,所述云计算任务调 度方案X的最优解为适应度函数F (X)取最小值时对应的解。
[0086]参照图2,基于改进布谷鸟搜索算法的云计算任务调度系统,包括:
[0087]建模模块,用于构建云计算任务调度模型,并以最优时间跨度时间和负载均衡为 原则,确立云计算任务调度方案的适应度函数;
[0088]整数编码模块,用于根据云计算任务调度模型采用整数编码来对云计算任务调度 方案的解进行描述;
[0089] 最优解寻找与分配模块,用于根据云计算任务调度方案的适应度函数采用改进的 布谷鸟搜索算法求解云计算任务调度方案的最优解,然后根据求解的最优解为云计算任务 分配相应的资源,所述改进的布谷鸟搜索算法采用柯西分布对陷入局部最优解的鸟巢进行 柯西变异;
[0090] 所述建模模块的输出端通过整数编码模块而和最优解寻找与分配模块的输入端 连接。
[0091] 进一步作为优选的实施方式,所述建模模块中云计算任务调度模型G的表达式为:
[0092]
[0093]所述云计算任务调度方案X的适应度函数F(X)的表达式为:
[0094]
[0095] 其中,Task为任务集,S为资源集,η为任务的数量,m为资源的数量,VM为任务集中 的任一任务,Clet为资源集中的任一资源,vmid表示资源id号,mips表示CPU运行指令数, size表示资源大小,ram表示内存,bw表示带宽,pesNumber代表拥有的CPU个数,id表示任务 1(1,161^七11代表任务长度,;1^165126、01^。1^5126分别代表任务(]161:的输入、输出文件大小, Tl?为s中资源!运行的总时间,j^STask中任务j执行所需要的时间,E(X)?表示资源VM运 行时间的期望值,D(X)?表示资源VM运行时间的方差,E(X)elet表示任务Clet运行时间的期 望值,〇0严&表示任务Clet运行时间的方差,βε(〇,1)为比例因子,Load(X)为负载平衡因 子,ω e (〇, 1]为权值因子。
[0096] 参照图2,进一步作为优选的实施方式,所述最优解寻找与分配模块包括:
[0097]最优解寻找单元,用于采用改进的布谷鸟搜索算法求解云计算任务调度方案X的 适应度函数F(X)的全局最优解;
[0098] 分配单元,用于根据求解的最优解进行为云计算任务分配相应的资源;
[0099] 整数编码模块的输出端通过最优解寻找单元进而与分配单元的输入端连接。
[0100]参照图2,进一步作为优选的实施方式,所述最优解寻找单元包括:
[0101]初始化子单元,用于初始化布谷鸟搜索算法的基本参数和鸟巢;
[0102] 柯西变异判断子单元,用于计算各鸟巢的适应度并根据柯西扰动条件判断其是否 需要进行柯西变异,若满足柯西扰动条件,则需要则转至柯西变异子单元,反之,则跳至莱 维飞行更新子单元,所述设定的柯西扰动条件为:
[0103]
[0104]其中,Tpre表示向前比较的代数,Tcur表示当前代数,Fe(X)表示第e代当前鸟巢的 适应度值,Tpre<e<Tcur,5为柯西扰动因子;
[0105]柯西变异子单元,用于根据柯西变异公式对鸟巢进行变异,然后以变异后的鸟巢 执行莱维飞行更新子单元的操作,所述柯西变异公式为"4^=^1 + ^(0,1),其中,21表示 变异前第k代鸟巢群中的第h个鸟巢的第〇个蛋,(Xi/表示变异后第k代鸟巢群中的第h个鸟 巢的第〇个蛋,C(0,1)为标准柯西分布的随机变量;
[0106] 莱维飞行更新子单元,用于根据莱维飞行的公式更新鸟巢的位置,并计算及评估 新的鸟巢适应度值,然后对比先前最优后更新最优鸟巢记录,所述莱维飞行的公式为: C1 ,其中,4+1表示在t+i代中第uf鸟巢的位置,< 表示在t代中第u个鸟 巢的位置,α表示步长控制量,?表示点乘积,L6vy(A)服从λ(1<λ<3)的莱维分布;
[0107] 偏好随机游动子单元,用于通过偏好随机游动产生随机数R,然后将R与布谷鸟的 蛋被寄主发现的概率Pa进行比较,其中,Pae[0,l],若R>p a,则随机改变鸟巢位置,得到一 组新的鸟巢位置,反之,则保留当前鸟巢位置;
[0108]寻优终止输出子单元,判断是否满足设定的停止条件,若是,则表明最优鸟巢位置 寻找完毕,此时根据最优鸟巢位置得到云计算任务调度方案对应的最优解,否则返回柯西 变异判断子单元继续下一代的搜索;
[0109]所述整数编码模块的输出端通过初始化子单元而与柯西变异判断子单元的输入 端连接,所述柯西变异判断子单元的输出端分别与柯西变异子单元的输入端和莱维飞行更 新子单元的第一输入端连接,所述柯西变异子单元的输出端和莱维飞行更新子单元的第二 输入端连接,所述莱维飞行更新子单元的输出端通过偏好随机游动子单元而与寻优终止输 出子单元的输入端连接,所述寻优终止输出子单元输出端分别与柯西变异判断子单元的输 入端以及分配单元的输入端连接。
[0110]下面结合说明书附图和具体实施例对本发明作进一步解释和说明。
[0111]实施例一
[0112]本实施例对本发明所涉及的相关理论及实现过程进行说明。
[0113](一)云计算任务调度模型及适应度函数。
[0114]在云计算系统中,任务调度的实质是将η个相互独立的任务合理分配到m个异构的 可用资源(如虚拟机等)上,以达到任务调度目标。
[0115]云计算中资源通过虚拟化的方式提供给用户,通常云计算中任一资源VM可以被描 述为:
[0116] VM= {vmid,mips, size ,ram,bw,pesNumber}
[0117] 其中,vmid表示资源id号,mips表示CPU运行指令数,size表示资源大小,ram表示 内存,bw表示带宽,pesNumber代表拥有的CPU个数。
[0118] 而用户提交的任一任务Clet可以被描述为:
[0119] Clet ={id, length,f ileSize ,outputSize}
[0120] 其中,id表示任务id,length代表任务长度,f ileSize、outputSize分别代表任务 Clet的输入、输出文件大小。
[0121]基于以上理论,本发明提出了如下的计算任务调度模型G:
[0122]
[0123] 而为实现调度方案具有最优跨度和较优的负载均衡,本发明定义了如下公式:
[0124]
[0125] 其中,Time(X)为最优跨度时间综合值;T,为资源i运行的总时间;m为系统中资源 的数量;Time(X)值越小,代表该调度方案所用总的执行时间越短。
[0126] 而对于负载均衡,则有:
[0127]
[0128]
[0129] 其中,为任务j执行所需要的时间;η为系统中任务的数量;E(X)?表示虚拟机运 行时间的期望值;D(X)?表示虚拟机运行时间的方差,E(X) elet表示任务运行时间的期望值; D(X)elet表示任务运行时间的方差;βε(〇,1)为比例因子;Load(X)即为本发明使用的负载 平衡因子;Load(X)值越小,代表该调度方案的负载越均衡。
[0130] 综合考虑调度方案的最优时间跨度时间和负载均衡,由公式(2)和(3)可得出用来 进行任务调度方案评价的目标函数(即适应度函数)公式(4)。其中,ωε(〇,1]为权值因子; F(X)越小,调度方案X越优:
[0131] F(X)= ω*Time(X)+(1-ω)*Load(X) (4)
[0132] (二)基于整数编码的调度方案。
[0133] 资源调度方案属于组合优化问题,应用布谷鸟算法求解调度问题首先需要构造合 理的编码方式来表示调度问题的解。
[0134] 在云任务调度中,设有η个任务需要在有m个虚拟机上执行,则代表解为η维的一元 数组,每个任务对应的虚拟机号即为当前维的值。在对虚拟机号进行编码时,采用从1至m递 增的整数编码。由于布谷鸟算法迭代过程中使用的为实数编码方式,所以本发明在进行编 码时使用公式(5),解码时使用公式(6)的编解码算法进行调度:
[0135] C=[ci,C2, · · ·,ci,· · ·,cn],cie [l,m+l)且ci为实数(5)
[0136] C =[[cj,[c2 J J] (6)
[0137] 解码后每一维上的数值代表对应任务所分配的执行资源序列号即虚拟机编号。
[0138] (三)基本布谷鸟算法。
[0139] 布谷鸟搜索(Cuckoo Search,简称CS)算法是一种新兴的仿生智能算法,由Xinshe Yang和S. Deb在2009年提出,其思想源于对布谷鸟寄生育雏行为以及鸟类或果蝇L6vy flights行为的模拟。该算法中的L6vy flights随机游动和偏好随机游动这两个主要方面, 共同构成平衡算法的局部搜索和全局搜索的步骤。
[0140] 布谷鸟搜索算法建立在3个理想条件上:
[0141] (1)每只布谷鸟一次只产一个蛋,并且把蛋放在随机选择的鸟巢里;
[0142] (2)孵化质量高的蛋的鸟巢将会传给下一代;
[0143] (3)可用的寄主的鸟巢数量是固定的,布谷鸟的蛋被寄主发现的概率是Pa e [0, 1]。被发现后,寄主可以把蛋扔了或者遗弃原来的鸟巢并新建一个。
[0144] 在布谷鸟搜索算法中,基于莱维飞行,布谷鸟选择寄主鸟巢的位置更新式为:
[0145] .r^1' =.x. + a? Levy(A.) (7)
[0146] 其中,x,i+1表示在t+1代中,第i个鸟巢的位置,#表示在t代中,第i个鸟巢的位置,α 表示步长控制量,通常a = 1,?表示点乘积,L6vy (λ)服从λ( 1 <λ<3)的L6vy分布。
[0147] 布谷鸟算法的群体由k个随机生成的布谷鸟巢组成,即群体:?={心,办,...乂15};每 个布谷鸟巢包含η个鸟蛋,一个鸟巢代表一个候选解X={ X1,X1,. . .,χη}。
[0148] (四)改进的布谷鸟搜索算法
[0149] 在云任务调度过程中,最优调度方案的求解过程是一个离散型组合优化问题,但 基本布谷鸟算法在进化后期容易造成早熟,易陷入局部最优解,导致无法搜索出全局最优 解。由于基本布谷鸟的缺点以及云任务调度的特点,本发明对基本布谷鸟算法进行了改进, 提出了基于自适应柯西变异的布谷鸟搜索算法(Adaptive Cauchy Cuckoo Search,简称 ACCS)〇
[0150] ACCS的基本思想是当布谷鸟搜索的单个鸟巢陷入局部极值时,利用柯西分布的全 局变异和离散分布特点,对单个鸟巢进行柯西变异以增加鸟巢的多样性,有利于跳出局部 极值进行全局搜索,同时提高搜索速度和质量。
[0151] 当同一鸟巢在连续q代中,若鸟巢的适应度平均差值仍然保持在变异范围之内,则 说明此鸟巢已陷入局部最优状态,无法自主进步,此时需要进行外部干预。由于柯西变异在 全局搜索时有较优的表现,本发明引入了柯西扰动算子,对陷入局部最优状态的鸟巢进行 外部干预,以进行扰动变异。
[0152] (1)柯西分布
[0153] 柯西分布是一种常见的分布函数,一维柯西分布随机变量C(0,〇)的密度函数f。 (X)定义为:
[0154]
[0155] 其中,〇为尺度参数。当〇 = 1时,C(0,〇)称为标准柯西分布随机变量。
[0156] 由图3可见,柯西分布在原点的峰值比高斯分布小,而两端无限趋近于X轴的速度 比高斯分布慢,说明柯西分布更易产生远离远点的随机数,柯西变异的扰动能力比高斯变 异强,能有效防止算法陷入局部最优。
[0157] (2)柯西变异的扰动时机。
[0158] 本发明进行柯西变异时所采用的扰动时机为:
[0159] lpl· £i e-Tcur
'
[0160] 其中,Tpre表示向前比较的代数;Tcur表示当前代数;Fe(X)表示第e代当前鸟巢的 适应度值;其中Tpre<e<Tcur;5为柯西扰动因子。
[0161] (3)柯西变异的扰动方法。
[0162] 本发明进行柯西变异时所采用的扰动方法为:
[0163]
[0164] 其中,;^表示变异前第k代鸟巢群中的第h个鸟巢的第〇个蛋,表示变异后第 k代鸟巢群中的第h个鸟巢的第〇个蛋,C(0,1)为标准柯西分布的随机变量。
[0165] (4)改进后的布谷鸟搜索算法流程。
[0166] 如图4所示,改进后的布谷鸟搜索算法流程为:
[0167] 步骤1:初始化布谷鸟搜索算法的基本参数和鸟巢。其中,初始化布谷鸟搜索算法 的基本参数包括但不限于:设置布谷鸟算法的群体数目以及每个群体中鸟巢的数目K,设置 布谷鸟的蛋被寄主发现的概率Pa,设定结束条件等。
[0168] 步骤2:计算各鸟巢的适应度并根据柯西扰动条件判断其是否需要进行柯西变异, 若满足柯西扰动条件,则需要则执行步骤3,反之,则跳至步骤4,所述设定的柯西扰动条件 为:
[0169]
[0170] 其中,Tpre表示向前比较的代数,Tcur表示当前代数,Fe(X)表示第e代当前鸟巢的 适应度值,Tpre<e<Tcur,5为柯西扰动因子;
[0171]步骤3:根据柯西变异公式对鸟巢进行变异,然后以变异后的鸟巢执行步骤4,所述 柯西变异公式为:=XL+C(〇J),其中,Xi表示变异前第k代鸟巢群中的第h个鸟巢的第 〇个蛋,表示变异后第k代鸟巢群中的第h个鸟巢的第〇个蛋,c(〇,i)为标准柯西分布的 随机变量;
[0172] 步骤4:根据莱维飞行的公式更新鸟巢的位置,并计算及评估新的鸟巢适应度值, 然后对比先前最优后更新最优鸟巢记录,所述莱维飞行的公式为:4 +1 = < + α ?Ι?ντμ),其 中,<+1表示在t+1代中第u个鸟巢的位置,表示在t代中第u个鸟巢的位置,α表示步长控制 量,<8表不点乘积,L6vy(A)服从λ(1<λ<3)的莱维分布;
[0173] 步骤5:通过偏好随机游动产生随机数R,然后将R与布谷鸟的蛋被寄主发现的概率 Pa进行比较,其中,Pae[0,l],若R>pa,则随机改变鸟巢位置,得到一组新的鸟巢位置,反 之,则保留当前鸟巢位置;
[0174]步骤6:判断是否满足设定的停止条件,若是,则表明最优鸟巢位置寻找完毕,此时 根据最优鸟巢位置得到云计算任务调度方案对应的最优解,否则返回步骤2继续下一代的 搜索。
[0175]其中,鸟巢的最佳位置就是云计算资源的最佳任务分配方案,对应的鸟巢最佳位 置中的鸟蛋就是云计算任务调度方案的最优解。
[0176] 本发明提出了一种基于全局搜索柯西变异的布谷鸟搜索算法ACCS,并将其运用于 云计算任务调度,且基于最优时间跨度和负载均衡两个目标,采用了整数编码方式应用 ACCS算法进行求解,从而能够在更短的时间内寻取到更优的调度方案,并使调度方案同时 在最优时间跨度和负载均衡方面均表现良好。
[0177] 以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施 例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替 换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
【主权项】
1. 基于改进布谷鸟捜索算法的云计算任务调度方法,其特征在于:包括W下步骤: 51、 构建云计算任务调度模型,并W最优时间跨度时间和负载均衡为原则,确立云计算 任务调度方案的适应度函数; 52、 根据云计算任务调度模型采用整数编码来对云计算任务调度方案的解进行描述; 53、 根据云计算任务调度方案的适应度函数采用改进的布谷鸟捜索算法求解云计算任 务调度方案的最优解,然后根据求解的最优解为云计算任务分配相应的资源,所述改进的 布谷鸟捜索算法采用柯西分布对陷入局部最优解的鸟巢进行柯西变异。2. 根据权利要求1所述的基于改进布谷鸟捜索算法的云计算任务调度方法,其特征在 于:所述步骤S1中云计算任务调度模型G的表达式为:所述云计算任务调度方案X的适应度函数F(X)的表达式为:其中,Task为任务集,S为资源集,η为任务的数量,m为资源的数量,VM为任务集中的任 一任务,Clet为资源集中的任一资源,vmid表示资源id号,mips表示CPU运行指令数,size表 示资源大小,ram表示内存,bw表示带宽,pesNumber代表拥有的CPU个数,id表示任务id, length代表任务长度,f ileSize、outputSize分别代表任务Clet的输入、输出文件大小, If"为S中资源i运行的总时间,为化sk中任务j执行所需要的时间,E(X)?表示资源VM 运行时间的期望值,D(X)?表示资源VM运行时间的方差,E(X)Uet表示任务Clet运行时间的 期望值,D(X)Uet表示任务Clet运行时间的方差,βε(〇,1)为比例因子,Load(X)为负载平衡 因子,ω e (0,1]为权值因子。3. 根据权利要求2所述的基于改进布谷鸟捜索算法的云计算任务调度方法,其特征在 于:所述步骤S2采用整数编码来对云计算任务调度方案的解进行描述时,编码公式为:C = ki, C2, . . . , Cl, . . . , Cn],对应的解码公式为:C = [_q_ 其中,Cl e [ 1 ,m+l)且Cl 为实数,C为对m个资源的序列号进行编码后得到的一维编码数组集,C'为C对应的一维解码 数组集,"L」"为向下取整符号,C'中每一维上的数值代表η个任务中对应任务所分配的执 行资源序列号。4. 根据权利要求2所述的基于改进布谷鸟捜索算法的云计算任务调度方法,其特征在 于:所述步骤S3包括: 531、 采用改进的布谷鸟捜索算法求解云计算任务调度方案X的适应度函数F(X)的全局 最优解; 532、 根据求解的最优解进行为云计算任务分配相应的资源。5. 根据权利要求4所述的基于改进布谷鸟捜索算法的云计算任务调度方法,其特征在 于:所述步骤S31包括: 5311、 初始化布谷鸟捜索算法的基本参数和鸟巢; 5312、 计算各鸟巢的适应度并根据柯西扰动条件判断其是否需要进行柯西变异,若满 足柯西扰动条件,则需要则执行步骤S313,反之,则跳至步骤S314,所述设定的柯西扰动条 件为:其中,Tpre表示向前比较的代数,Tcur表示当前代数,Fe(X)表示第e代当前鸟巢的适应度 值,Tpre<e《Tcu;r,S为柯西扰动因子; 5313、 根据柯西变异公式对鸟巢进行变异,然后W变异后的鸟巢执行步骤S314,所述柯 西变异公式为:^為^=^+€'(0,1),其中,诚表示变异前第1^代鸟巢群中的第11个鸟巢的第〇 个蛋,(义表示变异后第k代鸟巢群中的第h个鸟巢的第0个蛋,C(0,1)为标准柯西分布的 随机变量; 5314、 根据莱维飞行的公式更新鸟巢的位置,并计算及评估新的鸟巢适应度值,然后对 比先前最优后更新最优鸟巢记录,所述莱维飞行的公式为:乂i 1二乂 + α 0/^、:rU),其中, 表示在t+1代中第U个鸟巢的位置< 表示在t代中第U个鸟巢的位置,α表示步长控制量,? 表示点乘积,L6vy(A)服从λ(1<λ《3)的莱维分布; 5315、 通过偏好随机游动产生随机数R,然后将R与布谷鸟的蛋被寄主发现的概率化进 行比较,其中,化e[〇,l],若R〉化,则随机改变鸟巢位置,得到一组新的鸟巢位置,反之,贝U 保留当前鸟巢位置; 5316、 判断是否满足设定的停止条件,若是,则表明最优鸟巢位置寻找完毕,此时根据 最优鸟巢位置得到云计算任务调度方案对应的最优解,否则返回步骤S312继续下一代的捜 索。6. 根据权利要求2-5任一项所述的基于改进布谷鸟捜索算法的云计算任务调度方法, 其特征在于:所述资源集中的资源为虚拟机,所述云计算任务调度方案X的最优解为适应度 函数F(X)取最小值时对应的解。7. 基于改进布谷鸟捜索算法的云计算任务调度系统,其特征在于:包括: 建模模块,用于构建云计算任务调度模型,并w最优时间跨度时间和负载均衡为原则, 确立云计算任务调度方案的适应度函数; 整数编码模块,用于根据云计算任务调度模型采用整数编码来对云计算任务调度方案 的解进行描述; 最优解寻找与分配模块,用于根据云计算任务调度方案的适应度函数采用改进的布谷 鸟捜索算法求解云计算任务调度方案的最优解,然后根据求解的最优解为云计算任务分配 相应的资源,所述改进的布谷鸟捜索算法采用柯西分布对陷入局部最优解的鸟巢进行柯西 变异; 所述建模模块的输出端通过整数编码模块而和最优解寻找与分配模块的输入端连接。8.根据权利要求7所述的基于改进布谷鸟捜索算法的云计算任务调度系统,其特征在 于:所述建模模块中云计算任务调度模型G的表达式为:所述云计算任务调度方案X的适应度函数F(X)的表达式为:其中,Task为任务集,S为资源集,η为任务的数量,m为资源的数量,VM为任务集中的任 一任务,Clet为资源集中的任一资源,vmid表示资源id号,mips表示CPU运行指令数,size表 示资源大小,ram表示内存,bw表示带宽,pesNumber代表拥有的CPU个数,id表示任务id, length代表任务长度,f ileSize、outputSize分别代表任务Clet的输入、输出文件大小, 为S中资源i运行的总时间,Tfw为化sk中任务j执行所需要的时间,E(X)?表示资源VM 运行时间的期望值,D(X)?表示资源VM运行时间的方差,E(X)Uet表示任务Clet运行时间的 期望值,D(X)Uet表示任务Clet运行时间的方差,βε(〇,1)为比例因子,Load(X)为负载平衡 因子,ω E (0,1]为权值因子D9. 根据权利要求8所述的基于改进布谷鸟捜索算法的云计算任务调度系统,其特征在 于:所述最优解寻找与分配模块包括: 最优解寻找单元,用于采用改进的布谷鸟捜索算法求解云计算任务调度方案X的适应 度函数F(X)的全局最优解; 分配单元,用于根据求解的最优解进行为云计算任务分配相应的资源; 整数编码模块的输出端通过最优解寻找单元进而与分配单元的输入端连接。10. 根据权利要求9所述的基于改进布谷鸟捜索算法的云计算任务调度系统,其特征在 于:所述最优解寻找单元包括: 初始化子单元,用于初始化布谷鸟捜索算法的基本参数和鸟巢; 柯西变异判断子单元,用于计算各鸟巢的适应度并根据柯西扰动条件判断其是否需要 进行柯西变异,若满足柯西扰动条件,则需要则转至柯西变异子单元,反之,则跳至莱维飞 行更新子单元,所述设定的柯西扰动条件为:其中,Tpre表示向前比较的代数,Tcur表示当前代数,Fe(X)表示第e代当前鸟巢的适应 度值,Tpre<e《Tcu;r,S为柯西扰动因子; 柯西变异子单元,用于根据柯西变异公式对鸟巢进行变异,然后W变异后的鸟巢执行 莱维飞行更新子单元的操作,所述柯西变异公式为其中,表示变异 前第k代鸟巢群中的第h个鸟巢的第0个蛋,μι/表示变异后第k代鸟巢群中的第h个鸟巢的 第0个蛋,C(0,1)为标准柯西分布的随机变量; 莱维飞行更新子单元,用于根据莱维飞行的公式更新鸟巢的位置,并计算及评估新的鸟巢适 应度值,然后对比先前最优后更新最优鸟巢记录,所述莱维飞行的公式为:均4 =為+ ? @&?巧初.), 其中,皆1表示在t+1代中第U个鸟巢的位置,?表示在t代中第U个鸟巢的位置,α表示步长控 制量,@表示点乘积,L6 vy (λ)服从λ (1 < 3)的莱维分布; 偏好随机游动子单元,用于通过偏好随机游动产生随机数R,然后将R与布谷鸟的蛋被 寄主发现的概率化进行比较,其中,化e[〇,l],若R〉化,则随机改变鸟巢位置,得到一组新 的鸟巢位置,反之,则保留当前鸟巢位置; 寻优终止输出子单元,判断是否满足设定的停止条件,若是,则表明最优鸟巢位置寻找 完毕,此时根据最优鸟巢位置得到云计算任务调度方案对应的最优解,否则返回柯西变异 判断子单元继续下一代的捜索; 所述整数编码模块的输出端通过初始化子单元而与柯西变异判断子单元的输入端连 接,所述柯西变异判断子单元的输出端分别与柯西变异子单元的输入端和莱维飞行更新子 单元的第一输入端连接,所述柯西变异子单元的输出端和莱维飞行更新子单元的第二输入 端连接,所述莱维飞行更新子单元的输出端通过偏好随机游动子单元而与寻优终止输出子 单元的输入端连接,所述寻优终止输出子单元输出端分别与柯西变异判断子单元的输入端 W及分配单元的输入端连接。
【文档编号】G06F9/50GK105975342SQ201610279700
【公开日】2016年9月28日
【申请日】2016年4月29日
【发明人】刘竹松, 陈洁, 田龙, 李志科
【申请人】广东工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1