基于改进狼群算法的云服务系统自适应演化方法
技术领域
本发明涉及云服务演化技术领域,尤其涉及一种基于改进狼群算法的云服务系统自适应演化方法。
背景技术
随着信息技术的高速发展,人们迎来了新一轮技术变革,2006年谷歌在搜索引擎大会上提出了“云计算”的概念,借鉴分布式的计算思维,将计算机集群作为数据和计算中心,通过将IT计算资源虚拟化后通过网络以服务的方式提供给用户使用,云计算支持大规模的高性能计算、数据处理及共享资源池,并降低了用户运维成本。近几年,云计算迅速发展并逐渐成为主流的应用环境。云计算中,计算、软件、存储等IT资源都是服务,用户可以根据自己的需求购买并使用服务。当前国内外各大IT企业部署云平台并对外提供相应的云服务,例如亚马逊的云计算服务AWS、谷歌推出的Google App Engine、微软的 Azure、IBM的Blue Cloud、阿里的阿里云、腾讯的腾讯云以及百度的百度云等。由此可见,IT资源服务化的思想日益普及,服务成为云计算的核心,云计算系统中的一切都是或者可以是服务,呈现出“一切皆服务”(X as a Service,XaaS)的趋势。
然而,云计算环境的动态性、开放性和复杂性,以及用户需求的频繁变化,要求云服务系统应不断进行演化。没有一个云服务系统可以一直都能满足用户要求,不停运行下去。为了适应开放的云计算环境,云服务系统需要进行相应的自我演化。由于具有持续可用等特点,云服务系统自适应演化已成为当前的研究热点。以往在解决云服务系统自适应演化问题时经常会出现以下问题:第一,演化效率比较低。这是因为有大量功能相同或相似的候选云服务存在于云环境中,使得云服务的演化过程中消耗了大量的时间。第二,云服务演化过程中考虑的因素不够全面。众所周知,在开放动态的云环境中,云服务具有复杂的非功能属性,过去大多数对云服务演化的研究中,大多只考虑了云服务的功能需求,导致云服务演化的结果无法让用户满意。
发明内容
本发明的目的在于克服现有技术的不足,适应现实需要,公开一种基于改进狼群算法的云服务系统自适应演化方法,本方法可用于快速高效地完成云服务系统的自适应演化。
为了实现本发明的目的,本发明所采用的技术方案为:
公开一种基于改进狼群算法的云服务系统自适应演化方法,其特征在于:包括如下步骤:
S1.构建云服务系统候选子集;
S2.云服务系统的人工狼编码;
S3.定义云服务系统自适应演化的适应度函数;
S4.利用信息熵初始化狼群;
S5.云服务系统的游走;
S6.云服务系统的召唤;
S7.云服务系统的围攻;
S8.更新头狼位置;
S9.更新狼群;
S10.终止条件判断;
S11.输出头狼所在位置对应的目标云服务系统。
步骤S1具体为:将云服务系统候选子集形式化定义为一个四元组:
CSi=(Cn,Fun,Num,Mems)
其中:Cn表示该云服务系统候选子集的编号,同一候选子集中所有云服务具有相同Cn; Fun是该候选子集中所有云服务具有的功能描述;Num为该云服务系统候选子集中云服务的个数;Mems为按顺序构成该云服务系统候选子集的所有云服务组成的一个序列。
步骤S2具体为:对人工狼的位置采用整数编码,设定:每个云服务系统实例对应一只人工狼,每只人工狼的位置有D维,分别对应云服务系统实例中的D个云服务,云服务系统实例中完成每个子任务的云服务在相应云服务系统候选子集中的编号对应为人工狼的d维位,人工狼的位置定义为:
Xi=(xi1,xi2,…,xid,…,xiD)
其中,xid表示第i(1≤i≤N)只人工狼在第d(1≤d≤D)维上的值。
步骤S3具体为:
S31:定义一个7维的QoS评价指标来作为云服务系统自适应演化结果的评价标准,分别为服务时间(T)、服务费用(C)、可用性(Av)、可靠性(Rel)、信誉(Rep)、 CPU占用率(Cor)和内存占用率(Mor);
S32:对QoS进行归一化处理;具体为,对服务时间(T)、服务费用(C)、CPU 占用率(Cor)和内存占用率(Mor),使用下式处理;
对云服务的可用性(Av)、可靠性(Rel)、信誉(Rep),使用下式处理;
其中,qmax-qmin≠0,qi -和qi +表示云服务第i个属性的归一化值;qi表示云服务第 i个QoS属性值,qmax和qmin分别表示该云服务所在候选子集中对应QoS属性的最大值和最小值;
S33:将云服务系统自适应演化的适应度函数定义:
Q(P)=w1T+w2C+w3Av+w4Rel+w5Rep+w6Cor+w7Mor
其中w1、w2、w3、w4、w5、w6、w7是相应的权重,T、C、Av、Rel、Rep、 Cor、Mor为服务时间(T)、服务费用(C)、可用性(Av)、可靠性(Rel)、信誉(Rep)、 CPU占用率(Cor)和内存占用率(Mor)归一化处理后的各个QoS属性。
步骤S4具体为:设狼群的规模为N,则群体中第d(d=1,2,…,D)维的信息熵值Hd定义为:
其中,xid、xjd分别表示为初始人工狼i和人工狼j在d维度的值,1≤i,j≤N, xdmax、xdmin分别为狼群第d维的最大值和最小值,Pij表示xid不同于xjd的概率;
整个初始群体的信息熵值H定义为:
利用信息熵初始化狼群时,按照以下步骤进行:
S41.确定一个最小临界熵值H0,H0=0.5;
S42.通过以下公式随机产生第一只人工狼:
xid=xdmin+rand(0,1)(xdmax-xdmin)
其中,rand(0,1)为在[0,1]范围内分布的随机数;
S43.通过步骤S42随机产生新人工狼,计算新人工狼与已经存在的人工狼的信息熵值,如果信息熵值大于H0,则接收新人工狼加入初始种群,否则就抛弃该人工狼,在加入初始种群的新人工狼总数不大于N的情况下,通过步骤S42不断重新产生新人工狼,直至出现N只满足信息熵值大于H0的新人工狼;
S44.定义最大迭代次数为Kmax,探狼比例因子为a,最大游走次数为Tmax,距离判定因子为w,步长因子为S,更新比例因子为β。
步骤S5具体为:
S51.根据适应度函数计算每条演化路径的适应度值,选择具有最大值的演化路径对应的人工狼为头狼,设定头狼所在位置对应的云服务系统实例的适应度值为Ylead;
S52.选择除头狼外的适应度值最大的m条云服务系统演化路径作为探狼,其中m为之间的整数,a为探狼比例因子;
S53.探狼按照以下方式进行游走:
S531.探狼i所在位置对应的云服务系统实例的适应度值为Yi,其中i=1,2,…,m;如果Yi大于头狼的Ylead,则Ylead=Yi,探狼i替代头狼,如果Yi<Ylead,则探狼i进行自主决策,进行下一步骤:
S532.分别向dmax个方向前进一步,此时的步长设为stepa,并记录下移动后的适应度值,然后退回原位置,探狼i向第p个方向移动后在第d维空间的位置定义为:
其中,p=1,2,...,dmax,游走方向h取[1,dmax]间的随机整数,stepa=|dmax-dmin|/S, dmax、dmin分别为狼群所有维度的最大值和最小值,S为步长因子,
S533.此时,探狼i所在位置对应的云服务系统实例的适应度值为Yip,选择大于当前位置适应度值中最大的方向前进一步,对探狼i的位置进行更新,不断重复游走直到某个位置的适应度值大于头狼所在位置的适应度值,或者游走次数T达到最大游走次数Tmax。
步骤S6具体为:
S61.头狼周围的人工狼都以相对较大的奔袭步长stepb=2*|dmax-dmin|/S快速接近头狼所在位置;
S62.奔袭过程中通过自适应共享因子s动态调整人工狼的奔袭步长,自适应共享因子s的定义如下:
式中,sinit和sfinal是常量,k为迭代次数,Sinit=0.1和Sfinal=1.2;
S63.通过下式确定人工狼i经过第k+1次迭代后在第d维的位置:
其中,为第k代群体头狼在第d维空间的位置;
S64.如果人工狼i在奔袭的途中某位置对应的云服务系统实例的适应度值Yi>Ylead,则Ylead=Yi,即该人工狼转变为头狼,然后转到步骤S61重新发动召唤行为;若 Yi<Ylead,则人工狼i继续奔袭,直到其与头狼之间的距离小于dnear时转入围攻行为, dnear由下式确定:
其中,xdmax、xdmin分别为狼群第d维的最大值和最小值,w为距离判定因子,d=1,2,…D。
步骤S7具体为:人工狼对头狼的位置进行围攻时,对于第k代人工狼狼群,人工狼狼群的围攻行为用下式表示:
其中,为第k代人工狼狼群中的头狼在第d维空间中的位置,λ为[-1,1]范围内均匀分布的随机数,stepc为人工狼执行围攻行为时的攻击步长,stepc由下式确定:
stepc=|dmax-dmin|/2S
其中,S为步长因子,如果实施围攻行为后人工狼所在位置对应的云服务系统实例的适应度值大于其原来位置对应的适应度值,则更新此人工狼的位置,否则人工狼位置不变。
步骤S8具体为:步骤S7实施围攻行为后,按“适应度值最大”的头狼产生规则对头狼位置进行更新。
步骤S9具体为:去除适应度值最差的R只人工狼,同时按照步骤S4的信息熵初始化狼群的方法重新产生R只新的人工狼加入狼群中,R的取值为[N/2β,N/β]之间的随机整数,β为狼群更新比例因子。
步骤S10具体为:判断是否达到最大迭代次数kmax,若达到则转到步骤S11,否则转到步骤S5。
步骤S11具体为:输出头狼位置对应的云服务系统实例对应的各个云服务,作为演化后的目标云服务系统。
步骤S4至步骤S9各步骤求解的结果分别进行离散化处理。
本发明的有益效果在于:
本方法在应用中可用于快速高效地完成云服务系统的自适应演化。
附图说明
图1为本发明的流程图;
图2为云服务自适应演化的路径图;
图3为破碎纸片修复云服务系统示意图;
图4云服务系统与人工狼的对应编码图。
具体实施方式
下面结合附图和实施例对本发明进一步说明:
实施例1:一种基于改进狼群算法的云服务系统自适应演化方法,参见图1至图4。
它包括如下步骤:
S1.构建云服务系统候选子集
云服务平台根据用户的需求筛选出能完成各个子任务的云服务系统候选子集,每个云服务系统候选子集中的云服务都具有相同或相似的功能,本发明将云服务系统候选子集形式化定义为一个四元组:
CSi=(Cn,Fun,Num,Mems)
其中:Cn表示该云服务系统候选子集的编号,同一候选子集中所有云服务具有相同Cn; Fun是该候选子集中所有云服务具有的功能描述;Num为该云服务系统候选子集中云服务的个数;Mems为按顺序构成该云服务系统候选子集的所有云服务组成的一个序列。
S2.云服务系统的人工狼编码
针对云服务系统,本发明对人工狼的位置采用整数编码,设定:每个云服务系统实例对应一只人工狼,每只人工狼的位置有D维,分别对应云服务系统实例中的D个云服务,云服务系统实例中完成每个子任务的云服务在相应云服务系统候选子集中的编号对应为人工狼的d维位,人工狼的位置定义为:
Xi=(xi1,xi2,…,xid,…,xiD)
其中,xid表示第i(1≤i≤N)只人工狼在第d(1≤d≤D)维上的值。则一个由D 个云服务构成的云服务系统对应的人工狼编码如图4所示。
S3.定义云服务系统自适应演化的适应度函数
本发明通过定义一个7维的QoS(Quality of Service,服务质量)评价指标来作为云服务系统自适应演化结果的评价标准,分别为服务时间(T)、服务费用(C)、可用性(Av)、可靠性(Rel)、信誉(Rep)、CPU占用率(Cor)和内存占用率(Mor):
(1)服务时间(T):指用户从开始提交服务到服务执行完成并返回结果所消耗的全部时间,记为T。
(2)服务费用(C):指从用户提交服务请求到服务执行完成返回结果所需要的所有金钱花费,记为C。
(3)可用性(Av):指服务可以成功被访问的概率,定义为该云服务成功访问的次数与总访问次数的比值:
Av=Asuc/Asum
其中,Asum为一段时间内对该云服务的访问总次数,Asuc为该云服务自身成功响应的次数。
(4)可靠性(Rel):指云服务正常运行的概率,定义为服务实例可用时间占总的服务工作时间的比例:
Rel=Trun/Ttol
其中,Ttol为云服务运行的总时间,Trun为该段时间内正常运行的时间。
(5)信誉(Rep):用于衡量一个服务值得信任的程度,基于用户在使用该云服务后做出的评价,定义为:
其中,Ri为第i个用户对云服务做出的评价,n为对云服务评价的用户个数,Ri的值设置为0、1、2、3、4、5六个等级,默认值为3。
(6)CPU占用率(Cor):指云服务的CPU使用量与服务节点上服务能提供的CPU 计算能力的比值,定义为:
Cor=CPUuse/CPUcom
其中,CPUuse为云服务的CPU使用量,可以通过性能监视器进行测试和获取。CPUcom表示云服务所在节点提供的可用CPU计算能力。在每一条云服务演化路径中的CPU占用率取路径中所有云服务的CPU占用率最大的那个。
(7)内存占用率(Mor):指云服务的内存使用量与服务节点上提供的内存大小的比值,定义为:
Mor=Memuse/Memser
其中,Memuse为云服务的内存使用量,可以通过性能监视器进行测试和获取。Memser表示云服务所在节点提供的内存大小。在每一条云服务演化路径中的内存占用率取路径中所有云服务的内存占用率最大的那个。
由于每个QoS属性的意义不同,表示方法和量化单位也不同,为了消除不同量纲的影响,本发明统一对QoS进行归一化处理,具体如下:
针对云服务的消极属性--服务时间(T)、服务费用(C)、CPU占用率(Cor)和内存占用率(Mor),使用下式处理。
针对云服务的积极属性--可用性(Av)、可靠性(Rel)、信誉(Rep),使用下式处理。
其中,qmax-qmin≠0,和表示云服务第i个属性的归一化值;qi表示云服务第i个QoS属性值,qmax和qmin分别表示该云服务所在候选子集中对应QoS属性的最大值和最小值。
从公式中可以看出,积极属性的QoS值变大,归一化后的值也变大,而消极属性的QoS 值变大,归一化后的值会变小。云服务的QoS属性值在归一化后,其取值都在[0,1]范围内。这样就可以直接对QoS属性值进行统一处理。
QoS表示了云服务的非功能属性,云服务的QoS可以由运营商提供,也可以基于服务的运行情况得到,或者通过使用过的用户反馈获得。云服务系统自适应演化的QoS属性值不仅和单个云服务的QoS属性值有关,还和云服务之间的结构有关。
如图2所示,在云服务系统自适应演化中云服务之间存在顺序结构、选择结构、并行结构和循环结构四种基本结构,所以云服务在自演化过程中可能产生大量结构不同的云服务实例,对应云服务系统自适应演化的不同演化路径。
表2所示为分别对这四种基本结构的云服务系统自适应演化路径QoS的计算表达式。其中,Pi为选择结构模型中每个云服务CSi被选中执行的概率,K表示循环结构模型中执行的次数。
表2四种基本结构云服务系统自适应演化路径的QoS计算表达式
因此,云服务系统自适应演化的目标是服务时间、服务费用、CPU占用率和内存占用率尽量少,可用性、可靠性、信誉尽量高。
本发明中将云服务系统自适应演化的适应度函数定义如下:
Q(P)=w1T+w2C+w3Av+w4Rel+w5Rep+w6Cor+w7Mor
其中w1、w2、w3、w4、w5、w6、w7是相应的权重,Cor、Mor为服务时间(T)、服务费用(C)、可用性(Av)、可靠性(Rel)、信誉(Rep)、 CPU占用率(Cor)和内存占用率(Mor)归一化处理后的各个QoS属性。
S4.利用信息熵初始化狼群
基本狼群(狼群由若干个人工狼组成)算法通过随机生成的方式产生初始种群,尽管这种方式可以使初始种群随机分布于搜索空间内,但这种分布不是均匀的,可能在一定程度上会影响算法的求解效率,所以本发明利用信息熵来初始化种群,保证在搜索空间中初始种群是随机均匀分布的,有利于提高算法求解效率和避免算法过早收敛。
在初始化狼群时,设狼群的规模为N,则群体中第d(d=1,2,…,D)维的信息熵值Hd定义如下:
其中,xid、xjd分别表示为初始人工狼i和人工狼j在d维度的值,1≤i,j≤N,xdmax、xdmin分别为狼群第d维的最大值和最小值,Pij表示xid不同于xjd的概率。
则整个初始群体的信息熵值H定义如下:
所以,基于信息熵初始化狼群的过程为:首先确定一个最小临界熵值H0(取H0=0.5),然后通过以下公式随机产生第一只人工狼:
xid=xdmin+rand(0,1)(xdmax-xdmin)
其中,rand(0,1)为在[0,1]范围内分布的随机数。
在不超过种群规模N的情况下,不断随机产生新人工狼,并计算新人工狼与已经存在的人工狼的信息熵值,如果信息熵值大于H0,则接收新人工狼加入初始种群,否则就抛弃该人工狼,继续按上述方法重新产生新人工狼并计算信息熵值,直到出现N只满足信息熵值大于H0的人工狼,作为初始化狼群。
最后,定义最大迭代次数为Kmax,探狼比例因子为a,最大游走次数为Tmax,距离判定因子为w,步长因子为S,更新比例因子为β。
S5.云服务系统的游走
根据适应度函数计算每条演化路径的适应度值,选择具有最大值的演化路径对应的人工狼为头狼,设定头狼所在位置对应的云服务系统实例的适应度值为Ylead。
然后选择除头狼外适应度值最大的m条云服务系统演化路径作为探狼,其中m为之间的整数,a为探狼比例因子。
为了提高探狼的搜索精度,探狼按照以下方式进行游走行为:探狼i(其中i=1,2,…,m) 所在位置对应的云服务系统实例的适应度值为Yi。如果Yi大于头狼的Ylead,则Ylead=Yi,探狼i替代头狼,如果Yi<Ylead,则探狼i进行自主决策,即分别向dmax个方向前进一步,此时的步长设为stepa,并记录下移动后的适应度值,然后退回原位置,探狼i向第p(p=1,2,...,dmax) 个方向移动后在第d维空间的位置定义为:
游走方向h通过取[1,dmax]间的随机整数确定,stepa=|dmax-dmin|/S,dmax、dmin分别为狼群所有维度的最大值和最小值,S为步长因子。
此时,探狼i所在位置对应的云服务系统实例的适应度值为Yip,选择大于当前位置适应度值中最大的方向前进一步,对探狼i的位置进行更新,不断重复游走直到某个位置的适应度值大于头狼所在位置的适应度值,或者游走次数T达到最大游走次数Tmax。
S6.云服务系统的召唤
头狼确定后,发起召唤行为。头狼周围的人工狼都以相对较大的奔袭步长stepb=2*|dmax-dmin|/S快速接近头狼所在位置,人工狼通过跟踪全局最大适应度值Ylead来更新它们的位置。
然而,如果人工狼盲目向头狼奔袭,那算法就会在早期陷入局部最优。为了平衡全局搜索能力和局部搜索能力,本发明引入自适应共享因子来动态调整人工狼与头狼之间的信息共享程度,即通过自适应共享因子s动态调整人工狼的奔袭步长。自适应共享因子s的表达式定义如下:
式中,sinit和sfinal是常量,k为迭代次数,本发明Sinit和Sfinal分别取0.1和1.2,则人工狼i经过第k+1次迭代后在第d维的位置为下式所示:
其中,为第k代群体头狼在第d维空间的位置。
如果人工狼i在奔袭的途中某位置对应的云服务系统实例的适应度值Yi>Ylead,则Ylead=Yi,即该人工狼转变为头狼,然后重新发动召唤行为;若Yi<Ylead,则人工狼i继续奔袭,直到其与头狼之间的距离小于dnear时转入围攻行为,dnear由下式确定:
其中,xdmax、xdmin分别为狼群第d(d=1,2,…)维的最大值和最小值,w为距离判定因子,它的取值会影响算法的收敛速度,通常来说w增大可以加速算法收敛,但如果w过大时人工狼很难进入围攻行为。
S7.云服务系统的围攻
经过奔袭的人工狼已离猎物较近,需要对猎物进行围攻以将其捕获,这里头狼的位置就是猎物的位置。人工狼对头狼的位置进行围攻时,对于第k代人工狼狼群,人工狼狼群的围攻行为用下式表示:
其中,为第k代群体头狼在第d维空间中的位置,λ为[-1,1]范围内均匀分布的随机数, stepc为人工狼执行围攻行为时的攻击步长。
stepc由下式确定:
stepc=|dmax-dmin|/2S
其中,S为步长因子,如果实施围攻行为后人工狼所在位置对应的云服务系统实例的适应度值大于其原来位置对应的适应度值,则更新此人工狼的位置,否则人工狼位置不变。
S8.更新头狼位置
实施围攻行为后,按“适应度值最大”的头狼产生规则对头狼位置进行更新。
S9.更新狼群
狼群按照捕猎过程中的功劳大小进行分配食物,导致弱小的狼会被饿死,即在算法中去除适应度值最差的R只人工狼,同时按照步骤S4的信息熵初始化狼群的方法重新产生R 只新的人工狼加入狼群中,R的取值为[N/2β,N/β]之间的随机整数,β为狼群更新比例因子。
S10.终止条件判断
判断是否达到最大迭代次数kmax,若达到则转到步骤S11,否则转到步骤S5。
S11.输出头狼位置对应的云服务系统实例对应的各个云服务,作为演化后的目标云服务系统。
S12.离散化处理和越界处理
通常狼群算法是用来对连续域的最优化问题求解,狼群算法中人工狼的位置在空间是连续变化的,但本发明在求解云服务系统自适应演化问题时,对人工狼位置的编码为整数编码的方式,所以需要对步骤S4至步骤S9各步骤的求解结果进行离散化处理。
本发明采用将连续型结果变量直接转换成离散值的离散化处理方法,具体的实现就是根据连续结果变量和离散变量之间的距离,用离连续型变量最近的离散变量作为离散化处理的结果,如下所示:
如果人工狼更新后的位置超出了搜索范围,则进行必要的越界处理,将人工狼限制在解决方案空间内。本发明对每只人工狼第k次更新后的位置,按照下式进行处理:
式中,xdmax,xdmin分别是第d维搜索范围的最大值和最小值。因此,每只人工狼在第d维空间的位置的值就被限制在[xdmin,xdmax]的范围内,以防止人工狼的位置出现越界。
使用本发明方法的具体案例分析如下:
本方法采用破碎纸片修复系统来演示该方法的实现过程。随着当前信息技术的发展,用户可以通过计算机软件来完成破碎纸质文档的修复。由于本地计算资源有限,云计算平台提供的强大的计算服务是一个很好的选择。为了完成对破碎纸片修复,首先需要对破碎纸片源图像进行图像灰度化、图像二值化和图像降噪等数据预处理工作,然后进行形状结构化和边缘信息结构化等数据结构化处理,最后完成基于文字信息拼接和基于形状拼接的处理。
如图3所示,图中,t1:图像灰度化;t2:图像二值化;t3:图像降噪;t4:形状结构化;t5:边缘信息结构化;t6:基于文字信息拼接;t7:基于形状拼接;图中,将破碎纸片修复分解成7个子任务:图像灰度化任务t1、图像二值化任务t2,图像降噪任务t3、形状结构化任务t4、边缘信息结构化任务t5、基于文字信息拼接任务t6、基于形状拼接任务t7。其中t1、 t2、t3为并行关系,t4、t5为并行关系,t6、t7为并行关系,这三个并行关系整体构成一个顺序关系,其中,该系统中的每个子任务都有若干个云服务能完成相应的功能。
现将提出的基于改进狼群算法的云服务系统自适应演化方法应用于上述破碎纸片修复云服务系统,实现在运行过程中自动根据需求选择合适的各个子任务的最佳云服务,形成最佳的云服务系统,完成破碎纸片修复,具体步骤如下。
(1)构建破碎纸片修复云服务系统各个子任务的候选子集
破碎纸片修复云服务系统的各子任务包括图像灰度化(其云服务候选子集用IG表示),图像二值化(其云服务候选子集用IB表示),图像降噪(其云服务候选子集用IP表示),形状结构化(其云服务候选子集用SS表示),边缘信息结构化(其云服务候选子集用IS表示),基于文字信息拼接(其云服务候选子集用IT表示),基于形状拼接(其云服务候选子集用ST表示),表示为如表3所示结构。
表3云服务候选子集结构
根据破碎纸片修复云服务系统各子任务的功能需求,构建候选子集如下表4所示。
表4各云服务系统候选子集
(2)利用定义的云服务系统编码规则编码破碎纸片修复系统
如表5所示,采用对人工狼在7维空间位置整数编码的方式来编码实现破碎纸片修复云服务系统,人工狼在每一维空间中的整数位置为该系统在相应云服务候选子集中的编号。例如,一个破碎纸片修复云服务系统的运行实例,其人工狼的对应编码如表5所示:
表5破碎纸片修复云服务系统人工狼编码
(3)适应度函数值计算
根据定义的云服务各个QoS属性值计算方法,计算各属性的QoS值并做归一化处理,针对破碎纸片修复云服务系统,定义其自适应演化的适应度函数如下:
Q(P)=w1T+w2C+w3Av+w4Rel+w5Rep+w6Cor+w7Mor
其中,规定w1=0.15、w2=0.15、w3=0.15、w4=0.15、w5=0.15、w6=0.15、w7=0.1是相应的权重,各个属性的计算公式如下:
T=Max(TIG,TIB,TIP)+Max(TSS,TIS)+Max(TIT,TST)
C=CIG+CIB+CIP+CSS+CIS+CIT+CST
Av=AvIG×AvIB×AvIP×AvSS×AvIS×AvIT×AvST
Rel=RelIG×RelIB×RelIP×RelSS×RelIS×RelIT×RelST
Cor=Max(CorIG,CorIB,CorIP,CorSS,CorIS,CorIT,CorST)
Mor=Max(MorIG,MorIB,MorIP,MorSS,MorIS,MorIT,MorST)
针对云服务的消极属性——时间、费用、CPU占用率和内存占用率,使用下式进行归一化处理:
针对云服务的积极属性——可用性、可靠性和信誉,使用下式进行归一化处理:
其中,qmax-qmin≠0,和表示云服务第i个属性的归一化值。qi表示云服务第 i个QoS属性值,qmax和qmin分别表示该云服务系统所在候选子集中对应QoS属性的最大值和最小值。
(4)利用信息熵初始化狼群
本实例规定初始化狼群的规模N=100,人工狼的位置维数D=7,最大迭代次数Kmax=1000,探狼比例因子a=10,最大游走次数Tmax=50,距离判定因子w=100,步长因子S=100,更新比例因子β=6。
根据前面对信息熵的描述,定义该云服务系统初始狼群的信息熵值H如下:
其中,Pij表示初始人工狼i在d维度的值不同于人工狼j的概率,xid、xjd分别表示为初始人工狼i和人工狼j在d维度的值,xdmax、xdmin分别为狼群第d维的最大值和最小值。
基于信息熵初始化狼群的过程为:首先设定最小临界熵值H0为0.5,然后通过以下公式随机产生第一只人工狼:
xid=xL+rand(0,1)(xdmax-xdmin)
其中,rand(0,1)为在[0,1]范围内分布的随机数,接着通过上式随机产生新人工狼,如果计算出来的信息熵值大于0.5就加入初始种群,否则就抛弃,直到产生了规模为100的种群。
(5)云服务系统的游走
根据适应度函数计算该系统中每条演化路径的适应度值,选择具有最大值的演化路径对应的人工狼为头狼。头狼所在位置对应的云服务系统实例的适应度值为Ylead,然后选择适应度值除头狼外最大的m=10条演化路径作为探狼,这里本案例探狼比例因子a=10。探狼按照方式进行游走行为:探狼i(其中i=1,2,…,10)所在位置对应的云服务系统实例的适应度值为Yi。如果Yi大于头狼的Ylead,则Ylead=Yi,探狼i替代头狼,如果Yi<Ylead,则探狼i进行自主决策,即探狼分别向h个方向搜寻(这里设h=3),搜寻时的移动步长设为stepa=|dmax-dmin|/S=3/100,并记录下移动后的适应度值,然后退回原位置,则探狼i向第p (p=1,2,...,h)个方向移动后在第d维空间的位置表示为
这里步长因子S=100。此时,探狼所在位置对应的云服务系统实例的适应度值为Yip,选择大于当前位置适应度值中最大的方向前进一步,对探狼的位置进行更新,不断重复游走直到某个位置的适应度值大于头狼所在位置的适应度值,或者游走次数T达到最大游走次数Tmax(这里Tmax=50)。
(6)云服务系统的召唤
头狼确定后,发起召唤行为。头狼周围的人工狼都以相对较大的奔袭步长 stepb=2*|dmax-dmin|/S=2*3/100快速接近头狼所在位置,并通过自适应共享因子s动态调整人工狼的奔袭步长,人工狼i经过第k+1次迭代后在第d维的位置为下式所示:
其中,为第k代群体头狼在第d维空间的位置。
如果人工狼i在奔袭的途中某位置对应的云服务系统实例的适应度值Yi>Ylead,则Ylead=Yi,该人工狼转变为头狼后重新发动召唤行为;若Yi<Ylead,则人工狼i继续奔袭直到其与头狼之间的距离小于dnear时转入围攻行为。dnear由下式确定:
这里距离判定因子w为100。
(7)云服务系统的围攻
狼群对猎物的位置进行围攻时,头狼的位置就是猎物的位置,对于第k代狼群,狼群的围攻行为可用下式表示:
其中,为第k代群体头狼在第d维空间中的位置,λ为[-1,1]范围内均匀分布的随机数, stepc为人工狼执行围攻行为时的攻击步长。stepc由下式确定:
stepc=|dmax-dmin|/2S=3/200
如果实施围攻行为后人工狼所在位置对应的云服务系统实例的适应度值大于其原来位置对应的适应度值,则更新此人工狼的位置,否则人工狼位置不变。
(8)更新头狼位置
实施围攻行为后,按“适应度值最大”的头狼产生规则对头狼位置进行更新。
(9).更新狼群
去除适应度值最差的R=10只人工狼,同时按照步骤(4)的信息熵初始化狼群的方法重新产生10只人工狼加入狼群。
(10)终止条件判断
判断是否达到最大迭代次数kmax=1000,若达到则转到步骤(11),否则转到步骤(5)。
(11)输出头狼位置对应的云服务系统实例对应的各个云服务,作为演化后的目标云服务系统。
本发明的实施例公布的是较佳的实施例,但并不局限于此,本领域的普通技术人员,极易根据上述实施例,领会本发明的精神,并做出不同的引申和变化,但只要不脱离本发明的精神,都在本发明的保护范围内。