本发明涉及一种组合方法,具体涉及一种结合skyline计算与多目标强化学习的服务组合方法,属于多目标强化学习技术领域。
背景技术:
随着软件组件技术的发展,soa成为一种受到广泛关注的软件开发范式,通过软件组件实现企业软件系统,在实现应用集成和b2b行业展现了巨大的潜力。随着网络技术的飞速发展,单个web服务的功能相对来说比较单一、有限,也许已经不能满足人们的需求了,在这种情况下,一个任务需要能调用多个web服务。而web服务组合能使得web上的业务应用无缝地、动态地集成。因此,我们可以对现有的服务进行组合。
尽管服务组合能提高软件组件的复用,可以灵活快速构建新的业务系统和扩展更新已有的业务系统,其所依托的环境特点也影响了服务组合的正确性、可靠性等质量属性。web服务是依托于互联网的,然而互联网是动态不断变化的,任何一个服务提供商发生意外都可能影响组合服务的质量。另外,web服务自身也会进行演化、更新,互联网上随时都可能会有新的web服务发布、失效、删除和更新等。这种场景下,就要求服务组合方案对环境有一定的自适应性,使得服务组合能自主适应环境并构建出有效的组合服务。此外,已存在的web服务组合方法,绝大部分都把qos综合成一个效用函数,用这个效用函数来评估组合服务的质量,而没有考虑这些qos属性是否冲突。比如,好的服务质量(高可靠性、响应时间小、好的声誉等)对应着高的服务价格。这种情况下,把所有服务质量(qos)综合成一个统一的效用函数就显得不那么合理了。且随着用户的需求越来越多样化,单独给用户提供一个组合方案,有时并不能真正满足用户的需求,这时,可以根据用户的需求提供多个候选的组合方案。
强化学习是一种试错学习,对环境有自适应性,近些年来被应用到自适应服务组合场景中。应用规划技术时,要构造完成一个复杂的状态图,规划技术适合于那些相对比较稳定的环境。不同于规划技术,强化学习中的学习者只要知道所处的环境状态和当前学习策略即可,所以强化学习适合解决信息不完备场景下的序列决策问题。强化学习把学习看作试探评价过程,学习agent选择一个动作用于环境,环境接受该动作后状态发生变化,同时产生一个强化信号(奖或惩)反馈给agent。为了得到多的回报值,强化学习agent倾向于它过去已经尝试过并且能产生相应回报的动作。相较于传统强化学习,多目标强化学习要求学习agent得到动作的策略能够同时优化两个或者更多目标。在多目标强化学习中,每个目标有一个相应的回报信号,因此,回报值不再是一个标题值而成为一个向量。
利用多目标强化学习的服务组合方法对现有的、多种多样的服务进行再合成,为组件系统的发展提供了新的思路,且对于用户而言,满足其多样的需求,并为企业软件系统中的组件技术的应用提供支撑。由此看来,本发明具有重要的理论意义与实际应用价值。
技术实现要素:
本发明正是针对现有技术中存在的技术问题,提供一种结合skyline计算与多目标强化学习的服务组合方法,该方法能很好地适应环境的动态变化及满足用户的多样化需求,从而展现其良好的适应性和扩展性。
在此服务组合方法中,对于给定的功能性服务组合需求和完成的任务流程图,功能性需求里面有若干任务节点,每个任务节点对应着一类抽象服务。每个任务节点包含有许多候选服务。服务组合目标是,面对复杂组合工作流、多个抽象服务和大量的候选服务,学习出最优的服务组合或pareto最优服务组合集合,以实现服务组合方案的自适应性、可扩展性和好的计算效率。
为实现上述目的,本发明的技术方案如下,一种结合skyline计算与多目标强化学习的服务组合方法,其特征在于,所述方法包括以下步骤:
1)根据实际应用场景,建立模型;
2)使用skyline计算的算法缩减同质服务空间;
3)利用多目标强化学习的单策略方法和多策略方法,根据算法得出一些列最优解集。
作为本发明的一种改进,所述步骤1)根据实际应用场景,模拟建立模型具体如下,将构建一个机器理解的抽象化的模型,一个web服务描述成计算机可理解的形式,采用iope形式:六元组ws=<id,in,out,pr,e,qos>;其中id表示唯一标识符,in表示输入,out表示输出,pr表示前提条件,e表示效果影响,qos表示web服务的qos属性集合,是个n元向量,而为解决多个目标约束情况下的web服务组合,将一个基于多目标马尔可夫决策过程(wsc-momdp)的web服务组合定义成一个六元组
我们知道基于多目标马尔可夫决策过程的服务组合模型能够充分表达一个业务过程的控制流,且基于wsc-momdp的服务组合模型的解决方案是一个确定性的服务选择策略π,这个策略定义在每个状态选择哪个服务能够得到最优的组合结果,通过策略确定每个状态的具体服务之后,就得到了最优的组合结果或者近优的组合结果的集合。因此,wsc-momdp的解就是通过不断交互找到一个最优策略或者一个近优策略的集合,通过这些策略确定相应的具体服务绑定的工作流。web服务工作流对应着具体的web服务组合方案,而一个wsc-mdp模型中很可能会包括多个可行的服务工作流。在学习过程中,wsc-momdp的状态转移函数t和回报函数r都在不断的更新,面对服务组合环境不断变化的环境(服务的删除、加入、服务不用等),服务组合模型要能够适应这些变化。依据确定性策略,执行工作流中的服务,用户将得到一个回报值或汇报向量,在模型中,找到得到最多累积回报的最优策略。
然后,我们将使用qos属性方法设计回报函数来评价服务。针对我们建立wsc-momdp模型,采用强化学习算法,学习策略进行更新时,依靠学习agent不断与环境进行交互,当学习agent调用某一个服务后,当前环境迁移到后续环境状态,agent同时接收环境给出的反馈信号,环境的反馈信号是根据被调用服务的qos属性来计算的,根据当前状态和得到的反馈信号进行下一步动作的选择,不断重复这个过程直到到达终止状态,具有最大累积回报的服务序列就是最优的组合方案,其中qos的属性值的计算公式如下:
qrest(ws)=te(s)+tt(s)
其中,qa(ws)是可用性,t是一时间段,t(a)是此时间段中web服务正常执行时间;qr(ws)是可靠性,ns是web服务成功执行次数,nt是执行总次数;qp(ws)是调用服务所花费用;qrext(ws)是响应时间,te(s)是服务执行时间,tt(s)是服务提供商与服务请求者之间的网络通信时间;
接下来,我们将计算调用某个服务会得到什么样的回报。由于web服务有多个qos属性,而且各个属性的量度单位和取值范围并不相同,这些不同qos之间没有可比较,不能直接计算qos属性值,且其属性值与服务质量关系也不一样,所以我们会对服务质量进行预处理,规格化不同qos属性,把qos值映射到区间[0,1]之间,然后使用离策略强化学习方法—q学习算法,初始时,状态之间的转移函数t和回报函数r都是不知道的,q学习中,基于立即回报值和q-value值函数,以增量式的方法评估选择动作的q值,q学习方法状态动作对值函数更新如下公式:
其中,s表示状态,a为动作,q(s,a)表示一个矩阵,这个矩阵是强化学习中agent通过经验所学到的,q矩阵的行代表agent的当前状态,q矩阵的列代表了可能到达下一状态的动作。刚开始时agent什么也不知道,矩阵q被初始化为0。α表示学习速率,r表示回报值,γ表示阻尼系数。
作为本发明的一种改进,所述步骤2)使用skyline计算的算法缩减同质服务空间,具体如下,
图2展示了skyline计算中使用的基于分枝界限法缩减服务空间算法流程,首先初始化目前最优解的值sp;再是根据分枝法则,从尚未被洞悉的节点中选择一个节点wstop,并在此节点的下一阶层中分为几个新的节点,计算每一个新分枝出来的节点(子节点wsi)的下限值;对每一节点进行洞悉条件测试,即若节点wstop满足被sp中的点占据,则此节点可洞悉而不再被考虑;而对于子节点wsi,当wsi没有被sp中的点占据时,插入堆中;当wsi被sp中的点占据,把子节点wsi插入sp。最后判断是否仍有尚未被洞悉的节点,如果有,则进行洞悉条件测试,如果已无尚未被洞悉的节点,即堆为空,则演算停止,并得到最优解。
随后,使用skyline计算缩减同质服务空间,把那些被其他服务支配的服务缩减掉,减小探索空间。由于web服务组合工作流复杂,服务数量很大,且很多服务都具有类似的功能性属性,只是非功能性属性qos不同。skyline计算中使用的基于分枝界限法缩减服务空间算法,其中,r树方便用户在任意子空间上求取skyline结果,每一次通过扩展mbr之后求出的skyline结果都立即返回给用户,所以有很好的渐进性。且用户可以自己定义距离公式,这样就能够很好地适应用户个性化的需求。
作为本发明的一种改进,所述步骤3)利用多目标强化学习的单策略方法和多策略方法,根据算法得出一些列最优解集,具体如下,
基于所建立的wsc-momdp的服务组合模型,有两种服务组合解决方法—单策略方法和多策略方法。在基于单策略的web服务组合方法中,对于没有多个冲突目标的情况下,把多个维度的回报向量综合成一个目标函数将多个维度的回报向量综合成一个目标函数,同时把用户的偏好信息表示定量的数学表示,建立一个n维方阵,让用户填写基本的目标之间的相对重要性,然后对这个方阵进行处理,得到用户对各个目标的定量的偏好信息,把重要性分成10级,用户填写各个维度的重要性级别和相对于其他目标的重要性区别,如下式:
其中,有n个目标维度,10级重要性评估标准下,aij表示目标i相对于目标j的重要程度,通过这个矩阵可以计算出web服务各个qos属性之间的相对重要性,并得到定量的权值,一个目标a相对于自己的重要性设置为0,即矩阵对角线所有值都为0,则各个目标之间的重要性可用下式来表示:
最后一次学习过程片段对应的具体服务序列就是用户所要的最优组合方案,其中,α表示学习率,控制学习的速度快慢,当α增大,算法收敛加快,但容易陷入局部最优解,当α减小,可以避免局部最优,缺点是收敛变慢。当学习率α满足特定条件时,q学习能够保证收敛到最优策略。在选择合适的学习速率α时,根据经验,可以按以下开始试验α的值,α初始值为0.001,不合预期则乘以3倍用0.003代替,不合预期再用0.01替代,如此循环直至找到最合适。其中最大的那个α值,或者一个比最大值略小一些的α值就是我们期望的最终α值(历史经验表明设定为0.6比较合适)。在基于多策略的web服务组合方法中,最终可以学习得到一组pareto最优解集。在这种方法中,我们引入一个凸包运算符,在调用一个服务之后会获得一个回报向量q(s,a),在状态s调用服务a之后,得到所有可能q值向量的一个凸包,
其中,第一个是凸包的平移和缩放操作,另一个是求和操作。u和q分别是凸包u和v中的向量。然后利用如下公式得到
s←s'
其中,s表示状态,a表示服务,
相对于现有技术,本发明对多目标强化学习和skyline计算开展研究,从广义上来说,多目标强化学习包括多agent强化学习和用于求解多目标序列决策问题的单agent强化学习。在多目标强化学习中,每个目标有一个对应的汇报信号,其回报值是一个向量,如果多个目标存在冲突,那么就权衡着优化其中的一些目标。优化多目标有两种求解策略,求解pareto最优解集或是综合多个目标成为单目标策略。根据获得的解的数量,有单策略方法和多策略方法。单策略方法侧重于怎样表达和决定偏好信息,它更多地为了优化单目标马尔可夫决策过程(md-p),使用最多的是q-learning算法。多策略方法是找出近似pareto最优解集合,它不仅使用q-learning技术,且与多agent强化学习的社会性结合起来,表现出agent之间的关系。skyline计算的目的是从多维度数据对象集合中抽取没有被其他数据对象支配的一个数据对象的集合。从直观上看,计算skyline最简单直接的方法是所有数据点互相比较,但是这样的话效率太低。而组织节点和过滤数据是决定分布式skyline计算的关键,主要有以下几种解法,排序过滤算法、分治法、位图索引、最近邻和分支界限法(bbs)等。其中bbs是一个正确公平的算法,能很好地适应用户需求。本发明将建立一个抽象化的模型,并根据这个模型,把相应的web服务组合起来,由学习agent依据一个策略选择每个任务对应的具体服务,这些具体服务串联起来形成一个满足用户需求的组合web服务。
附图说明
图1是基于多目标马尔可夫决策过程的web服务组合模型(wsc-momdp);
图2是基于分枝界限算法的服务空间缩减算法;
图3是基于wsc-momdp模型的服务组合单策略算法;
图4是基于wsc-momdp模型的服务组合多策略算法。
具体实施方式:
首先我们将构建一个机器可以理解的抽象化的模型。一个web服务可描述成计算机可理解的形式,采用iope形式:六元组ws=<id,in,out,pr,e,qos>。其中id表示唯一标识符,in表示输入,out表示输出,pr表示前提条件,e表示效果影响,qos表示web服务的qos属性集合,是个n元向量。而为解决多个目标约束情况下的web服务组合,将一个基于多目标马尔可夫决策过程(wsc-momdp)的web服务组合定义成一个六元组
我们知道基于多目标马尔可夫决策过程的服务组合模型能够充分表达一个业务过程的控制流,且基于wsc-momdp的服务组合模型的解决方案是一个确定性的服务选择策略π,这个策略定义在每个状态选择哪个服务能够得到最优的组合结果,通过策略确定每个状态的具体服务之后,就得到了最优的组合结果或者近优的组合结果的集合。因此,wsc-momdp的解就是通过不断交互找到一个最优策略或者一个近优策略的集合,通过这些策略确定相应的具体服务绑定的工作流。web服务工作流对应着具体的web服务组合方案,而一个wsc-mdp模型中很可能会包括多个可行的服务工作流。图1展示了一个基于wsc-momdp模型的工作流。图中有两类结点:空心结点和实心结点;空心结点代表环境状态结点,实心结点代表当前状态下可调用的抽象服务类。在学习过程中,wsc-momdp的状态转移函数t和回报函数r都在不断的更新,面对服务组合环境不断变化的环境(服务的删除、加入、服务不用等),服务组合模型要能够适应这些变化。依据确定性策略,执行工作流中的服务,用户将得到一个回报值或汇报向量,在模型中,找到得到最多累积回报的最优策略。
然后,我们将使用qos属性方法设计回报函数来评价服务。针对我们建立wsc-momdp模型,采用强化学习算法,学习策略进行更新时,依靠学习agent不断与环境进行交互。当学习agent调用某一个服务后,当前环境迁移到后续环境状态,agent同时接收环境给出的反馈信号。环境的反馈信号是根据被调用服务的qos属性来计算的,根据当前状态和得到的反馈信号进行下一步动作的选择,不断重复这个过程直到到达终止状态,具有最大累积回报的服务序列就是最优的组合方案。其中qos的属性值的计算公式如下:
qrest(ws)=te(s)+tt(s)
其中,qa(ws)是可用性,t是一时间段,t(a)是此时间段中web服务正常执行时间;qr(ws)是可靠性,ns是web服务成功执行次数,nt是执行总次数;qp(ws)是调用服务所花费用;qrext(ws)是响应时间,te(s)是服务执行时间,tt(s)是服务提供商与服务请求者之间的网络通信时间。
接下来,我们将计算调用某个服务会得到什么样的回报。由于web服务有多个qos属性,而且各个属性的量度单位和取值范围并不相同,这些不同qos之间没有可比较,不能直接计算qos属性值,且其属性值与服务质量关系也不一样,所以我们会对服务质量进行预处理,规格化不同qos属性,把qos值映射到区间[0,1]之间。然后使用离策略强化学习方法—q学习算法,初始时,状态之间的转移函数t和回报函数r都是不知道的,q学习中,基于立即回报值和q-value值函数,以增量式的方法评估选择动作的q值。q学习方法状态动作对值函数更新如下公式:
随后,使用skyline计算缩减同质服务空间,把那些被其他服务支配的服务缩减掉,减小探索空间。由于web服务组合工作流复杂,服务数量很大,且很多服务都具有类似的功能性属性,只是非功能性属性qos不同。图2展示了skyline计算中使用的基于分枝界限法缩减服务空间算法流程,其中,r树方便用户在任意子空间上求取skyline结果,每一次通过扩展mbr之后求出的skyline结果都立即返回给用户,所以有很好的渐进性。且用户可以自己定义距离公式,这样就能够很好地适应用户个性化的需求。
最后,基于所建立的wsc-momdp的服务组合模型,有两种服务组合解决方法—单策略方法和多策略方法。在基于单策略的web服务组合方法中,对于没有多个冲突目标的情况下,把多个维度的回报向量综合成一个目标函数将多个维度的回报向量综合成一个目标函数,同时把用户的偏好信息表示定量的数学表示,建立一个n维方阵,让用户填写基本的目标之间的相对重要性,然后对这个方阵进行处理,可以得到用户对各个目标的定量的偏好信息。我们把重要性分成10级,用户填写各个维度的重要性级别和相对于其他目标的重要性区别,如下式:
其中,有n个目标维度,10级重要性评估标准下,aij表示目标i相对于目标j的重要程度。通过这个矩阵可以计算出web服务各个qos属性之间的相对重要性,并得到定量的权值。一个目标a相对于自己的重要性设置为0,即矩阵对角线所有值都为0。则各个目标之间的重要性可用下式来表示:
图3是基于wsc-momdp模型的服务组合单策略求解算法的流程,其中学习过程要经过很多个片段,算法才能最终收敛到最优或近优的结果,这时服务组合就已经结束了。最后一次学习过程片段对应的具体服务序列就是用户所要的最优组合方案。其中,α表示学习率,控制学习的速度快慢,当α增大,算法收敛加快,但容易陷入局部最优解。当α减小,可以避免局部最优,缺点是收敛变慢。当学习率α满足特定条件时,q学习能够保证收敛到最优策略。在基于多策略的web服务组合方法中,最终可以学习得到一组pareto最优解集。在这种方法中,我们引入一个凸包运算符,在调用一个服务之后会获得一个回报向量q(s,a),在状态s调用服务a之后,得到所有可能q值向量的一个凸包,
其中,第一个是凸包的平移和缩放操作,另一个是求和操作。u和q分别是凸包u和v中的向量,hull表示包。然后利用如下公式得到
s←s'
其中,s表示状态,a表示服务,
通过以上描述可以看出,本发明所提出的利用多目标强化学习,并结合skyline计算进行服务组合的方法,通过对多个抽象服务和大量的候选服务进行分析,构建基于多目标马尔可夫决策过程的web服务组合模型,利用skyline计算缩减组合空间降低复杂度,应用多目标强化学习得出了最优的服务组合或pareto最优服务组合集合。由此可见,这一发明所提出的方法非常适用于环境动态变化、大量功能性属性相同的web服务涌现的情况下的服务组合。
需要说明的是上述实施例,并非用来限定本发明的保护范围,在上述技术方案的基础上所作出的等同变换或替代均落入本发明权利要求所保护的范围。