CN106227599B - 一种云计算系统中资源调度的方法及系统 - Google Patents
一种云计算系统中资源调度的方法及系统 Download PDFInfo
- Publication number
- CN106227599B CN106227599B CN201610574463.8A CN201610574463A CN106227599B CN 106227599 B CN106227599 B CN 106227599B CN 201610574463 A CN201610574463 A CN 201610574463A CN 106227599 B CN106227599 B CN 106227599B
- Authority
- CN
- China
- Prior art keywords
- frog
- population
- fitness
- sub
- worst
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000035772 mutation Effects 0.000 claims abstract description 13
- 241000269350 Anura Species 0.000 claims description 41
- 230000006870 function Effects 0.000 claims description 17
- 239000011159 matrix material Substances 0.000 claims description 14
- 230000009326 social learning Effects 0.000 claims description 12
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 230000013016 learning Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 230000009977 dual effect Effects 0.000 claims 1
- 239000002245 particle Substances 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 8
- 238000005457 optimization Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000019637 foraging behavior Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 239000011664 nicotinic acid Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000002922 simulated annealing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了云计算系统中资源调度的方法,该方法对每个子种群局部搜索时利用蛙跳更新公式计算更新青蛙的位置,并计算其适应度判断其是否优于最差青蛙的适应度,若优于则用更新青蛙的位置代替最差青蛙的位置,若不优于则用整个种群的最优青蛙的位置代替最差青蛙的位置,并判断更新后得到的更新青蛙的适应度是否优于最差青蛙的适应度,若优于则用更新青蛙的位置代替最差青蛙的位置,若不优于则利用双学习因子公式产生一个新步长,并根据变异概率对新步长进行变异,得到更新青蛙的位置并代替最差青蛙的位置,并计算其适应度;该方法能够同时在任务调度的最优时间跨度和负载均衡方面具有良好表现;本发明还公开了一种云计算系统中资源调度的系统。
Description
技术领域
本发明涉及云计算技术领域,特别涉及一种云计算系统中资源调度的方法及系统。
背景技术
随着信息时代的快速发展,在分布式计算、并行计算和网络计算逐步发展成熟的基础上,云计算应运而生。作为一种新兴的商业计算模型,云计算已经成为了工业界和学术界研究的热点。云计算系统中,可按需进行动态地部署、配置、重新配置和取消服务。然而,由于不断增长的用户量和云计算网络中节点的异构性和复杂性,如何及时、高效地进行任务调度,合理地利用资源,提高资源利用率和任务执行的效率,成为云计算研究的核心问题之一。
近年来,众多学者提出或优化了很多算法应用于任务调度,如蚁群算法、模拟退火算法、粒子群优化算法、遗传算法等。现有的算法虽然可以在某个角度提高任务调度效率,但是也存在其局限性,如一般的任务调度算法很难同时在最优时间跨度和负载均衡方面均表现良好。因此,如何同时在任务调度的最优时间跨度和负载均衡方面表现良好,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种云计算系统中资源调度的方法及系统,能够同时在任务调度的最优时间跨度和负载均衡方面具有良好表现。
为解决上述技术问题,本发明提供一种云计算系统中资源调度的方法,包括:
建立适应度函数及资源调度分配矩阵;
初始化双学习能力混合蛙跳算法的基本参数;
计算各青蛙的适应度,根据所述适应度将青蛙降序排列,并按照分配规则,将青蛙分配到各子种群中;
对每个子种群均进行局部搜索,利用蛙跳更新公式计算更新青蛙的位置,并计算其适应度,判断更新青蛙的适应度是否优于最差青蛙的适应度,若优于最差青蛙的适应度,则用更新青蛙的位置代替最差青蛙的位置,若不优于最差青蛙的适应度,则用整个种群的最优青蛙的位置代替最差青蛙的位置,并判断更新后得到的更新青蛙的适应度是否优于最差青蛙的适应度,若优于最差青蛙的适应度,则用更新青蛙的位置代替最差青蛙的位置,若不优于最差青蛙的适应度,则利用双学习因子公式产生一个新步长,并根据变异概率对新步长进行变异,并根据变异结果得到更新青蛙的位置并代替最差青蛙的位置,并计算其适应度;
将所有青蛙混合排序,并判断是否满足终止条件,若是,则输出最优解;
按照解码规则对所述最优解进行解码,得到云计算系统中资源调度分配结果。
其中,建立适应度函数及资源调度分配矩阵,包括:
建立适应度函数F(X)=ω*Time(X)+(1-ω)*Load(X);
建立资源调度分配矩阵X=[x1,x2,...,xn],xi∈[1,m+1)且xi为实数;
其中,ω∈(0,1]为权值因子,Time(X)为最优跨度时间综合值,Load(X)为负载平衡因子,xi为第i个任务所分配的虚拟机编号。
其中,对每个子种群均进行局部搜索,利用蛙跳更新公式计算更新青蛙的位置,并计算其适应度,包括:
将每个子种群中适应度最小的青蛙作为最优青蛙,适应度最大的青蛙作为最差青蛙;
利用Di=rand()*(Xb-Xw),i=1,2,...,N及-Dmax≤Di≤Dmax,i=1,2,...,N计算每个子种群中更新青蛙的位置;
其中,rand为[0,1]之间的随机数,Xb为子种群中最优青蛙的位置,Xw表示子种群最差青蛙的位置,Di为生成的步长,Dmax为可移动最大步长,为子种群中更新青蛙的位置。
其中,利用双学习因子公式产生一个新步长,并根据变异概率对新步长进行变异,并根据变异结果得到更新青蛙的位置并代替最差青蛙的位置,并计算其适应度,包括:
利用Di=c1rand*(Xb-Xw)+c2rand*(Xg-Xw),i=1,2,...,N计算得到新步长;
根据产生的随机数rand与变异概率CR进行比较的结果公式用于计算每一维度的步长是否需要变异;
若产生的随机数rand大于CR,则根据公式对步长进行变异,并利用计算更新青蛙的位置;若随机数rand不大于CR,则步长不进行变异,利用步长计算得到更新青蛙的位置,并将更新青蛙的位置代替最差青蛙的位置;
其中,Di为生成的步长,rand为[0,1]之间的随机数,Xb为子种群中最优青蛙的位置,c1表示自我学习因子,c2表示社会学习因子,Xg表示整个种群最优青蛙的位置,Xw表示子种群最差青蛙的位置,Did为第i个解第d维生成的步长,MaxVald为第d维取值上界,MinVald表示第d维取值下界,为子种群中更新青蛙的位置。
其中,利用双学习因子公式产生一个新步长,并根据变异概率对新步长进行变异,并根据变异结果得到更新青蛙的位置并代替最差青蛙的位置,并计算其适应度之后,还包括:
判断局部搜索的次数是否达到预定次数值,若否,则重复进行局部搜索操作。
其中,按照解码规则对所述最优解进行解码,得到云计算系统中资源调度分配结果,包括:
利用X'=[|x1|,|x2|,...,|xm|]对所述最优解进行解码,得到云计算系统中资源调度分配结果;其中,xi∈[1,m+1)且xi为实数,|xi|表示对xi向下取整,解码后每一维上的数值代表对应任务所分配的虚拟机编号。
本发明提供一种云计算系统中资源调度的系统,包括:
函数建立模块,用于建立适应度函数及资源调度分配矩阵;
初始化模块,用于初始化双学习能力混合蛙跳算法的基本参数;其中,所述基本参数包括种群规模,子种群数量,所述子种群中任务数量,子种群内迭代次数;
子种群确定模块,用于计算各青蛙的适应度,根据所述适应度将青蛙降序排列,并按照分配规则,将青蛙分配到各子种群中;
局部搜索模块,用于对每个子种群均进行局部搜索,利用蛙跳更新公式计算更新青蛙的位置,并计算其适应度,判断更新青蛙的适应度是否优于最差青蛙的适应度,若优于最差青蛙的适应度,则用更新青蛙的位置代替最差青蛙的位置,若不优于最差青蛙的适应度,则用整个种群的最优青蛙的位置代替最差青蛙的位置,并判断更新后得到的更新青蛙的适应度是否优于最差青蛙的适应度,若优于最差青蛙的适应度,则用更新青蛙的位置代替最差青蛙的位置,若不优于最差青蛙的适应度,则利用双学习因子公式产生一个新步长,并根据变异概率对新步长进行变异,并根据变异结果得到更新青蛙的位置并代替最差青蛙的位置,并计算其适应度;
最优解输出模块,用于将所有青蛙混合排序,并判断是否满足终止条件,若是,则输出最优解;
资源调度分配模块,用于按照解码规则对所述最优解进行解码,得到云计算系统中资源调度分配结果。
其中,所述函数建立模块包括:
第一建立单元,用于建立适应度函数F(X)=ω*Time(X)+(1-ω)*Load(X);
第二建立单元,用于建立资源调度分配矩阵X=[x1,x2,...,xn],xi∈[1,m+1)且xi为实数;
其中,ω∈(0,1]为权值因子,Time(X)为最优跨度时间综合值,Load(X)为负载平衡因子,xi为第i个任务所分配的虚拟机编号。
其中,所述局部搜索模块包括:
更新青蛙计算单元,用于将每个子种群中适应度最小的青蛙作为最优青蛙,适应度最大的青蛙作为最差青蛙;利用Di=rand()*(Xb-Xw),i=1,2,...,N及-Dmax≤Di≤Dmax,i=1,2,...,N计算每个子种群中更新青蛙的位置;
新步长计算单元,用于利用Di=c1rand*(Xb-Xw)+c2rand*(Xg-Xw),i=1,2,...,N计算得到新步长;
变异计算单元,用于根据产生的随机数rand与变异概率CR进行比较的结果公式用于计算每一维度的步长是否需要变异;若产生的随机数rand大于CR,则根据公式对步长进行变异,并利用计算更新青蛙的位置;若随机数rand不大于CR,则步长不进行变异,利用步长计算得到更新青蛙的位置,并将更新青蛙的位置代替最差青蛙的位置;
其中,Di为生成的步长,rand为[0,1]之间的随机数,Xb为子种群中最优青蛙的位置,c1表示自我学习因子,c2表示社会学习因子,Xg表示整个种群最优青蛙的位置,Xw表示子种群最差青蛙的位置,Did为第i个解的第d维生成的步长,MaxVald为第d维取值上界,MinVald表示第d维取值下界,Dmax为可移动的最大步长,为子种群中更新青蛙的位置。
其中,所述资源调度分配模块具体为利用X'=[|x1|,|x2|,...,|xm|]对所述最优解进行解码,得到云计算系统中资源调度分配结果;其中,xi∈[1,m+1)且xi为实数,|xi|表示对xi向下取整,解码后每一维上的数值代表对应任务所分配的虚拟机编号的模块。
本发明所提供的云计算系统中资源调度的方法,该方法包括:建立适应度函数及资源调度分配矩阵;初始化双学习能力混合蛙跳算法的基本参数;计算各青蛙的适应度,根据所述适应度将青蛙降序排列,并按照分配规则,将青蛙分配到各子种群中;对每个子种群均进行局部搜索,利用蛙跳更新公式计算更新青蛙的位置,并计算其适应度,判断更新青蛙的适应度是否优于最差青蛙的适应度,若优于最差青蛙的适应度,则用更新青蛙的位置代替最差青蛙的位置,若不优于最差青蛙的适应度,则用整个种群的最优青蛙的位置代替最差青蛙的位置,并判断更新后得到的更新青蛙的适应度是否优于最差青蛙的适应度,若优于最差青蛙的适应度,则用更新青蛙的位置代替最差青蛙的位置,若不优于最差青蛙的适应度,则利用双学习因子公式产生一个新步长,并根据变异概率对新步长进行变异,并根据变异结果得到更新青蛙的位置并代替最差青蛙的位置,并计算其适应度;将所有青蛙混合排序,并判断是否满足终止条件,若是,则输出最优解;按照解码规则对所述最优解进行解码,得到云计算系统中资源调度分配结果;
该方法结合青蛙自身经验的自我学习能力和群体经验的社会学习能力,引入粒子群算法中的学习因子,并通过对生成的新解进行随机变异,利用算法随机信息的同时引入已有信息,达到生成优质解的目的即改善了算法的寻优能力。能够同时在任务调度的最优时间跨度和负载均衡方面具有良好表现。本发明还提供了云计算系统中资源调度的系统,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的云计算系统中资源调度的方法的流程图;
图2为本发明实施例所提供的云计算系统中资源调度的方法的流程示意图;
图3为本发明实施例所提供的云计算系统中资源调度的系统的结构框图。
具体实施方式
本发明的核心是提供一种云计算系统中资源调度的方法及系统,能够同时在任务调度的最优时间跨度和负载均衡方面具有良好表现。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问。其核心思想是将大量计算资源、储存资源和服务资源等通过网络连接起来形成资源池,根据用户的需求对资源进行统一调度和管理。可按需进行动态地部署、配置、重新配置和取消服务。这里的云计算系统中资源调度即云计算任务调度:任务调度的实质是将n个相互独立的任务合理分配到m个异构的可用资源上,以达到任务调度目标。
请参考图1,图1为本发明实施例所提供的云计算系统中资源调度的方法的流程图;该方法可以包括:
S100、建立适应度函数及资源调度分配矩阵;
其中,云计算系统中资源调度后,各任务完成时间越短越好,即最优跨度时间综合值可以用公式表现;
其中,Time(X)为最优跨度时间综合值。为资源i运行的总时间;m为系统中资源的数量;Time(X)值越小,代表该调度方案所用总的执行时间越短。
又由于 Load(X)=λD(X)VM+(1-λ)D(X)Clet;
其中,E(X)VM为虚拟机运行时间的期望值,D(X)VM为虚拟机运行时间的方差,E(X)Clet为任务运行时间的期望值,为任务j执行所需要的时间,m为系统中资源的数量,n为系统中任务的数量,D(X)Clet为任务运行时间的方差;λ∈(0,1)为比例因子;Load(X)即本文使用的负载平衡因子,Load(X)值越小,代表该调度方案负载越均衡。
为同时实现最优跨度和较优的负载均衡即综合考虑调度方案的最优时间跨度时间和负载均衡,即建立的适应度函数为F(X)=ω*Time(X)+(1-ω)*Load(X);F(X)越小,调度方案X越优:
资源调度方案属于组合优化问题,应用混合蛙跳算法求解调度问题首先需要构造合理的编码方式来表示调度问题的解。在云任务调度中,设有n个相互独立需要在有m个虚拟机上执行,则代表解为n维的一元数组,每个任务对应的虚拟机号即为当前维的值。在对虚拟机号进行编码时,采用从1至m递增的整数编码。由于SFLA与DLSFLA算法迭代过程中使用的为实数编码方式,因此运用整数编码方式建立资源调度分配矩阵X=[x1,x2,...,xn],xi∈[1,m+1)且xi为实数;
其中,ω∈(0,1]为权值因子,Time(X)为最优跨度时间综合值,Load(X)为负载平衡因子,xi为第i个任务所分配的虚拟机编号。
S110、初始化双学习能力混合蛙跳算法的基本参数;
其中,基本参数可以包括种群规模N,子种群数量m,子种群中任务数量n,子种群内迭代次数。
其中,混合蛙跳算法是一种新兴的仿生智能算法,由Eusuff和Lansey在2003年提出,该算法在模因演算法(MA)和粒子群算法(PSO)的基础上建立,结合确定性方法和随机性方法,其基本思想是通过模拟青蛙的觅食行为时,按族群进行模因信息传递的过程。混合蛙跳算法主要包括局部搜索和全局信息交换两个部分。
双学习能力因子是双学习能力因子分为自我学习能力因子和社会学系能力因子。在粒子群中,粒子的自身经验和群体经验对粒子运动具有影响。粒子群中每次迭代的粒子更新公式如下:
其中,表示粒子i的飞行速度,pid表示每个粒子历史最优解位置,pgd表示整个粒子群历史最优解位置,c1表示自我学习因子,c2表示社会学习因子。
由于在云任务调度过程中,最优调度方案的求解过程是一个离散型组合优化问题,基本混合蛙跳算法在子种群的局部搜索步骤中是线性搜索,搜索范围较小且每次搜索的步长都相同;在蛙跳更新公式中,移动步长取[0,1]之间的随机数可能导致移动步长大小随机,影响算法收敛性;种群趋于稳定时,虽然有全局交流,但没有自我学习能力,容易陷入局部最优。这里为了能够同时实现任务调度的最优时间跨度和负载均衡,对混合蛙跳算法进行改进,形成新的DLSFLA(Double Learning Shuffled Frog Leaping Algorithm,双学习能力混合蛙跳算法)。改进的策略是DLSFLA的基本思想是在局部搜索的时候(例如第三次更新时)不完全使用随机方式生成新解,而是结合青蛙自身经验的自我学习能力和群体经验的社会学习能力,引入粒子群算法中的学习因子,并通过对生成的新解进行随机变异,利用算法随机信息的同时引入已有信息,达到生成优质解的目的。如第三次混合蛙跳步长更新过程中,改进的蛙跳步长更新公式中,引入自我学习因子和社会学习因子,结合青蛙自身经验和群体经验进行步长计算。计算后产生[0,1]之间的随机数rand,与变异概率CR进行对比,若rand大于CR,则对该维的步长进行变异,若rand小于或等于CR,则该维的步长保持不变。然后使用步长更新青蛙位置。
即结合青蛙自身经验的自我学习能力和群体经验的社会学习能力,在混合蛙跳局部搜索的(第三次)随机蛙跳中,引入粒子群算法中的学习因子,并通过对生成的新解进行随机变异,利用算法随机信息的同时引入已有信息,达到生成优质解的目的。
S120、计算各青蛙的适应度,根据所述适应度将青蛙降序排列,并按照分配规则,将青蛙分配到各子种群中;
其中,根据各个青蛙的适应度的大小,按照适应度从大到小的顺序进行排列,并根据蛙跳算法中子种群的分配规则,将青蛙分配到各子种群中。每次分配完成后都是得到每个子种群中最优青蛙的位置Xb,子种群最差青蛙的位置Xw;既可以得到适应度最优对应的青蛙及适应度最差对应的青蛙,以及整个种群中适应度最优的青蛙的位置Xg及其适应度。
S130、对每个子种群均进行局部搜索,利用蛙跳更新公式计算更新青蛙的位置,并计算其适应度,判断更新青蛙的适应度是否优于最差青蛙的适应度,若优于最差青蛙的适应度,则用更新青蛙的位置代替最差青蛙的位置,若不优于最差青蛙的适应度,则用整个种群的最优青蛙的位置代替最差青蛙的位置,并判断更新后得到的更新青蛙的适应度是否优于最差青蛙的适应度,若优于最差青蛙的适应度,则用更新青蛙的位置代替最差青蛙的位置,若不优于最差青蛙的适应度,则利用双学习因子公式产生一个新步长,并根据变异概率对新步长进行变异,并根据变异结果得到更新青蛙的位置并代替最差青蛙的位置,并计算其适应度;
其中,这里可以首先设定局部搜索的次数,这样每次局部搜索完成后都需要进行判断局部搜索的次数是否达到预定次数值,若否,则重复进行局部搜索操作;若是,则进入步骤S140。
可选的,对每个子种群均进行局部搜索,利用蛙跳更新公式计算更新青蛙的适应度,包括:
将每个子种群中适应度最小的青蛙作为最优青蛙,适应度最大的青蛙作为最差青蛙;
利用Di=rand()*(Xb-Xw),i=1,2,...,N及-Dmax≤Di≤Dmax,i=1,2,...,N计算每个子种群中更新青蛙的位置;
其中,rand为[0,1]之间的随机数,Xb为子种群中最优青蛙的位置,Xw表示子种群最差青蛙的位置,Di为生成的步长,Dmax为可移动的最大步长,为子种群中更新青蛙的位置。
根据改进策略判断更新青蛙的适应度是否优于最差青蛙的适应度,若优于最差青蛙的适应度,若用整个种群的最优青蛙的位置代替最差青蛙的位置,且判断更新后得到的更新青蛙的适应度仍不优于最差青蛙的适应度;则需要改进计算更新青蛙位置的算法;可选的,利用双学习因子公式产生一个新步长,并根据变异概率对新步长进行变异,并根据变异结果得到更新青蛙的位置并代替最差青蛙的位置,并计算其适应度包括:
利用Di=c1rand*(Xb-Xw)+c2rand*(Xg-Xw),i=1,2,...,N计算得到新步长;
将公式用于对Did的步长进行变异。;
将产生的随机数rand与变异概率进行比较,若产生的随机数rand大于CR,则利用上述公式对第i个解的第d维生成的步长进行变异,再使用公式计算更新青蛙的位置,并将更新青蛙的位置并代替最差青蛙的位置;若计算结果不大于CR,则对该维步长不变异,直接利用新步长计算得到更新青蛙的位置,并将更新青蛙的位置并代替最差青蛙的位置;
其中,Di为生成的步长,rand为[0,1]之间的随机数,Xb为子种群中最优青蛙的位置,c1表示自我学习因子,c2表示社会学习因子,Xg表示整个种群最优青蛙的位置,Xw表示子种群最差青蛙的位置,Did为,MaxVald为第d维取值上界,MinVald表示第d维取值下界,为子种群中更新青蛙的位置。
S140、将所有青蛙混合排序,并判断是否满足终止条件,若是,则输出最优解;
其中,青蛙在不同的子种群间跳跃,更新自己的适应度信息,然后重新汇合构造下一代新种群;检验算法是否满足停止条件,满足则输出最优值和对应的最优解,否则继续下一轮迭代即进入步骤S120和S130。
S150、按照解码规则对所述最优解进行解码,得到云计算系统中资源调度分配结果。
其中,这里的解码规则与资源调度分配矩阵的建立方式有关,存在相互对应的关系,若资源调度分配矩阵X=[x1,x2,...,xn],xi∈[1,m+1)且xi为实数;则利用X'=[|x1|,|x2|,...,|xm|]对所述最优解进行解码,得到云计算系统中资源调度分配结果;其中,xi∈[1,m+1)且xi为实数,|xi|表示对xi向下取整,解码后每一维上的数值代表对应任务所分配的执行资源序列号即虚拟机编号。
上述过程可以参考图2,图2为本发明实施例所提供的云计算系统中资源调度的方法的流程示意图;首先种群规模N,子种群数量m,子种群中任务数量n,子种群内迭代次数,计算每只青蛙适应度,将青蛙降序排列,将N只青蛙按规则分到m个子种群中,局部搜索,利用蛙跳更新公式更新最差解(即最差青蛙的位置),并判断更新后的最差解是否比原来最差解优,若是,用新解代替原有的最差解,若否,用整个种群中最优解代替子种群最优解更新最差解,并判断更新后的最差解是否比原来最差解优,若是,用新解代替原有的最差解,若否,利用双学习因子公式计算一个新解,根据变异概率计算新解进行变异,并用新解代替原有最差解;将所有青蛙混合排序,准备进入下一轮迭代,并判断是否满足终止条件,否则继续进行计算每只青蛙适应度,将青蛙降序排列及之后的过程;是则输出最优解。
基于上述技术方案,本发明实施例提供的云计算系统中资源调度的方法,该方法结合青蛙自身经验的自我学习能力和群体经验的社会学习能力,引入粒子群算法中的学习因子,并通过对生成的新解进行随机变异,利用算法随机信息的同时引入已有信息,达到生成优质解的目的,即改善了算法的寻优能力,能够同时在任务调度的最优时间跨度和负载均衡方面具有良好表现。
下面对本发明实施例提供的云计算系统中资源调度的系统进行介绍,下文描述的云计算系统中资源调度的系统与上文描述的云计算系统中资源调度的方法可相互对应参照。
请参考图3,图3为本发明实施例所提供的云计算系统中资源调度的系统的结构框图;该系统可以包括:
函数建立模块100,用于建立适应度函数及资源调度分配矩阵;
初始化模块200,用于初始化双学习能力混合蛙跳算法的基本参数;其中,所述基本参数包括种群规模,子种群数量,子种群中任务数量,子种群内迭代次数;
子种群确定模块300,用于计算各青蛙的适应度,根据所述适应度将青蛙降序排列,并按照分配规则,将青蛙分配到各子种群中;
局部搜索模块400,用于对每个子种群均进行局部搜索,利用蛙跳更新公式计算更新青蛙的位置,并计算其适应度,判断更新青蛙的适应度是否优于最差青蛙的适应度,若优于最差青蛙的适应度,则用更新青蛙的位置代替最差青蛙的位置,若不优于最差青蛙的适应度,则用整个种群的最优青蛙的位置代替最差青蛙的位置,并判断更新后得到的更新青蛙的适应度是否优于最差青蛙的适应度,若优于最差青蛙的适应度,则用更新青蛙的位置代替最差青蛙的位置,若不优于最差青蛙的适应度,则利用双学习因子公式产生一个新步长,并根据变异概率对新步长进行变异,并根据变异结果得到更新青蛙的位置并代替最差青蛙的位置,并计算其适应度;
最优解输出模块500,用于将所有青蛙混合排序,并判断是否满足终止条件,若是,则输出最优解;
资源调度分配模块600,用于按照解码规则对所述最优解进行解码,得到云计算系统中资源调度分配结果。
可选的,所述函数建立模块100包括:
第一建立单元,用于建立适应度函数F(X)=ω*Time(X)+(1-ω)*Load(X);
第二建立单元,用于建立资源调度分配矩阵X=[x1,x2,...,xn],xi∈[1,m+1)且xi为实数;
其中,ω∈(0,1]为权值因子,Time(X)为最优跨度时间综合值,Load(X)为负载平衡因子,xi为第i个任务所分配的虚拟机编号。
可选的,所述局部搜索模块400包括:
更新青蛙计算单元,用于将每个子种群中适应度最小的青蛙作为最优青蛙,适应度最大的青蛙作为最差青蛙;利用Di=rand()*(Xb-Xw),i=1,2,...,N及-Dmax≤Di≤Dmax,i=1,2,...,N计算每个子种群中更新青蛙的位置;
新步长计算单元,用于利用Di=c1rand*(Xb-Xw)+c2rand*(Xg-Xw),i=1,2,...,N计算得到新步长;
变异计算单元,用于根据产生的随机数rand与变异概率CR进行比较的结果公式用于计算每一维度的步长是否需要变异;若产生的随机数rand大于CR,则根据公式对步长进行变异,并利用计算更新青蛙的位置;若随机数rand不大于CR,则步长不进行变异,利用步长计算得到更新青蛙的位置,并将更新青蛙的位置代替最差青蛙的位置;
其中,Di为生成的步长,rand为[0,1]之间的随机数,Xb为子种群中最优青蛙的位置,c1表示自我学习因子,c2表示社会学习因子,Xg表示整个种群最优青蛙的位置,Xw表示子种群最差青蛙的位置,Did为第i个解的第d维生成的步长,MaxVald为第d维取值上界,MinVald表示第d维取值下界,Dmax为可移动的最大步长,为子种群中更新青蛙的位置。
可选的,所述资源调度分配模块600具体为利用X'=[|x1|,|x2|,...,|xm|]对所述最优解进行解码,得到云计算系统中资源调度分配结果;其中,xi∈[1,m+1)且xi为实数,|xi|表示对xi向下取整,解码后每一维上的数值代表对应任务所分配的虚拟机编号的模块。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的云计算系统中资源调度的方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (5)
1.一种云计算系统中资源调度的方法,其特征在于,包括:
建立适应度函数F(X)=ω*Time(X)+(1-ω)*Load(X),建立资源调度分配矩阵X=[x1,x2,...,xn],xi∈[1,m+1)且xi为实数;其中,ω∈(0,1]为权值因子,Time(X)为最优跨度时间综合值,Load(X)为负载平衡因子,xi为第i个任务所分配的虚拟机编号,n为任务数量,m为资源数量;
初始化双学习能力混合蛙跳算法的基本参数;
计算各青蛙的适应度,根据所述适应度将青蛙降序排列,并按照分配规则,将青蛙分配到各子种群中;
将每个子种群中适应度最小的青蛙作为最优青蛙,适应度最大的青蛙作为最差青蛙,利用Di=rand()*(Xb-Xw),i=1,2,...,N及-Dmax≤Di≤Dmax,i=1,2,...,N计算每个子种群中更新青蛙的位置,其中,rand为[0,1]之间的随机数,Xb为子种群中最优青蛙的位置,Xw表示子种群最差青蛙的位置,Di为生成的步长,Dmax为可移动最大步长,为子种群中更新青蛙的位置,判断更新青蛙的适应度是否优于最差青蛙的适应度,若优于最差青蛙的适应度,则用更新青蛙的位置代替最差青蛙的位置,若不优于最差青蛙的适应度,则用整个种群的最优青蛙的位置代替最差青蛙的位置,并判断更新后得到的更新青蛙的适应度是否优于最差青蛙的适应度,若优于最差青蛙的适应度,则用更新青蛙的位置代替最差青蛙的位置,若不优于最差青蛙的适应度,则利用Di=c1rand*(Xb-Xw)+c2rand*(Xg-Xw),i=1,2,...,N计算得到新步长,结合产生的随机数rand与变异概率CR进行比较的结果,根据公式对所述新步长进行变异,所述变异过程具体为:若产生的随机数rand大于CR,则根据公式Did=rand*(MaxVald-MinVald)对所述新步长进行变异,并利用计算更新青蛙的位置;若产生的随机数rand不大于CR,则不对所述新步长进行变异,利用所述新步长计算得到更新青蛙的位置,并将更新青蛙的位置代替最差青蛙的位置,其中,Di为生成的步长,rand为[0,1]之间的随机数,Xb为子种群中最优青蛙的位置,c1表示自我学习因子,c2表示社会学习因子,Xg表示整个种群最优青蛙的位置,Xw表示子种群最差青蛙的位置,Did为第i个解第d维生成的步长,MaxVald为第d维取值上界,MinVald表示第d维取值下界,为子种群中更新青蛙的位置;
将所有青蛙混合排序,并判断是否满足终止条件,若是,则输出最优解;
按照解码规则对所述最优解进行解码,得到云计算系统中资源调度分配结果。
2.根据权利要求1所述的云计算系统中资源调度的方法,其特征在于,利用双学习因子公式产生一个新步长,并根据变异概率对新步长进行变异,并根据变异结果得到更新青蛙的位置并代替最差青蛙的位置,并计算其适应度之后,还包括:
判断局部搜索的次数是否达到预定次数值,若否,则重复进行局部搜索操作。
3.根据权利要求2所述的云计算系统中资源调度的方法,其特征在于,按照解码规则对所述最优解进行解码,得到云计算系统中资源调度分配结果,包括:
利用X'=[|x1|,|x2|,...,|xm|]对所述最优解进行解码,得到云计算系统中资源调度分配结果;其中,xi∈[1,m+1)且xi为实数,|xi|表示对xi向下取整,解码后每一维上的数值代表对应任务所分配的虚拟机编号。
4.一种云计算系统中资源调度的系统,其特征在于,包括:
函数建立模块,用于建立适应度函数F(X)=ω*Time(X)+(1-ω)*Load(X),建立资源调度分配矩阵X=[x1,x2,...,xn],xi∈[1,m+1)且xi为实数;其中,ω∈(0,1]为权值因子,Time(X)为最优跨度时间综合值,Load(X)为负载平衡因子,xi为第i个任务所分配的虚拟机编号,n为任务数量,m为资源数量;
初始化模块,用于初始化双学习能力混合蛙跳算法的基本参数;其中,所述基本参数包括种群规模,子种群数量,每个子种群数量,子种群内迭代次数;
子种群确定模块,用于计算各青蛙的适应度,根据所述适应度将青蛙降序排列,并按照分配规则,将青蛙分配到各子种群中;
局部搜索模块,用于将每个子种群中适应度最小的青蛙作为最优青蛙,适应度最大的青蛙作为最差青蛙,利用Di=rand()*(Xb-Xw),i=1,2,...,N及-Dmax≤Di≤Dmax,i=1,2,...,N计算每个子种群中更新青蛙的位置,其中,rand为[0,1]之间的随机数,Xb为子种群中最优青蛙的位置,Xw表示子种群最差青蛙的位置,Di为生成的步长,Dmax为可移动最大步长,为子种群中更新青蛙的位置,判断更新青蛙的适应度是否优于最差青蛙的适应度,若优于最差青蛙的适应度,则用更新青蛙的位置代替最差青蛙的位置,若不优于最差青蛙的适应度,则用整个种群的最优青蛙的位置代替最差青蛙的位置,并判断更新后得到的更新青蛙的适应度是否优于最差青蛙的适应度,若优于最差青蛙的适应度,则用更新青蛙的位置代替最差青蛙的位置,若不优于最差青蛙的适应度,则利用Di=c1rand*(Xb-Xw)+c2rand*(Xg-Xw),i=1,2,...,N计算得到新步长,结合产生的随机数rand与变异概率CR进行比较的结果,根据公式对所述新步长进行变异,所述变异过程具体为:若产生的随机数rand大于CR,则根据公式Did=rand*(MaxVald-MinVald)对所述新步长进行变异,并利用计算更新青蛙的位置;若产生的随机数rand不大于CR,则不对所述新步长进行变异,利用所述新步长计算得到更新青蛙的位置,并将更新青蛙的位置代替最差青蛙的位置,其中,Di为生成的步长,rand为[0,1]之间的随机数,Xb为子种群中最优青蛙的位置,c1表示自我学习因子,c2表示社会学习因子,Xg表示整个种群最优青蛙的位置,Xw表示子种群最差青蛙的位置,Did为第i个解第d维生成的步长,MaxVald为第d维取值上界,MinVald表示第d维取值下界,为子种群中更新青蛙的位置;
最优解输出模块,用于将所有青蛙混合排序,并判断是否满足终止条件,若是,则输出最优解;
资源调度分配模块,用于按照解码规则对所述最优解进行解码,得到云计算系统中资源调度分配结果。
5.根据权利要求4所述的云计算系统中资源调度的系统,其特征在于,所述资源调度分配模块具体为利用X'=[|x1|,|x2|,...,|xm|]对所述最优解进行解码,得到云计算系统中资源调度分配结果;其中,xi∈[1,m+1)且xi为实数,|xi|表示对xi向下取整,解码后每一维上的数值代表对应任务所分配的虚拟机编号的模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610574463.8A CN106227599B (zh) | 2016-07-20 | 2016-07-20 | 一种云计算系统中资源调度的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610574463.8A CN106227599B (zh) | 2016-07-20 | 2016-07-20 | 一种云计算系统中资源调度的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106227599A CN106227599A (zh) | 2016-12-14 |
CN106227599B true CN106227599B (zh) | 2019-08-06 |
Family
ID=57531955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610574463.8A Expired - Fee Related CN106227599B (zh) | 2016-07-20 | 2016-07-20 | 一种云计算系统中资源调度的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106227599B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107135250A (zh) * | 2017-04-13 | 2017-09-05 | 华北水利水电大学 | 一种面向云计算的负载均衡系统及机制 |
CN106980308B (zh) * | 2017-05-09 | 2019-10-01 | 青岛大学 | 再制造系统的拆解、预处理和再装配的一体化调度方法 |
CN107229512B (zh) * | 2017-05-25 | 2020-06-30 | 河南理工大学 | 一种基于改进社会学习算法的云任务调度方法 |
CN107528799A (zh) * | 2017-08-23 | 2017-12-29 | 湖北工业大学 | 一种云计算资源分配方法及系统 |
CN108280393B (zh) * | 2017-12-11 | 2022-05-31 | 南京工业大学 | 一种智能天花板的人机交互系统及其工作方法 |
CN108984298A (zh) * | 2018-06-29 | 2018-12-11 | 广东工业大学 | 一种云计算平台的资源调度方法和系统 |
CN109258575B (zh) * | 2018-12-10 | 2021-07-06 | 广东工业大学 | 一种蛙类动物胚胎的孵育方法 |
CN110162390B (zh) * | 2019-05-15 | 2021-03-02 | 清华大学 | 一种雾计算系统的任务分配方法及系统 |
CN111506394B (zh) * | 2020-04-15 | 2023-05-05 | 广东工业大学 | 一种Docker Swarm容器调度方法及调度系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104867185A (zh) * | 2015-06-16 | 2015-08-26 | 桂林电子科技大学 | 基于蛙跳算法的点射影深度估计方法 |
CN105528754A (zh) * | 2015-12-28 | 2016-04-27 | 湖南师范大学 | 一种基于双神经网络行为识别模型的老年人信息服务系统 |
-
2016
- 2016-07-20 CN CN201610574463.8A patent/CN106227599B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104867185A (zh) * | 2015-06-16 | 2015-08-26 | 桂林电子科技大学 | 基于蛙跳算法的点射影深度估计方法 |
CN105528754A (zh) * | 2015-12-28 | 2016-04-27 | 湖南师范大学 | 一种基于双神经网络行为识别模型的老年人信息服务系统 |
Non-Patent Citations (3)
Title |
---|
基于分布估计蛙跳算法的云资源调度方法;张恒巍;《计算机应用研究》;20141130;第31卷(第11期);第3225-3228,3233页 |
基于改进布谷鸟搜索算法的云计算任务调度;刘竹松;《广东工业大学学报》;20160531;第33卷(第3期);第32-36页 |
基于蛙跳思想的量子编码遗传算法;许波;《中国工程科学》;20140329;第16卷(第3期);第108-112页 |
Also Published As
Publication number | Publication date |
---|---|
CN106227599A (zh) | 2016-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106227599B (zh) | 一种云计算系统中资源调度的方法及系统 | |
CN113411369B (zh) | 一种云服务资源协同优化调度方法、系统、介质及设备 | |
CN112286677B (zh) | 一种面向资源受限边缘云的物联网应用优化部署方法 | |
CN110489229B (zh) | 一种多目标任务调度方法及系统 | |
CN106506657A (zh) | 一种基于多目标的云计算虚拟机分配调整方法 | |
CN108776612A (zh) | 一种云计算任务分配方法、装置、设备及存储介质 | |
CN105975342A (zh) | 基于改进布谷鸟搜索算法的云计算任务调度方法及系统 | |
CN104899100B (zh) | 一种用于云系统的资源调度方法 | |
CN113742089B (zh) | 异构资源中神经网络计算任务的分配方法、装置和设备 | |
Xiao et al. | A cooperative coevolution hyper-heuristic framework for workflow scheduling problem | |
CN109447264B (zh) | 云计算环境下基于vham-r模型的虚拟机放置遗传优化方法 | |
CN108320059B (zh) | 一种工作流调度进化寻优方法及终端设备 | |
CN105550033A (zh) | 私有云环境下基于遗传禁忌混合算法的资源调度策略方法 | |
CN104506576B (zh) | 一种无线传感器网络及其节点任务迁移方法 | |
CN112187535A (zh) | 雾计算环境下服务器部署方法及装置 | |
CN114741955A (zh) | 一种基于安全云的多目标优化任务调度方法 | |
CN115421885A (zh) | 一种分布式多目标云任务的调度方法、装置及云服务系统 | |
CN106802822A (zh) | 一种基于飞蛾算法的云数据中心认知资源调度方法 | |
CN104540171B (zh) | 一种无线传感器网络中的节点任务分配方法 | |
CN111885551B (zh) | 基于边云协同模式的多移动社交网络中高影响力用户的选择和分配机制 | |
Chen et al. | Data-driven task offloading method for resource-constrained terminals via unified resource model | |
CN117436627A (zh) | 任务分配方法、装置、终端设备及介质 | |
CN110392377A (zh) | 一种5g超密集组网资源分配方法及装置 | |
CN112446484A (zh) | 一种多任务训练集群智能网络系统及集群网络优化方法 | |
CN116149855A (zh) | 一种微服务架构下中性能资源成本优化方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190806 |