CN110851272B - 基于吞噬的粒子群遗传混合算法的云任务调度方法 - Google Patents
基于吞噬的粒子群遗传混合算法的云任务调度方法 Download PDFInfo
- Publication number
- CN110851272B CN110851272B CN201911047136.7A CN201911047136A CN110851272B CN 110851272 B CN110851272 B CN 110851272B CN 201911047136 A CN201911047136 A CN 201911047136A CN 110851272 B CN110851272 B CN 110851272B
- Authority
- CN
- China
- Prior art keywords
- particle
- sub
- population
- swarm
- particle swarm
- 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.)
- Active
Links
Images
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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
-
- 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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Abstract
本发明公开了基于吞噬的粒子群遗传混合算法的云任务调度方法,针对云环境下的任务调度问题,改变标准粒子群算法中位置与速度的更新方式,利用适应度函数与负载均衡标准差对粒子群每一代个体分别进行初次划分和二次划分,并对最终划分出来的不同粒子子种群分别进行吞噬变异与交叉变异操作,得出云任务的调度方案。通过仿真实验,将本发明中提出的云任务调度方法与其他几种现有的云任务调度方法进行比较,结果表明本发明中的方法明显改善了云任务的总体完成时间,具有更高的收敛精度,证明了本发明中基于吞噬的粒子群遗传混合算法的云任务调度方法的有效性。
Description
技术领域
本发明涉及云技术领域,尤其涉及基于基于吞噬的粒子群遗传混合算法的云任务调度方法。
背景技术
云计算被定义为一种信息技术源和交付模型,用于实现对可配置计算资源(例如:网络、服务器、存储、应用程序和服务)共享池方便、按需的网络访问,可以通过最小化的管理工作或者服务提供商的交互被快速的提供和发布。云计算的交付模型分为三大类,即软件即服务(SaaS)、平台即服务(PaaS)和基础设施即服务(IaaS)。
云计算作为一种新兴技术因其具备极大的商用价值而被公司和企业广泛的应用,合理地利用和分配云环境提供的各种资源,有效的调度用户提交的海量任务以及保证云系统的负载均衡,对于增长公司与企业的核心竞争力,提高其经济效益具有极其重要的现实意义。随着云计算的广泛应用,云用户数量以及云任务量的增长越来越快,使得云环境面临着严峻的挑战。如何合理地利用和分配云环境提供的各种资源、如何有效的调度用户提交的海量任务以及保证云系统的负载均衡已成为云计算研究领域的热点问题。即使在一些简单的情况下,实现云任务的最优调度分配也是一个NP完全问题。这是因为在这种类型中,我们不能在多项式时间内得到解。在云计算环境中,大量的用户是同时需要资源的,所以调度方法应该尽快确定。针对于云环境下的任务调度问题,国内外研究者提出了许多非启发式和启发式算法。例如,Max-Min算法、Min-Min算法是一类常见的非启发式算法,粒子群算法、遗传算法是一类常见的启发式算法。随着云计算环境下的任务调度算法逐步成熟,尤其是启发式算法,逐步被广泛应用。继而出现了各种基于改进优化启发式智能调度算法,例如,文献《Cloud task scheduling algorithm based on improved genetic algorithm》中提出的基于遗传算法的改进调度算法(IGA),在遗传算法(GA)的基础上,引入“三段式选择法”以及交叉区域相似度降低了遗传算法陷入局部最优解的可能性;文献《Research on cloudcomputing task scheduling algorithm based on particle swarm optimization》提出的基于粒子群的改进调度算法(IPSO),在标准的粒子群算法中引入了自适应惯性权重与随机因子改善了粒子群优化算法易陷入局部最优解且搜索能力差的问题;文献《A slaveants based ant colony optimization algorithm for task scheduling in cloudcomputing environments》提出的基于蚁群的改进调度算法(SACO),它通过优化的参数映射,以高效的方式将云用户的任务调度到云计算环境中的虚拟机(VM)以及通过避免由蚂蚁错误累积信息素的长路径来解决奴隶蚂蚁的全局优化问题;文献《Optimization of cloudtask scheduling based on discrete artificial bee colony algorithm》提出的基于人工蜂群的改进调度算法(MDABC),该算法改进了邻域解的搜索机制、加入局部搜索算子,以此来提高云计算处理任务效率和均衡度;
根据“没有免费午餐”原理表明没有任何一个算法能完全满足所有的应用场景,只存在“某个条件限制下某个算法的效果是最好的”。因此在解决任务调度问题时,仅仅使用某一个单一的算法往往无法对问题得到较好的解决,因而需要尝试对不同的算法进行融合。
发明内容
针对上述存在的问题,本发明旨在提供一种具有更加优秀的寻优结果和更高寻优精度的基于吞噬的粒子群遗传混合算法的云任务调度方法,改变标准粒子群算法中位置与速度的更新方式,利用适应度函数与负载均衡标准差对粒子群每一代个体分别进行初次划分与二次划分,并引入吞噬机制及遗传算法,对最终划分出的粒子子种群分别进行吞噬变异与交叉变异操作。
为了实现上述目的,本发明所采用的技术方案如下:
基于吞噬的粒子群遗传混合算法的云任务调度方法,其特征在于,包括以下步骤:
S1、编码:采用实数直接编码方式,粒子群中的每一个粒子表示一种调度方案,粒子的维度等于任务的数量;
S2、适应度计算:利用适应度函数计算每个粒子个体的适应度值,并根据粒子个体的适应度值计算粒子群的平均适应度值;
S3、建立粒子群算法的反馈机制:基于粒子的自身认知和社会认知建立粒子群算法的反馈机制;
S4、粒子子种群划分:对每一代粒子群利用适应度函数以及负载均衡标准差分别对其进行初次划分和二次划分,最终形成三个粒子子种群,分别为吞噬粒子子种群,普通粒子子种群和病原体粒子子种群,且划分后形成的这三个粒子子种群个体数量之和等于划分前粒子群个体数量;
S5、吞噬操作:对经过划分后形成的吞噬粒子子种群和病原体粒子子种群进行吞噬操作,得到新的粒子个体,放入下一代粒子群中;
S6、交叉操作:对经过划分后形成的普通粒子子种群进行遗传算法中的交叉操作,得到新的粒子个体,放入下一代粒子群中;
S7、合并粒子子种群:对经过吞噬操作与交叉操作的粒子个体进行合并操作;
S8、变异操作:对经过吞噬操作与交叉操作后再次合并的粒子群进行变异操作,更新粒子群个体最优解和全局最优解,检查是否达到最大迭代次数,如果达到最大迭代次数,那么此时的全局最优解即为最终的云任务调度方案,反之循环执行上述步骤。
进一步的,步骤S2中所述适应度函数为fitness=1/max(timei)i∈C0,1,2,3…m-1),式中,timei表示虚拟机i上所有云任务完成所用的时间,m为虚拟机的数量。
进一步的,步骤S3中所述粒子群算法的反馈机制的具体步骤为:当粒子维数及云任务的数量为N时,
S33:随机产生一个正整数g,g的取值范围为[0,N-1],将其作为每次迭代过程中粒子L获取粒子群当前搜索到的最优位置gbest信息的位数;
S34:在g的范围内,随机产生一个正整数z,z的取值范围为[0,N-1],将其作为每次迭代过程中粒子L获取粒子群当前搜索到的最优位置gbest的具体编码序列下标。
进一步的,其特征在于,步骤S4中所述的负载均衡标准差的计算公式为式中,BL为负载均衡标准差,F(i)为第i台虚拟机完成其上所分配的任务所用的时间,m为虚拟机的数量,VLi j表示第i台虚拟机完成其上分配的第j个任务所用的时间,n表示第i台虚拟机被分配到的任务总量,AVL为所有虚拟机完成其上分配任务的时间之和的平均值也就是虚拟机平均负载量。
进一步的,步骤S4中对粒子群进行划分的具体步骤为:
S41:根据步骤S2中计算出来的每个粒子个体的适应度值和粒子群的平均适应度,将粒子适应度值大于平均适应度的粒子个体划分到初始吞噬粒子子种群中,将粒子适应度值小于平均适应度的粒子个体划分到初始病原体粒子子种群中;
S42:利用负载均衡标准差的计算公式计算初次划分后的两个子种群中粒子的负载均衡标准差,并分别计算两个粒子子种群的平均负载均衡标准差;
S43:将两个子种群中的粒子个体的负载均衡标准差分别与其对应的子种群的平均负载均衡标准差相比较;
S44:在初始吞噬粒子子种群中,将小于自己子种群平均负载均衡差的个体划分到普通粒子群中;
S45:在初始病原体粒子子种群中,将大于自己子种群平均负载均衡差的个体划分到普通粒子群中;
S46:最终形成三个粒子子种群,分别为吞噬粒子子种群,普通粒子子种群,病原体粒子子种群。
进一步的,步骤S5中所述的吞噬操作的具体步骤为:
S51:从吞噬粒子子种群与病原体粒子子种群中分别取出一个粒子个体,对粒子个体的编码序列进行分段;
S52:以其中一个粒子个体为基础,比较另一个粒子对应位置的编码序列片段,用适应度大的优秀的粒子序列片段去吞噬适应度小的不良的粒子序列片段,最后得到一个新的粒子个体,放入下一代粒子群中。
进一步的,步骤S6中所述的交叉操作使用双点交叉法,左右交叉点随机选取。
进一步的,步骤S7中所述的合并粒子子种群的操作具体步骤为:
S71:令粒子群种群规模为num,步骤S4中划分后吞噬粒子子种群规模为phnum,普通粒子子种群规模为cnum,病原体粒子子种群规模为panum,则这四者的关系为num=phnum+cnum+panum;
S72:若phnum≥panum,则下一代粒子群由吞噬后形成的panum个新的粒子个体,phnum-panum个吞噬粒子子种群中未参与吞噬的个体,经过交叉操作后形成的新的粒子个体以及种群数量不足num随机产生的粒子个体组成;
S73:若phnum<panum,则下一代粒子群由吞噬后形成的phnum个粒子个体,panum-phnum个病原体粒子子种群中未参与吞噬的个体,经过交叉操作后形成的粒子个体以及种群数量不足num随机产生粒子个体组成。
本发明的有益效果是:
本发明提出一种基于吞噬的粒子群遗传混合算法(PSO_PGA),利用适应度函数与负载均衡标准差对每一代粒子群进行初次划分与二次划分,并引入吞噬机制与遗传算法的交叉变异分别对不同的粒子子种群进行不同的操作,对粒子的位置进行改变,保证粒子群的多样性,扩大了算法对解空间的搜索范围,降低了算法陷入局部最优解的可能性,明显改善了云任务的总体完成时间,具有更高的收敛精度。
附图说明
图1为本发明中标准遗传算法流程图;
图2为本发明实施例一中六种算法云任务调度方法任务完成时间对比直方图;
图3为本发明实施例二中四种算法云任务调度方法任务收敛精度对比曲线图;
图4为本发明实施例三中五种算法云任务调度方法任务收敛精度对比曲线图;
具体实施方式
为了使本领域的普通技术人员能更好的理解本发明的技术方案,下面结合附图和实施例对本发明的技术方案做进一步的描述。
云计算任务的调度是指将任务映射或分配给特定的虚拟机,其调度的目的是为云用户提交上来的云任务合理地分配所需资源从而提高资源利用率。其调度结果一般体现为任务和虚拟机的映射关联关系,即判定哪个任务在哪个虚拟机节点上运行。由于任务和虚拟机的多样性,因此需要弄清楚如何将云任务分配给虚拟机,以获得最短的执行时间。也就是说,对于给定的云任务,我们应该找到适当的虚拟机,以确保任务执行时间(不包括数据传输时间)得到最小值。
为了方便仿真研究,作如下假设:
(1)忽略带宽,数据传输,虚拟机之间通信时间等因素的影响,一个任务的执行时间等于该任务的长度除以该任务所在虚拟机的执行速度;
(2)将任务抽象为机器指令数,单位为MI(百万指令)且长度在一定范围内随机选取;
(3)所有云计算资源被映射为虚拟机,虚拟机性能单位为MIPS(每秒百万条指令)且虚拟机性能在一定范围内选取;
(4)每个任务相互独立,当有多个任务被分配到同一台虚拟机时,按先进先出的原则执行任务;
(5)提交的任务数大于等于虚拟机数;
因此,云任务调度问题可以描述为:如何将N个长度不同的云任务分配给M个性能不同的虚拟机,以使得这N个云任务总的完成时间最短。
1995年Kennedy等人提出粒子群算法(PSO),它源于对鸟群和鱼群觅食过程中的迁徙和聚集的模拟。在粒子群算法中,种群被称为群体,个体被称为粒子。粒子群算法中的粒子就像鸟或鱼一样通过搜索空间来寻找食物,每个粒子都有一个速度和位置的属性,在运动中,每个粒子根据其当前位置、速度、pbest和gbest调整其飞行的方向和速度来逐渐接近最优解,就如同鸟群或鱼群通过群体中个体之间的协作和信息共享来寻找到食物一样。每个粒子的性能由适应度函数来衡量。对应于不同的实际问题有不同的适应度函数。每个粒子都是所研究问题的候选解,有N个由特殊问题决定的维度。粒子的位置和速度是随机初始化的。每一代粒子群中粒子的速度和位置的更新方式如公式和所示。
式中,表示第k次迭代时粒子L的速度,表示第k次迭代时粒子L的位置,表示第k+1次迭代时粒子L的速度,表示第k+1次迭代时粒子L的位置,w表示惯性权重,c1、c2表示加速因子,r1、r2表示[0,1]之间的随机数,表示粒子L当前寻找到的最优位置,gbest表示粒子群搜索到的最优位置。
1975年Holland教授在他的著作《自然界和人工系统的适应性》首次提出遗传算法,该算法基于自然遗传学的机理,即遗传、选择、交叉和突变等驱动生物进化的方法。在进行搜索之前,先对问题的潜在解进行编码,编码是把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法。编码将解空间映射为染色体编码空间,不同的染色体个体构成一个种群。算法从一个由个体组成的初始随机种群开始,每个个体代表一个调度解决方案。在每一代种群中,以某种适应度函数计算种群中各个体的适应度,该适应度代表个体的竞争能力。通过选择,交叉,变异等遗传操作使种群进化,形成新一代种群,进化的新一代种群再次计算种群个体的适应度,判断是否满足终止条件,如果满足,则输出最新一代种群中适应度最大的个体作为最优解。否则,继续通过选择,交叉,变异等遗传操作使种群进化。标准遗传算法流程图如附图1所示。
在粒子群算法中粒子的速度与位置的更新根据在每次迭代过程中个体粒子所经过的最优位置与全局粒子的最优位置。并且粒子个体所经过的最优位置对应与粒子个体的自身认知,是粒子自身的飞行经验,全局粒子的最优位置对应于粒子对群体的认知即社会认知,是粒子同伴的飞行经验。对于每次迭代,粒子群算法会将这两种经验考虑进去,形成一种反馈。针对于云计算下的任务调度问题,如果使用标准的粒子群算法,由于无法有效的对粒子的速度进行控制,容易使其陷入局部最优解,无法有效的对潜在解空间进行搜索,因而本发明引入吞噬机制及遗传算法的交叉变异操作,提高粒子群算法对解空间的搜索能力,避免使其过早的陷入局部最优解。
基于吞噬的粒子群遗传混合算法的云任务调度方法,包括以下步骤:
1、粒子编码:采用实数直接编码方式,粒子群中的每一个粒子表示一种调度方案,粒子的维度等于任务的数量;
具体的,假设任务数为N,虚拟机资源数为M,粒子个体每一维度的编号表示任务的编号,取值范围为0~N-1,各维度上的正整数值代表虚拟机资源的编号,取值范围为0~M-1,例如:N=9,M=4,粒子编码序列为(2,0,0,3,1,2,1,2,3),表示第4个,第9个任务被分配到了第4台虚拟机上,第1个,第6个,第8个任务被分配到第3台虚拟机上,第5个,第7个任务被分配到第2台虚拟机上,第2个,第3个任务被分配到第1台虚拟机上。
2、适应度计算:利用适应度函数计算每个粒子个体的适应度值,并根据粒子个体的适应度值计算粒子群的平均适应度值;
具体的,本发明中以云任务总完成时间最短为目标,因此,将云任务总完成的时间作为适应度函数,云任务完成的时间越小,表示该个体越优秀;所以设定适应度函数的计算公式为fitness=1/max(timei),i∈(0,1,2,3…m-1),式中,timei表示虚拟机i上所有云任务完成所用的时间,m为虚拟机的数量。当代种群个体的适应度取决于花费时间最多完成其上所有云任务的虚拟机,且个体适应度值越大云任务总的完成时间越小。
3、建立粒子群算法的反馈机制:基于粒子的自身认知和社会认知建立粒子群算法的反馈机制;
具体的,为了将算法更好的应用于云计算下的任务调度问题,在本发明所提出的基于吞噬的粒子群遗传混合算法中直接摒弃速度对于粒子位置的影响,避免因惯性权重、加速因子等参数无法确定最优值而造成算法性能的降低,但是保留标准粒子群算法中的反馈机制,将粒子的自身认知与社会认知都考虑进去。
当粒子的维数即云任务的数量为N时,其执行过具体操作步骤为:
S33:随机产生一个正整数g,g的取值范围为[0,N-1],将其作为每次迭代过程中粒子L获取粒子群当前搜索到的最优位置gbest信息的位数;
S34:在g的范围内,随机产生一个正整数z,z的取值范围为[0,N-1],将其作为每次迭代过程中粒子L获取粒子群当前搜索到的最优位置gbest的具体编码序列下标。
4、粒子子种群划分:对每一代粒子群利用适应度函数以及负载均衡标准差分别对其进行初次划分和二次划分,最终形成三个粒子子种群,分别为吞噬粒子子种群,普通粒子子种群和病原体粒子子种群;
具体的,负载均衡标准差的计算公式为 式中,BL为负载均衡标准差,F(i)为第i台虚拟机完成其上所分配的任务所用的时间,m为虚拟机的数量,VLi j表示虚拟机i完成其上分配的第j个任务所用的时间,n表示虚拟机i被分配到的任务总量,AVL为所有虚拟机完成其上分配任务的时间之和的平均值也就是虚拟机平均负载量。
进一步的,粒子子种群划分的具体步骤为:
S41:根据步骤S2中计算出来的每个粒子个体的适应度值和粒子群的平均适应度,将粒子适应度值大于平均适应度的粒子个体划分到初始吞噬粒子子种群中,将粒子适应度值小于平均适应度的粒子个体划分到初始病原体粒子子种群中;
S42:利用负载均衡标准差的计算公式计算初次划分后的两个子种群中粒子的负载均衡标准差,并分别计算两个粒子子种群的平均负载均衡标准差;
S43:将两个子种群中的粒子个体的负载均衡标准差分别与其对应的子种群的平均负载均衡标准差相比较;
S44:在初始吞噬粒子子种群中,将小于自己子种群平均负载均衡差的个体划分到普通粒子群中;
S45:在初始病原体粒子子种群中,将大于自己子种群平均负载均衡差的个体划分到普通粒子群中;
S46:最终形成三个粒子子种群,分别为吞噬粒子子种群,普通粒子子种群,病原体粒子子种群。
5、吞噬操作:对经过划分后形成的吞噬粒子子种群和病原体粒子子种群进行吞噬操作;
具体的,从吞噬粒子子种群与病原体粒子子种群中分别取出一个粒子个体,对粒子个体的编码序列进行分段;
以其中一个粒子个体为基础,比较另一个粒子对应位置的编码序列片段,用适应度大的优秀的粒子序列片段去吞噬适应度小的不良的粒子序列片段,最后得到一个新的粒子个体,该新的粒子个体可以看作是吞噬粒子个体中优秀编码序列片段与病原体粒子个体中优秀编码序列片段的集合体,被放入到下一代粒子群中。
6、交叉操作:对经过划分后形成的普通粒子子种群进行遗传算法中的交叉操作;交叉操作使用双点交叉法,左右交叉点随机选取;
具体的,从普通粒子子种群中选取两个个体作为交叉操作的父代个体,在个体的编码序列中随机或按照某种规则选取二个交叉位置,利用这两个交叉位置形成交叉域,父代个体互换交叉域中的编码序列生成新的子代粒子个体。
7、合并粒子子种群:对经过吞噬操作与交叉操作的粒子个体进行合并操作;
具体的,令粒子群种群规模为num,步骤S4中划分后吞噬粒子子种群规模为phnum,普通粒子子种群规模为cnum,病原体粒子子种群规模为panum,则这四者的关系为num=phnum+cnum+panum;
若phnum≥panum,则新的粒子群由吞噬后形成的panum个粒子个体,phnum-panum个吞噬粒子子种群中未参与吞噬的个体,经过交叉操作后形成的粒子个体以及种群数量不足num随机产生的粒子个体组成;
若phnum<panum,,则新的粒子群由吞噬后形成的phnum个粒子个体,panum-phnum个病原体粒子子种群中未参与吞噬的个体,经过交叉操作后形成的粒子个体以及种群数量不足num随机产生粒子个体组成。
8、变异操作:对经过吞噬操作与交叉操作后再次合并的粒子群进行变异操作,变异操作使用基本位变异,染色体上的基因以预定的概率发生改变,得出最终的云任务调度方案。
具体的,以预先设定的变异概率对粒子个体编码序列的某一位或者某几位值在随机指定的范围内进行改变,经过上述操作后更新粒子群个体最优解和全局最优解并且检查是否满足达到最大迭代次数,如果达到最大迭代次数那么此时的全局最优解即为最终的云任务调度方案;反之循环执行上述步骤,所述最大迭代次数为预先根据需要人为设定好的。
为了验证本发明提出的基于吞噬的粒子群遗传混合算法(PSO_PGA)的云任务调度方法的有效性,进行如下实施例。
实施例一:
在不同的任务数量情况下,将本发明中基于吞噬的粒子群遗传混合算法(PSO_PGA)的云任务调度方法与粒子群算法(PSO)、FIFO调度策略、粒子群算法改进算法(PSO_CM)、增强型遗传粒子群混合算法(GA_EPSO)、改进后的遗传算法(IGA)在进行云任务调度时任务完成时间方面进行比较;
使用10台虚拟机且保证虚拟机数量不变,任务数量从60-600个,保证各算法相同的迭代次数且保持不变,重复多次计算取平均值,验证PSO_PGA算法在任务完成时间方面性能的优劣;具体的算法参数设置如表1所示,结果如附图2所示。
表1 PSO_PGA调度参数表
由附图2可以看出,云任务数量从60-600的范围内,PSO_PGA算法的云任务完成时间较其他算法而言,有更短的云任务完成时间。相较于PSO调度与FIFO调度任务完成时间明显缩短,在云任务数量60-200的范围内相较于PSO_CM调度,GA_EPSO调度,IGA调度,虽调度算法性能也有提升,但不十分显著,随着云任务数量的增加,PSO_PGA算法较这三种算法云任务完成时间明显缩短。
实施例二:
在保证同一批次任务且任务数量相同,不同迭代次数的情况下将本发明中基于吞噬的粒子群遗传混合算法(PSO_PGA)的云任务调度方法与粒子群算法改进算法(PSO_CM)、增强型遗传粒子群混合算法(GA_EPSO)和改进后的遗传算法(IGA)进行比较验证本发明中的云任务调度方法的收敛精度;
使用10台虚拟机,云任务数量为300个且为同一批次的云任务。保证虚拟机与云任务数量保持不变,改变算法的迭代次数,重复多次取平均值,验证PSO_PGA算法在收敛精度方面的性能优劣。具体算法参数与实施例一中相同,结果如附图3所示。
实施例三:
保证云任务个数不变但不是同一批次的任务,在保证任务数量相同但任务批次不同,在不同的迭代次数的情况下将本发明中基于吞噬的粒子群遗传混合算法(PSO_PGA)的云任务调度方法与粒子群算法(PSO)、粒子群算法改进算法(PSO_CM)、增强型遗传粒子群混合算法(GA_EPSO)和改进后的遗传算法(IGA)进行比较验证本发明中的云任务调度方法的收敛精度;
使用10台虚拟机,云任务数量为300个,在保证云任务个数不变但任务批次不同时,改变算法的迭代次数,重复多次取平均值,验证PSO_PGA算法在收敛精度方面的性能优劣。具体算法参数与实施例一中相同,结果如附图4所示。
由附图3可以看出在保证同一批次的300个云任务的条件下,改变算法的迭代次数,PSO_PGA算法在迭代次数10到40次的范围内,随着迭代次数的增加,云任务完成时间迅速缩短,50次开始趋于稳定,50次到150次的范围内任务完成时间虽有缩短,但变化不大,同实施例二中其他算法相比能够更快的收敛于全局最优解,且能找寻到更好的全局最优解;
由附图4可以看出,仅保证云任务数量,但每一次实验调度任务不同的情况下,PSO_PGA算法调度曲线较附图4中的其他算法的调度曲线相对平缓即稳定性优于实施例三中进行比较的其他算法。
因此由附图3、4可以看出在相同的云任务数量的情况下,PSO_PGA算法在不同的迭代次数下均优于进行比较的现有的其他算法,有更高的收敛精度。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (7)
1.基于吞噬的粒子群遗传混合算法的云任务调度方法,其特征在于,包括以下步骤:
S1、编码:采用实数直接编码方式,粒子群中的每一个粒子表示一种调度方案,粒子的维度等于任务的数量;
S2、适应度计算:利用适应度函数计算每个粒子个体的适应度值,并根据粒子个体的适应度值计算粒子群的平均适应度值;所述适应度函数为fitness=1/max(timei),i∈(0,1,2,3…m-1),式中,timei表示虚拟机i上所有云任务完成所用的时间,m为虚拟机的数量;
S3、建立粒子群算法的反馈机制:基于粒子的自身认知和社会认知建立粒子群算法的反馈机制;
S4、粒子子种群划分:对每一代粒子群利用适应度函数以及负载均衡标准差分别对其进行初次划分和二次划分,最终形成三个粒子子种群,分别为吞噬粒子子种群,普通粒子子种群和病原体粒子子种群,且划分后形成的这三个粒子子种群个体数量之和等于划分前粒子群个体数量;
S5、吞噬操作:对经过划分后形成的吞噬粒子子种群和病原体粒子子种群进行吞噬操作,得到新的粒子个体,放入下一代粒子群中;
S6、交叉操作:对经过划分后形成的普通粒子子种群进行遗传算法中的交叉操作,得到新的粒子个体,放入下一代粒子群中;
S7、合并粒子子种群:对经过吞噬操作与交叉操作的粒子个体进行合并操作;
S8、变异操作:对经过吞噬操作与交叉操作后再次合并的粒子群进行变异操作,更新粒子群个体最优解和全局最优解,检查是否达到最大迭代次数,如果达到最大迭代次数,那么此时的全局最优解即为最终的云任务调度方案,反之循环执行上述步骤。
2.根据权利要求1所述的基于吞噬的粒子群遗传混合算法的云任务调度方法,其特征在于,步骤S3中所述粒子群算法的反馈机制的具体步骤为:当粒子维数及云任务的数量为N时,
S33:随机产生一个正整数g,g的取值范围为[0,N-1],将其作为每次迭代过程中粒子L获取粒子群当前搜索到的最优位置gbest信息的位数;
S34:在g的范围内,随机产生一个正整数z,z的取值范围为[0,N-1],将其作为每次迭代过程中粒子L获取粒子群当前搜索到的最优位置gbest的具体编码序列下标。
4.根据权利要求3所述的基于吞噬的粒子群遗传混合算法的云任务调度方法,其特征在于,步骤S4中对粒子群进行划分的具体步骤为:
S41:根据步骤S2中计算出来的每个粒子个体的适应度值和粒子群的平均适应度,将粒子适应度值大于平均适应度的粒子个体划分到初始吞噬粒子子种群中,将粒子适应度值小于平均适应度的粒子个体划分到初始病原体粒子子种群中;
S42:利用负载均衡标准差的计算公式计算初次划分后的两个子种群中粒子的负载均衡标准差,并分别计算两个粒子子种群的平均负载均衡标准差;
S43:将两个子种群中的粒子个体的负载均衡标准差分别与其对应的子种群的平均负载均衡标准差相比较;
S44:在初始吞噬粒子子种群中,将小于自己子种群平均负载均衡差的个体划分到普通粒子群中;
S45:在初始病原体粒子子种群中,将大于自己子种群平均负载均衡差的个体划分到普通粒子群中;
S46:最终形成三个粒子子种群,分别为吞噬粒子子种群,普通粒子子种群,病原体粒子子种群。
5.根据权利要求4所述的基于吞噬的粒子群遗传混合算法的云任务调度方法,其特征在于,步骤S5中所述的吞噬操作的具体步骤为:
S51:从吞噬粒子子种群与病原体粒子子种群中分别取出一个粒子个体,对粒子个体的编码序列进行分段;
S52:以其中一个粒子个体为基础,比较另一个粒子对应位置的编码序列片段,用适应度大的优秀的粒子序列片段去吞噬适应度小的不良的粒子序列片段,最后得到一个新的粒子个体,放入下一代粒子群中。
6.根据权利要求5所述的基于吞噬的粒子群遗传混合算法的云任务调度方法,其特征在于,步骤S6中所述的交叉操作使用双点交叉法,左右交叉点随机选取。
7.根据权利要求6所述的基于吞噬的粒子群遗传混合算法的云任务调度方法,其特征在于,步骤S7中所述的合并粒子子种群的操作具体步骤为:
S71:令粒子群种群规模为num,步骤S4中划分后吞噬粒子子种群规模为phnum,普通粒子子种群规模为cnum,病原体粒子子种群规模为panum,则这四者的关系为num=phnum+cnum+panum;
S72:若phnum≥panum,则下一代粒子群由吞噬后形成的panum个新的粒子个体,phnum-panum个吞噬粒子子种群中未参与吞噬的个体,经过交叉操作后形成的新的粒子个体以及种群数量不足num随机产生的粒子个体组成;
S73:若phnum<panum,则下一代粒子群由吞噬后形成的phnum个粒子个体,panum-phnum个病原体粒子子种群中未参与吞噬的个体,经过交叉操作后形成的粒子个体以及种群数量不足num随机产生粒子个体组成。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911047136.7A CN110851272B (zh) | 2019-10-30 | 2019-10-30 | 基于吞噬的粒子群遗传混合算法的云任务调度方法 |
US17/020,118 US20210133534A1 (en) | 2019-10-30 | 2020-09-14 | Cloud task scheduling method based on phagocytosis-based hybrid particle swarm optimization and genetic algorithm |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911047136.7A CN110851272B (zh) | 2019-10-30 | 2019-10-30 | 基于吞噬的粒子群遗传混合算法的云任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110851272A CN110851272A (zh) | 2020-02-28 |
CN110851272B true CN110851272B (zh) | 2022-02-11 |
Family
ID=69599369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911047136.7A Active CN110851272B (zh) | 2019-10-30 | 2019-10-30 | 基于吞噬的粒子群遗传混合算法的云任务调度方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20210133534A1 (zh) |
CN (1) | CN110851272B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776612A (zh) * | 2018-04-11 | 2018-11-09 | 深圳大学 | 一种云计算任务分配方法、装置、设备及存储介质 |
CN113411369B (zh) * | 2020-03-26 | 2022-05-31 | 山东管理学院 | 一种云服务资源协同优化调度方法、系统、介质及设备 |
CN111858029B (zh) * | 2020-06-16 | 2023-06-27 | 国网福建省电力有限公司信息通信分公司 | 基于离散粒子群的Storm集群负载均衡方法及系统 |
CN112181598B (zh) * | 2020-10-12 | 2022-12-09 | 内蒙古农业大学 | 基于改进遗传算法的云计算任务调度方法 |
CN112256415B (zh) * | 2020-10-19 | 2023-08-04 | 福州大学 | 基于pso-ga的微云负载均衡任务调度方法 |
CN113128839B (zh) * | 2021-03-23 | 2022-09-30 | 合肥工业大学 | 面向高端装备分布式制造与多模式运输的协同调度方法 |
CN113222096B (zh) * | 2021-04-30 | 2022-11-11 | 桂林理工大学 | 一种面向云计算任务调度的改进粒子群算法 |
CN113434267B (zh) * | 2021-05-25 | 2022-12-02 | 深圳大学 | 云计算工作流动态调度方法、装置、设备及存储介质 |
CN113326979A (zh) * | 2021-05-25 | 2021-08-31 | 汕头大学 | 基于改进蚁群算法的区域景点双程路线多目标规划方法 |
CN113642808B (zh) * | 2021-09-01 | 2023-08-22 | 长春工业大学 | 一种面向云制造资源变化的动态调度方法 |
CN113703984B (zh) * | 2021-09-02 | 2024-03-19 | 同济大学 | 5g云边协同场景下基于soa架构的云任务优化策略方法 |
CN113902262B (zh) * | 2021-09-17 | 2024-04-16 | 南京信息工程大学 | 基于粒子群算法的空气质量群智感知任务分配方法 |
CN113791871B (zh) * | 2021-09-24 | 2023-08-22 | 长春理工大学 | 一种面向多目标的云计算任务策略调度方法及系统 |
CN114172963B (zh) * | 2021-10-15 | 2023-07-28 | 合肥工业大学 | 基于资源利用率的多粒度的任务与服务匹配方法和系统 |
CN114143814B (zh) * | 2021-12-13 | 2024-01-23 | 华北电力大学(保定) | 一种基于异构边缘云架构的多任务卸载方法及系统 |
CN114244720A (zh) * | 2021-12-17 | 2022-03-25 | 湘潭大学 | 一种sdn环境下基于改进粒子群算法的多控制器部署方法 |
CN114037363B (zh) * | 2022-01-07 | 2022-04-12 | 北京航空航天大学 | 一种基于协同智能优化算法的多平台任务分配方法 |
CN114490080A (zh) * | 2022-02-11 | 2022-05-13 | 北京秒如科技有限公司 | 一种基于pso-gwo算法的资源编排的方法 |
CN114567598B (zh) * | 2022-02-25 | 2023-10-31 | 重庆邮电大学 | 一种基于深度学习和跨域协作的负载均衡方法及装置 |
CN114741169B (zh) * | 2022-03-30 | 2024-02-13 | 天津大学 | 负荷聚合公共服务平台异构密码计算服务多任务调度方法 |
CN115357777B (zh) * | 2022-08-26 | 2023-09-01 | 福建师范大学 | 一种基于模糊理论的用户标签权重评估方法 |
CN115826542B (zh) * | 2023-02-16 | 2023-05-05 | 北京网藤科技有限公司 | 基于工业互联网的生产智能调控系统及方法 |
CN116757243B (zh) * | 2023-06-27 | 2024-01-23 | 哈尔滨工程大学 | 基于混沌Levy多目标烟花算法的多任务分配方法 |
CN117271143B (zh) * | 2023-11-22 | 2024-01-26 | 无锡尚航数据有限公司 | 一种数据中心优化节能调度方法及系统 |
CN117312808B (zh) * | 2023-11-30 | 2024-02-06 | 山东省科学院海洋仪器仪表研究所 | 一种海面空气动力学粗糙度的计算方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007001962A2 (en) * | 2005-06-20 | 2007-01-04 | Kurzweil Technologies, Inc. | Systems and methods for generating biological material |
CN103530709A (zh) * | 2013-11-04 | 2014-01-22 | 上海海事大学 | 一种基于细菌觅食优化方法的集装箱码头泊位和岸桥分配方法 |
CN104408589A (zh) * | 2014-10-24 | 2015-03-11 | 陕西科技大学 | 基于混合粒子群算法的agv优化调度方法 |
CN106095591A (zh) * | 2016-07-24 | 2016-11-09 | 成都育芽科技有限公司 | 一种基于云计算的虚拟机两级优化调度管理平台 |
CN107609650A (zh) * | 2017-09-20 | 2018-01-19 | 河南理工大学 | 基于时间负载均衡的粒子遗传算法优化方法、装置及系统 |
CN109451012A (zh) * | 2018-11-01 | 2019-03-08 | 宜通世纪物联网研究院(广州)有限公司 | 一种端云协同负载均衡调度方法、系统及存储介质 |
CN109635914A (zh) * | 2018-12-17 | 2019-04-16 | 杭州电子科技大学 | 基于混合智能遗传粒子群的优化极限学习机轨迹预测方法 |
CN109800071A (zh) * | 2019-01-03 | 2019-05-24 | 华南理工大学 | 一种基于改进遗传算法的云计算任务调度方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080189575A1 (en) * | 2001-05-24 | 2008-08-07 | Emilio Miguelanez | Methods and apparatus for data analysis |
CN103902375B (zh) * | 2014-04-11 | 2017-09-29 | 北京工业大学 | 一种基于改进遗传算法的云任务调度方法 |
CN108846472A (zh) * | 2018-06-05 | 2018-11-20 | 北京航空航天大学 | 一种自适应遗传粒子群混合算法的优化方法 |
-
2019
- 2019-10-30 CN CN201911047136.7A patent/CN110851272B/zh active Active
-
2020
- 2020-09-14 US US17/020,118 patent/US20210133534A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007001962A2 (en) * | 2005-06-20 | 2007-01-04 | Kurzweil Technologies, Inc. | Systems and methods for generating biological material |
CN103530709A (zh) * | 2013-11-04 | 2014-01-22 | 上海海事大学 | 一种基于细菌觅食优化方法的集装箱码头泊位和岸桥分配方法 |
CN104408589A (zh) * | 2014-10-24 | 2015-03-11 | 陕西科技大学 | 基于混合粒子群算法的agv优化调度方法 |
CN106095591A (zh) * | 2016-07-24 | 2016-11-09 | 成都育芽科技有限公司 | 一种基于云计算的虚拟机两级优化调度管理平台 |
CN107609650A (zh) * | 2017-09-20 | 2018-01-19 | 河南理工大学 | 基于时间负载均衡的粒子遗传算法优化方法、装置及系统 |
CN109451012A (zh) * | 2018-11-01 | 2019-03-08 | 宜通世纪物联网研究院(广州)有限公司 | 一种端云协同负载均衡调度方法、系统及存储介质 |
CN109635914A (zh) * | 2018-12-17 | 2019-04-16 | 杭州电子科技大学 | 基于混合智能遗传粒子群的优化极限学习机轨迹预测方法 |
CN109800071A (zh) * | 2019-01-03 | 2019-05-24 | 华南理工大学 | 一种基于改进遗传算法的云计算任务调度方法 |
Non-Patent Citations (3)
Title |
---|
Beetle-Swarm Evolution Competitive Algorithm for Bridge Sensor Optimal Placement in SHM;Jianhui Yang等;《IEEE Sensors Journal》;20190813;第20卷(第15期);8244-8255 * |
基于蚁群算法的SDN数据中心网络大象流调度研究;李宏慧等;《计算机应用研究》;20181019;第36卷(第12期);3837-3841 * |
基于随机鞭策机制的散漫度粒子群算法;袁罗等;《计算机工程与应用》;20181128;第55卷(第4期);66-71,90 * |
Also Published As
Publication number | Publication date |
---|---|
US20210133534A1 (en) | 2021-05-06 |
CN110851272A (zh) | 2020-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110851272B (zh) | 基于吞噬的粒子群遗传混合算法的云任务调度方法 | |
CN113193984B (zh) | 一种空天地一体化网络资源映射方法及系统 | |
Fu et al. | Task scheduling of cloud computing based on hybrid particle swarm algorithm and genetic algorithm | |
CN110717300B (zh) | 面向电力物联实时在线监测业务的边缘计算任务分配方法 | |
CN110570075B (zh) | 一种电力业务边缘计算任务分配方法及装置 | |
CN111325356A (zh) | 一种基于演化计算的神经网络搜索分布式训练系统及训练方法 | |
CN110795208A (zh) | 基于改进粒子群的移动云计算自适应虚拟机调度方法 | |
CN103281374A (zh) | 一种云存储中数据快速调度的方法 | |
KR20190054449A (ko) | 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법 | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN115629865B (zh) | 一种基于边缘计算的深度学习推理任务调度方法 | |
CN112685138B (zh) | 云环境下基于多种群混合智能优化的多工作流调度方法 | |
CN111694664A (zh) | 一种边缘服务器的计算卸载分配方法 | |
Liu et al. | Task scheduling in cloud computing based on improved discrete particle swarm optimization | |
Cruz-Chávez et al. | Hybrid micro genetic multi-population algorithm with collective communication for the job shop scheduling problem | |
CN112256413A (zh) | 基于物联网的边缘计算任务的调度方法和装置 | |
CN114327811A (zh) | 一种任务调度方法、装置、设备及可读存储介质 | |
Dong et al. | Quantum particle swarm optimization for task offloading in mobile edge computing | |
Shi et al. | A self-adaptive preferred learning differential evolution algorithm for task scheduling in cloud computing | |
CN112631612A (zh) | 一种基于遗传算法的kubernetes云平台配置的优化方法 | |
CN112272364A (zh) | 基于可充电无线传感器网络的非合作博弈功率控制方法 | |
CN112446484A (zh) | 一种多任务训练集群智能网络系统及集群网络优化方法 | |
CN115421885B (zh) | 一种分布式多目标云任务的调度方法、装置及云服务系统 | |
Fan et al. | Research on improved 2D-BPSO-based VM-container hybrid hierarchical cloud resource scheduling mechanism | |
Liu et al. | Emergency scheduling optimization simulation of cloud computing platform network public resources |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |