一种基于动态飞行蚁群算法的Web服务组合优化方法

文档序号:32242794发布日期:2022-11-18 22:51阅读:198来源:国知局
一种基于动态飞行蚁群算法的Web服务组合优化方法
一种基于动态飞行蚁群算法的web服务组合优化方法
技术领域
1.本发明涉及web服务组合技术领域,特别是一种基于动态飞行蚁群算法的 web服务组合优化方法。


背景技术:

2.互联网技术的不断革新使得基于互联网的应用开发中存在了大量的web服务,web服务已经发展成为一个分布式的应用资源。虽然数量非常庞大,但在这些服务中有大量功能相似甚至相同的web服务,造成了资源的严重浪费,并且客户的需求还时常得不到满足,这就需要研究人员将这些小颗粒度的web服务组合起来形成一个大颗粒度的、功能更加复杂强大的组合服务。
3.web服务组合的主要目的就是把一定数量功能简单的web服务,按照某种逻辑组织起来,从而形成一个新的增值web服务,相比传统按需开发的模式,这无疑减少了成本,提高了资源利用率和效率。除此之外,对于web服务供应商来说,提供具有qos保证的web服务无疑是企业成功的关键,对于用户来说,有 qos保证的web服务也是选择的重要依据。qos描述了一个服务满足客户需求的能力,基本的指标包括响应时间、成本、有效性和可靠性等,但是qos评价指标仅仅反映了服务技术方面的特性,忽略了用户的主观体验,所以不能够反映用户对服务的满意程度。体验质量qoe(quality of experience)就是在这种条件下被提出的,qoe评价指标使用用户满意程度作为评价标准,结合了网络性能、业务质量、主观评测等影响因素,可以直接反映用户对服务的满意程度。
4.web服务组合问题解的数量是指数级的,这使得寻找最优解的问题成为一个np难题,目前,主流的算法是智能优化算法。蚁群算法是智能优化算法中的一种,该算法引入正反馈机制,具有较强的鲁棒性、优良的分布式计算机制等优点,但是由于蚂蚁在已探索的路径上积累了大量的信息素,降低了对其他路径的探索机会,搜索过程易陷入局部最优,飞行蚁群算法改善了这一问题,但由于每次迭代都要计算相邻节点,耗费了大量的时间。


技术实现要素:

5.本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本技术的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
6.鉴于上述和/或现有的web服务组合优化方法中存在的问题,提出了本发明。
7.因此,本发明所要解决的问题在于如何提供一种基于动态飞行蚁群算法的 web服务组合优化方法。
8.为解决上述技术问题,本发明提供如下技术方案:一种基于动态飞行蚁群算法的web服务组合优化方法,其包括,当用户向系统提出服务请求时,系统对服务请求进行任务分解;建立web服务组合模型,模糊专家系统通过服务质量qos参数求出体验质量qoe的值,以体验质量qoe为评价指标建立web服务组合模型的适应度函数f
fitness
(qoe);得到对应于
web服务组合模型的适应度函数 f
fitness
(qoe)的值,并以求得的适应度函数的值作为优化目标;采用动态飞行蚁群算法对web服务组合进行优化,得到满足用户需要的服务组合的最优结果。
9.作为本发明所述基于动态飞行蚁群算法的web服务组合优化方法的一种优选方案,其中:所述模糊专家系统根据隶属函数和推理规则预测出服务质量qoe 的取值。
10.作为本发明所述基于动态飞行蚁群算法的web服务组合优化方法的一种优选方案,其中:所述动态飞行蚁群算法,其步骤如下:
11.(1)设置初始化参数并在初始位置随机初始化m只蚂蚁;
12.(2)每只蚂蚁根据状态转移概率公式,使用轮盘调度方法选择下一个服务;
13.(3)每只蚂蚁进行本地信息素更新;
14.(4)判断所有蚂蚁是否选择完所有服务,若是,计算每只蚂蚁产生解的适应度值;否则返回步骤(2);
15.(5)根据解的适应度值选择本次迭代的最优解和最佳蚂蚁,最佳蚂蚁进行全局信息素更新;
16.(6)判断解决方案是否有改进,若是,产生ns个相邻节点;否则进入步骤 (9);
17.(7)计算中间节点到ns个相邻节点的距离;
18.(8)向ns个相邻节点注入信息素;
19.(9)判断是否满足终止条件,若是,输出最优解,否则进入步骤(2)。
20.作为本发明所述基于动态飞行蚁群算法的web服务组合优化方法的一种优选方案,其中:步骤(1)中,所述初始化参数具体包括:信息启发式因子α,期望启发式因子β,信息素挥发系数ρ,初始化信息素值τ0,相邻节点数ns,最大迭代次数t
max
,任务集t=[t1,t2,...,tn],每个任务ti包含一个web服务集 cws=[cws1,cws2,...,cwsm]。
[0021]
作为本发明所述基于动态飞行蚁群算法的web服务组合优化方法的一种优选方案,其中:步骤(2)中,所述状态转移概率公式如下:
[0022][0023]
式中,表示在t时刻第k只蚂蚁由服务i移动到服务j的概率,allowedk表示在t时刻第k只蚂蚁接下来可以选择的服务,α表示信息启发式因子,β表示期望启发式因子,η
ij
(t)表示由服务i移动到服务j的期望程度,根据轮盘赌方法,蚂蚁将选择移动到概率较大的服务。
[0024]
作为本发明所述基于动态飞行蚁群算法的web服务组合优化方法的一种优选方案,其中:步骤(3)中,所述本地信息素更新公式如下:
[0025]
τ
ij
(t+1)=(1-ρ)τ
ij
(t)+ρτ0[0026]
式中,ρ表示信息素挥发系数,τ0表示迭代开始时信息素的初始值;
[0027]
步骤(5)中,所述全局信息素更新的计算公式如下:
[0028]
τ
ij
(t+1)=(1-ρ)τ
ij
(t)+ρδτ
ij
(t)
[0029][0030]
式中,ρ表示信息素挥发系数,为了防止信息素无穷的累计,一般ρ的取值范围为[0,1),δτ
ij
(t)表示执行完一次寻优后线路(i,j)上的信息素增量,初始化时δτ
ij
(t)=0;l
gb
(t)表示本次迭代中最优路径的路径长度,t表示当前迭代次数。
[0031]
作为本发明所述基于动态飞行蚁群算法的web服务组合优化方法的一种优选方案,其中:步骤(6)中,当前迭代产生的最优解较之前最优解有改进时,该迭代过程的最佳蚂蚁发生飞行,相邻节点ns的数量的计算公式如下:
[0032][0033]
式中,l
gb
(t)表示本次迭代中最优路径的长度,l
kl
(t)表示本次迭代中第k只蚂蚁的路径长度,n表示任务集的数量,t表示当前迭代次数,t
max
表示最大迭代次数。相邻节点的数量取决于两方面:一方面是解的质量,在当前次迭代中,如果最优路径略短于其他路径,即最优解略优于其他解,则相邻节点数目应较大,鼓励在以后的迭代中进行探索,如果最优路径比其他路径短得多,即最优解比其他解好得多,则相邻节点数目应较小,鼓励在以后的迭代中进行开发;另一方面是迭代次数,相邻节点的数量随迭代次数的增大而减小。
[0034]
作为本发明所述基于动态飞行蚁群算法的web服务组合优化方法的一种优选方案,其中:步骤(7)中,相邻节点到中间节点的距离的计算公式如下:
[0035][0036]
式中,c表示成本,rt表示响应时间,a表示可用性,r表示可靠性,x表示在任务ti中由最佳蚂蚁获得的最佳web服务,y表示任务ti中与x相邻的web 服务之一。
[0037]
作为本发明所述基于动态飞行蚁群算法的web服务组合优化方法的一种优选方案,其中:步骤(8)中,向相邻节点注入信息素量的计算公式如下:
[0038][0039][0040]
式中,τ
ij
(t+1)是最佳路径上全局更新的信息素;d0(η
jl
)是同一任务中web服务j与其邻接web服务l距离的归一化值。一个相邻节点接收到的信息素数量与它与最优路径上的节点之间的距离成反比,这使得蚂蚁更有可能在未来的迭代中探索这些节点,从而鼓励探索。
[0041]
作为本发明所述基于动态飞行蚁群算法的web服务组合优化方法的一种优选方案,其中:步骤(9)中,所述终止条件为达到最大迭代次数或最优解的适应度函数值满足误
差条件。
[0042]
本发明有益效果为:
[0043]
1.与主流算法的蚁群算法和飞行蚁群算法相比,动态飞行蚁群算法将飞行蚂蚁调整为动态的,限制蚂蚁的飞行过程,减少搜索相邻节点的执行时间,加快飞行蚁群算法的收敛速度;
[0044]
2.接收信息素的相邻节点的数量取决于解决方案的质量和迭代次数,可以有效地平衡探索和开发,避免陷入局部最优,提高算法的性能;
[0045]
3.能够适应不同规模下的服务组合问题,具有较强的鲁棒性。
附图说明
[0046]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:
[0047]
图1为本发明的整体框图。
[0048]
图2为web服务组合的模型图。
[0049]
图3为动态飞行蚁群算法的流程示意图。
[0050]
图4为蚁群算法(aco)、飞行蚁群算法(faco)、动态飞行蚁群算法 (dfaco)的收敛性对比。
[0051]
图5为蚁群算法(aco)、飞行蚁群算法(faco)、动态飞行蚁群算法 (dfaco)的稳定性对比。
[0052]
图6为蚁群算法(aco)、飞行蚁群算法(faco)、动态飞行蚁群算法 (dfaco)的有效性对比。
[0053]
图7为蚁群算法(aco)、飞行蚁群算法(faco)、动态飞行蚁群算法 (dfaco)的执行时间对比。
具体实施方式
[0054]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明。
[0055]
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
[0056]
其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
[0057]
实施例1
[0058]
参照图1~3,为本发明第一个实施例,该实施例提供了一种基于动态飞行蚁群算法的web服务组合优化方法,针对最终用户参与者进行主观测试,并建立一个将网络qos参数与主观体验质量qoe相关联的学习集,利用这种相关性建立模糊专家系统的网络体验质
量评估的隶属函数和推理规则,通过隶属函数和推理规则预测出qoe的取值。
[0059]
应说明的是,web服务的qoe评估系统根据模糊逻辑确立了隶属函数和推理规则。模糊专家系统可以根据隶属函数和推理规则对web服务的qoe进行评估。在确定隶属函数和推理规则的前提下,通过qos参数可以求出qoe的值,从而对服务体验质量进行评估。模糊专家系统的本质是在系统中引入模糊理论和模糊逻辑,使用模糊分析法分析不确定性问题的一种系统。web服务qos指标主要是用来反映该web服务的质量高低,指标有成本、响应时间、可靠性、可用性等。隶属函数是研究者根据所观测主观数据集设计的,隶属函数的取值大小直接反映qos参数值属于qoe分数的程度,通常采用概率分布函数来表示隶属函数。每个qos参数对应不同的概率分布函数,用概率分布函数除以其峰值便得到了模糊集。推理规则可以从主观数据集中推导出来。粗糙集是一个经典数据挖掘技术,将粗糙集理论应用于主观数据集上,以主观数据集的形式表示一个条件属性集和一个决策属性集,并通过离散化算法对其进行处理。
[0060]
如图1~2所示,具体包括以下步骤:
[0061]
s1:当用户向系统提出服务请求时,系统对服务请求分解为各个子服务;
[0062]
s2:建立web服务组合模型,以体验质量qoe为评价指标建立web服务组合模型的适应度函数f
fitness
(qoe);模糊专家系统通过服务质量qos参数求出体验质量qoe的值,从而得到对应于服务组合模型的适应度函数f
fitness
(qoe)的值,并以求得的适应度函数的值作为优化目标;其中,web服务组合模型的适应度函数的计算公式为:
[0063][0064]
式中,n为服务的数量;qoei表示第i个服务的体验质量。
[0065]
应说明的是,模糊专家系统根据隶属函数和推理规则预测出服务质量qoe 的取值。
[0066]
s3:采用动态飞行蚁群算法对web服务进行组合优化,得到满足用户需要的服务组合的最优结果。
[0067]
应说明的是,s3中的动态飞行蚁群算法如图3所示,具体包括以下步骤:
[0068]
(1)设置初始化参数并在任务t1上随机初始化只蚂蚁,初始化参数具体包括:信息启发式因子α,期望启发式因子β,信息素挥发系数ρ,初始化信息素值τ0,相邻节点数ns,最大迭代次数t
max
,任务集t=[t1,t2,...,tn],每个任务ti包含一个web服务集cws=[cws1,cws2,...,cwsm]。
[0069]
(2)每只蚂蚁根据状态转移概率公式,使用轮盘调度方法选择下一个web 服务,状态转移概率公式如下:
[0070][0071]
式中,表示在t时刻第k只蚂蚁由服务i移动到服务j的概率,allowedk表示在t时刻第k只蚂蚁接下来可以选择的服务,α表示信息启发式因子,β表示期望启发式因子,η
ij
(t)表示由服务i移动到服务j的期望程度,根据轮盘赌方法,蚂蚁将选择移动到概率较大的服务。
[0072]
(3)每只蚂蚁进行本地信息素更新,本地信息素更新公式如下:
[0073]
τ
ij
(t+1)=(1-ρ)τ
ij
(t)+ρτ0[0074]
式中,ρ表示信息素挥发系数,τ0表示迭代开始时信息素的初始值。
[0075]
(4)判断所有蚂蚁是否选择完所有服务,若是,计算每只蚂蚁产生解的适应度值;否则返回步骤(2);
[0076]
(5)根据解的适应度值选择本次迭代的最优解和最佳蚂蚁,进行路径上的全局信息素更新,全局信息素更新公式如下:
[0077]
τ
ij
(t+1)=(1-ρ)τ
ij
(t)+ρδτ
ij
(t)
[0078][0079]
式中,ρ表示信息素挥发系数,为了防止信息素无穷的累计,一般ρ的取值范围为[0,1),δτ
ij
(t)表示执行完一次寻优后线路(i,j)上的信息素增量,初始化时δτ
ij
(t)=0;l
gb
(t)表示本次迭代中最优路径的路径长度,t表示当前迭代次数。
[0080]
(6)引入一个自适应标志来管理飞行过程,该标志跟踪解决方案的增强,若当前迭代产生的最优解相较于之前迭代产生的最优解有改进时,该迭代过程的最佳蚂蚁发生飞行,产生ns个相邻节点,否则进入步骤(9);
[0081]
其中,相邻节点ns的数量的计算公式如下:
[0082][0083]
式中,l
gb
(t)表示本次迭代中最优路径的长度,l
kl
(t)表示本次迭代中第k只蚂蚁的路径长度,n表示任务集的数量,t表示当前迭代次数,t
max
表示最大迭代次数。
[0084]
相邻节点的数量取决于两方面:一方面是解的质量,在当前次迭代中,如果最优路径略短于其他路径,即最优解略优于其他解,则相邻节点数目应较大,鼓励在以后的迭代中进行探索,如果最优路径比其他路径短得多,即最优解比其他解好得多,则相邻节点数目应较小,鼓励在以后的迭代中进行开发;另一方面是迭代次数,相邻节点的数量随迭代次数的增大而减小。
[0085]
(7)相邻节点到中间节点的距离d的计算公式如下:
[0086][0087]
式中,c表示成本,rt表示响应时间,a表示可用性,r表示可靠性,x表示在任务ti中由最佳蚂蚁获得的最佳web服务,y表示任务ti中与x相邻的web 服务之一。
[0088]
(8)向ns个相邻节点注入信息素,相邻web服务得到的信息素量和它们与最佳服务的距离成反比,这使得这些节点在未来的迭代中有更大的概率被探索,信息素量的计算公式如下:
[0089][0090][0091]
式中,τ
ij
(t+1)是最佳路径上全局更新的信息素;d0(η
jl
)是同一任务中web服务j与其邻接web服务l距离的归一化值。一个相邻节点接收到的信息素数量与它与最优路径上的节点之间的距离成反比,这使得蚂蚁更有可能在未来的迭代中探索这些节点,从而鼓励探索。
[0092]
(9)终止检验,求出本次迭代中最佳蚂蚁获取的最优解的服务组合适应度函数值f
fitness
(qoe),判断是否满足终止条件,终止条件为达到最大迭代次数或最优解的适应度函数值f
fitness
(qoe)满足误差条件;若满足条件,则输出最优解;否则转步骤(2)。
[0093]
本发明的优化方法根据用户的体验质量,采用动态飞行蚁群优化算法,相比于主流算法的蚁群算法和飞行蚁群算法,可以快速得到符合用户需求的服务组合,并且将飞行蚂蚁调整为动态的,限制蚂蚁的飞行过程,可以减少搜索相邻节点的执行时间,加快飞行蚁群算法的收敛速度;将接受信息素的相邻节点数量根据解决方案的质量和迭代次数调整为动态的,可以有效地平衡探索和开发,避免陷入局部最优,提高算法的性能;并且适应不同规模下的服务组合问题,具有较强的鲁棒性。
[0094]
实施例2
[0095]
参照图4~7,为本发明的一个实施例,提供了一种基于动态飞行蚁群算法的web服务组合优化方法,为了验证本发明的有益效果,通过仿真实验进行科学论证。
[0096]
由图4,在迭代次数从10次增加到120次时,动态飞行蚁群算法的平均适应度值一直高于蚁群算法和飞行蚁群算法,意味着动态飞行蚁群算法的解决方案一直是最优的。在迭代到80次时,动态飞行蚁群算法趋于平稳,而此时蚁群算法和飞行蚁群算法还在变化。可以得出,动态飞行蚁群算法较蚁群算法和飞行蚁群算法可以更快地找到最优解,且最优解优于其他两种。
[0097]
图5分别是3种算法寻优10次结果的标准差,由图5可以看出,动态飞行蚁群算法的标准差小于蚁群算法和飞行蚁群算法,意味着动态飞行蚁群算法的稳定性更好。
[0098]
图6分别是3种算法的适应度值,即代表3种算法的最优解,由图6可以看出动态飞行蚁群算法的最优解优于蚁群算法和飞行蚁群算法。
[0099]
图7分别是3种算法的平均执行时间,可以看出动态飞行蚁群算法的执行时间介于蚁群算法和飞行蚁群算法之间,因为飞行蚁群算法在每次迭代中都会发生飞行,耗费了大量时间,而动态飞行蚁群算法只有在当前迭代得到的最优解优于之前的最优解时才会发生飞行,从而减少了执行时间,但仍然比蚁群算法的时间更长。
[0100]
应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1