一种基于智能遗传算法的web服务协同调度方法及系统与流程

文档序号:16887991发布日期:2019-02-15 22:48阅读:195来源:国知局
一种基于智能遗传算法的web服务协同调度方法及系统与流程
本发明涉及一种基于智能遗传算法的web服务协同调度方法及系统。
背景技术
:随着web服务技术的快速发展和普及,企业内部及企业之间的协同服务得到了快速发展及应用,在协同服务执行中需要根据当前可用资源的情况得到高效的调度方案,从而使得协同服务的执行效率及成本满足用户的需求。因此,在协同服务执行过程中就需要基于用户的qos(qualityofservice,服务质量)需求对协同服务进行调度来获取最优化执行方案。对协同服务进行调度来获取最优化执行方案,可以采用蚁群算法、粒子群优化算法、遗传算法等来解决这一类多目标优化问题。但是现有的方法在解决本文所述协同服务调度问题上存在一定的局限性,在解决多目标时序性优化问题上会出现陷于局部最优解、无法解决众多变量的问题等,不适合当前所描述的web服务的协同服务调度问题的解决。基于这些问题,我们提出了基于传统遗传算法进行改进的智能遗传算法来解决web服务的协调调度问题,在种群初始化、种群间交叉、变异率确定等方面进行了改进。技术实现要素:本发明为了解决上述问题,提出了一种基于智能遗传算法的web服务协同调度方法及系统,本发明在传统遗传算法的基础上提高了算法的灵活性和多样性,在初始种群选取时采用确定初始内点对内修正的方式,且将迭代中的选择过程优化为基于种群交流的选择方法来实现选择方式。变异环节中变异因子根据个体的基因质量进行自适应的选取,增强种群的多样性。本发明的技术方案既可以保持个体的多样性,增大优秀个体的概率,加快收敛速度,又不会导致最终结果趋向局部最优解,在解决此类优化问题时具备一定的优势,在解决协同服务调度问题时,可以在保证服务质量的前提下,降低成本,提高协同服务的执行。为了实现上述目的,本发明采用如下技术方案:一种基于智能遗传算法的web服务协同调度方法,包括以下步骤:确定协同服务中的服务之间的偏序关系、可用资源数、执行时间和花费,表示协同服务调度的各个元素,确定每个协同服务数组的约束限制条件;对可用资源和协同服务数组分别进行染色体编码;确定协同服务执行成本、整个协同服务执行所需的总时间和协同服务数组的服务质量函数,以协同服务调度目标即是在保证服务质量的前提下,成本并协同服务的执行时间最少为目标,确定目标函数;利用智能遗传算法对目标函数进行求解,对种群进行初始化,在初始种群选取时采用确定初始内点对内修正的方式,进行种群的迭代和选择,在迭代中的选择过程中保留部分低适应度个体并自适应变异率,得到目标结果。作为进一步的限定,表示协同服务调度过程中,若协同服务中web服务数为n且服务之间存在偏序关系、可用资源数为m,并且各可用资源可以执行的web服务及可执行的最大web服务数目存在差异,各可用资源执行相同web服务所需时间、花费和及其可用性也各不相同,则协同服务调度问题的可行解为包含n个元素的一维数组,称之为协同服务数组x。作为进一步的限定,协同服务数组约束条件包括:每个可用资源执行的web服务数需要小于等于对应可用资源所能执行的最大服务数;每个服务都只由一个可用资源执行;可用资源i执行各服务的服务质量需要高于最低服务质量。作为进一步的限定,染色体编码中,首先需要对每个可用资源进行染色体编码,定义n为可用资源的数目,则染色体上每个可用资源所占基因位数c为作为进一步的限定,染色体编码中,对可用资源进行编码后,根据协同服务数组中各个元素的赋值情况对染色体进行编码,定义m为协同服务中web服务的数目,则染色体的长度l为l=m·c=mlog2n,n为可用资源的数目,c为染色体上每个可用资源所占基因位数。作为进一步的限定,协同服务执行的成本为执行每一web服务的花费之和,每个web服务在所有可用资源上执行的成本表示为矩阵quote,其中quoteij表示web服务j在可用资源i上执行的成本,定义协同服务数组x中web服务j在可用资源i上执行得到最终的执行协同服务的总成本cost:其中xj=i。作为进一步的限定,根据协同服务数组x后及协同服务中web服务之间的偏序关系,以及可用资源执行不同web服务所需时长tij得最后一个web服务的完成时间tf,则整个协同服务执行所需的总时间为最后一个web服务的完成时间与第一个web服务的开始执行时间的差值。作为进一步的限定,协同服务数组的服务质量为该数组内各个可用资源执行各个web服务的服务质量之和。作为进一步的限定,种群初始化过程中,设置初始种群的数量,先根据随机初始点所占百分比,产生随机初始点,对于每一个随机初始点随机产生一定数量的个体,将个体中满足约束条件的个体保留到初始种群。作为进一步的限定,对初始点的修正过程为:种群中其余的个体初始化时需要向已产生的个体靠近直到满足约束条件并保留到初始种群中,以此类推直到产生的个体数为设置的种群数量,其中不满足所有约束条件的个体向满足所有约束条件的个体靠近的方法是取两者的中点作为该个体的新值,若仍不满足所有约束条件则再次取两者中点作为自己的新值直到满足所有的约束条件。作为进一步的限定,对修正后的种群取中点操作,对两个个体中每个服务提供商所提供的服务数目进行统计,然后对每个服务提供商的服务数目进行取中点操作,对未分配出去的任务采用随机生成服务提供商编号的形式产生服务的提供商。作为进一步的限定,对种群的选择过程包括以下步骤:对种群个体进行随机四等分,分成a1,a2,b1,b2四个子种群;选择a1,b1子种群进行基于轮盘赌的种群间交叉;选择a2,b2子种群进行基于锦标赛的种群间交叉。作为更进一步的限定,基于轮盘赌的种群间交叉的具体过程包括:a.轮盘赌选择个体:根据个体的适应度值确定个体被选择的概率,适应度越大的个体被选择的概率就越大,按照种群中个体的适应度为个体分配在随机数区间的位置,根据随机数确定要获取的个体,重复该操作,直到种群中全部个体都被取出。b.种群间交叉:每取出两个个体a,b后进行一次交叉操作,随机产生交叉的基因位置l,取a的前l个元素作为子代的前l个元素,b的l及其之后的元素作为子代的剩余元素,基因编码的顺序保持不变。作为更进一步的限定,基于锦标赛的种群间交叉的具体过程包括:a.基于锦标赛方法选择个体:每次从种群中取出一定数量个体且不放回抽样,然后选择其中最好的一个进入子代种群,重复该操作,直到种群中的个体被全部取出;b.种群间交叉:每取出两个个体a,b后进行一次交叉操作,随机产生交叉的基因位置l,取a的前l个元素作为子代的前l个元素,b的l及其之后的元素作为子代的剩余元素,基因编码的顺序保持不变。保留部分低适应度个体并自适应变异率方法,包括以下步骤:留部分低适应度个体:根据实验结果来动态调整定义低适应度的阈值及其保留比例;根据上一代的适应度进行判定子代的突变率要,具体的突变率确定方法如表所示,其中s表示正常状态下的突变率,确定个体的适应度高或低的阈值需要根据实验数据来动态确定。f_entity适应度高于设定值f_entity适应度低于设定值m_entity适应度高于设定值s/2sm_entity适应度低于设定值s4s一种基于智能遗传算法的web服务协同调度系统,运行于处理器或存储器上,被配置为执行以下指令:确定协同服务中的服务之间的偏序关系、可用资源数、执行时间和花费,表示协同服务调度的各个元素,确定每个协同服务数组的约束限制条件;对可用资源和协同服务数组分别进行染色体编码;确定协同服务执行成本、整个协同服务执行所需的总时间和协同服务数组的服务质量函数,以协同服务调度目标即是在保证服务质量的前提下,成本并协同服务的执行时间最少为目标,确定目标函数;利用智能遗传算法对目标函数进行求解,对种群进行初始化,在初始种群选取时采用确定初始内点对内修正的方式,进行种群的迭代和选择,在迭代中的选择过程中保留部分低适应度个体并自适应变异率,得到目标结果。与现有技术相比,本发明的有益效果为:本发明采用的是协同服务数组来表示每一次协调调度的结果,每个协同服务数组都需要满足一定的约束条件。通过对染色体进行二进制编码来降低染色体所占空间;本发明提出的i-ga中采用自适应突变率的方法来动态确定个体的突变率,进一步提高种群的多样性和进化速度。在确定个体的突变率时,会搜索该个体的父亲、母亲(即交叉产生该个体的两个个体),根据其父母亲的适应度确定该个体的突变率。本发明可以保持个体的多样性,增大优秀个体的概率,加快收敛速度,又不会导致最终结果趋向局部最优解,在解决此类优化问题时具备一定的优势,针对协同服务调度问题,可以在保证服务质量的前提下,大幅降低成本。附图说明构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。图1是本发明的流程示意图;图2是本发明的基于种群交流的选择方法模型图;具体实施方式:下面结合附图与实施例对本发明作进一步说明。应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属
技术领域
的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。在本发明中,术语如“上”、“下”、“左”、“右”、“前”、“后”、“竖直”、“水平”、“侧”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,只是为了便于叙述本发明各部件或元件结构关系而确定的关系词,并非特指本发明中任一部件或元件,不能理解为对本发明的限制。本发明中,术语如“固接”、“相连”、“连接”等应做广义理解,表示可以是固定连接,也可以是一体地连接或可拆卸连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的相关科研或技术人员,可以根据具体情况确定上述术语在本发明中的具体含义,不能理解为对本发明的限制。本发明主要包括协同服务调度的表示方法、目标模型确定、种群初始化、种群间交叉、保留部分低适应度个体并自适应变异率五个部分。1.协同服务调度的表示方法,步骤如下:步骤一:确定表示方法。若协同服务中web服务数为n且服务之间存在偏序关系、可用资源数为m,并且各可用资源可以执行的web服务及可执行的最大web服务数目存在差异,各可用资源执行相同web服务所需时间、花费和及其可用性也各不相同,则协同服务调度问题的可行解为包含n个元素的一维数组,本文中称之为协同服务数组x。定义i为执行第j个web服务的资源编号,则协同服务数组的任意元素xj可表示为:xj=i步骤二:确定约束条件。对于每一个协同服务数组x有如下限制:条件1:将可用资源所能执行的web服务的最大数目表示为集合m,其中mi表示可用资源i所能执行的最大服务数。集合c用于表示当前协同服务数组x中各个可用资源执行的服务数目,其中ci表示可用资源i执行的服务总数,则i执行的web服务数需满足以下条件:si≤mi条件2:由于协同服务数组x为线性结构,每个位置只会存在一个元素,故直接满足了每个服务都只由一个可用资源执行的约束条件。所以在之后的内容和实验中不再考虑该条件对结果的约束作用。条件3:将可用资源执行的web服务的质量表示为矩阵t,其中tij表示可用资源i执行服务j的服务质量。用户对于服务质量的最低要求表示为集合y,其中yj表示用户对于服务j的最低服务质量。定义协同服务数组x中由i执行服务j,则可用资源执行服务需要满足以下条件:yj≤tij步骤三:染色体编码①首先需要对每个可用资源进行染色体编码。定义n为可用资源的数目,则染色体上每个可用资源所占基因位数c如下式确定:在传统表达方式中上述染色体需要n位来分别表示每个可用资源,采用上述公式的方式可以在传统表达方式基础上压缩染色体的长度,减少实验中的内存消耗,提升整个种群的进化速度。②对每个协同服务数组x进行染色体编码。对可用资源进行编码后,根据x中各个元素的赋值情况对染色体进行编码。定义m为协同服务中web服务的数目,则染色体的长度l如下所示:l=m·c=mlog2n例如,可用资源的数目n=6,则根据公式(4)确定染色体上每个可用资源所占基因位数c=3,则其中一种对可用资源的编码如下:可用资源123456编码000001010011100101定义协同服务中web服务数目m=9,则整体染色体长度为27,染色体编码如下:0001010000110100010001011002.目标模型的确定包括以下几个步骤:步骤一:成本模型。协同服务执行的成本为执行每一web服务的花费之和。每个web服务在所有可用资源上执行的成本可表示为矩阵quote,其中quoteij表示web服务j在可用资源i上执行的成本。定义协同服务数组x中web服务j在可用资源i上执行,可以得到最终的执行协同服务的总成本cost:其中xj=i当产生一个协同服务数组x后做如上运算,即得到执行协同服务的总成本,根据每个协同服务数组x所得的cost可以比较得到最小成本及最小成本对应的最优协同服务调度方案。步骤二:时间模型在协同服务调度问题中将协同服务中第一个web服务的开始执行时间ts设置为0。根据协同服务数组x后及协同服务中web服务之间的偏序关系,以及可用资源执行不同web服务所需时长tij可得最后一个web服务的完成时间tf。矩阵t存储每个可用资源执行每个web服务的完成时长,其为一个n*m的矩阵,其中tij为可用资源i执行web服务j的完成时长,矩阵的m列对应于m个web服务,m个web服务存在时间上的拓扑序列。整个协同服务执行所需的总时间time为:time=tf-ts步骤三:服务质量模型鉴于可用资源的计算能力、内存、网络带宽等诸多方面存在差异,故每个可用资源在执行相同web服务时的服务质量不同。将可用资源在执行web服务时的服务质量表示为矩阵t,其中tij表示可用资源i执行web服务j的服务质量,则协同服务数组x对应的服务质量quality如下所示:其中xj=i步骤四:模型目标确定协同服务调度目标即是在保证服务质量的前提下,尽可能降低成本并减少协同服务的执行时间。由此,建立目标函数如下:fitness=min(a·cost+b·time+(1-a-b)·quality)。fitness的参数a,b根据用户对各个因素的侧重程度来制定。3.种群初始化方法,包括以下三个步骤:步骤一:初始内点确定。设置初始种群的数量为population_size,先根据随机初始点(随机初始点是指初始条件下随机产生的符合约束条件的个体)所占百分比m产生随机初始点,即随机初始点的数目为population_size*m。对于每一个随机初始点随机产生entity_size个个体,entity_size个个体中满足约束条件的个体保留到初始种群population中步骤二:根据初始内点向内修正。种群中其余的个体初始化时需要向已产生的个体靠近直到满足约束条件并保留到初始种群population中,以此类推直到产生的个体数为population_size。其中不满足所有约束条件的个体向满足所有约束条件的个体靠近的方法是取两者的中点作为该个体的新值,若仍不满足所有约束条件则再次取两者中点作为自己的新值直到满足所有的约束条件。通过随机产生部分初始点、其他节点向其靠近的方式进行种群初始化虽然会在一定程度上降低初始种群的多样性,但该初始化种群方式对种群多样性影响可以通过随机初始化点的占比m进行调节,并不会很大程度上降低初始种群的多样性,并且该方式对于种群的初始化时长会有很大提升。步骤三:取中点操作。在取两个个体的中点形成新个体时,需要先对两个个体中每个服务提供商所提供的服务数目进行统计,然后对每个服务提供商的服务数目进行取中点操作。例如:初始个体a中编号为1的服务提供商共提供5个服务,而趋近初始个体a的个体b中编号为1的服务提供商共提供3个服务,则新形成的个体b中编号为1的服务提供商共提供4个服务,而这4个服务的编号随机产生。最后对未分配出去的任务采用随机生成服务提供商编号的形式产生服务的提供商。4.基于种群交流的选择方法,包括以下三个步骤:步骤一:对种群个体进行四等分,分成a1,a2,b1,b2四个子种群。a.种群划分过程:种群划分过程要最大化的保证划分的随机性,本文采用的是按顺序对四个子种群进行个体的存放,选择存放个体时采用随机选择的方式产生目标个体。步骤二:选择a1,b1子种群进行基于轮盘赌的种群间交叉a.轮盘赌选择个体:根据个体的适应度值确定个体被选择的概率,本次规定适应度越大的个体被选择的概率就越大。按照种群中个体的适应度为个体分配在随机数区间的位置,根据随机数确定要获取的个体。重复该操作,直到种群中全部个体都被取出。b.种群间交叉:每取出两个个体a,b后进行一次交叉操作,随机产生交叉的基因位置l,取a的前l个元素作为子代的前l个元素,b的l及其之后的元素作为子代的剩余元素,基因编码的顺序保持不变。步骤三:选择a2,b2子种群进行基于锦标赛的种群间交叉a.基于锦标赛方法选择个体:每次从种群中取出一定数量个体(不放回抽样),然后选择其中最好的一个进入子代种群。重复该操作,直到种群中的个体被全部取出。b.种群间交叉:每取出两个个体a,b后进行一次交叉操作,随机产生交叉的基因位置l,取a的前l个元素作为子代的前l个元素,b的l及其之后的元素作为子代的剩余元素,基因编码的顺序保持不变。5.保留部分低适应度个体并自适应变异率方法,主要包括以下两个步骤:步骤一:留部分低适应度个体。根据实验结果来动态调整定义低适应度的阈值及其保留比例。根据实验所得,低适应度个体的保留比例在0.1时实验结果最佳。由于适应度与问题的解相关,故随着实验条件的不同,低适应度个体的适应度阈值也随之发生变化。步骤二:自适应突变率。子代的突变率需要根据上一代的适应度进行判定,具体的突变率确定方法如下表所示:其中s表示正常状态下的突变率,确定个体的适应度高或低的阈值需要根据实验数据来动态确定。以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1