主权项 |
一种Web服务组合方法,其特征在于,该方法包括以下步骤:1)将服务组合建模为马尔可夫博弈,并初始化系统参数和变量:所述建模的具体过程为:把投放的全部智能体定义为局中人集合,将Web服务的前置和后置条件作为马尔可夫博弈过程的状态空间,把可执行的Web服务定义成动作空间,动作表示为如何将一个状态转换为另一个状态,将得益值定义为实际Web服务质量参数的函数;由此得到一个七元组r=<G,S,S<sub>0</sub>,S<sub>τ</sub>,A,T,R>,G是智能体集合,其中S是状态集,A是联合行为空间,A=A<sub>1</sub>×...×A<sub>i</sub>×...×A<sub>n</sub>,其中A<sub>i</sub>是第i个智能体的可用行为集,n是智能体的总个数,T是状态转移概率函数,T:S×A×S→[0,1],R是所有智能体共有的得益函数,R:S×A→ω,S<sub>0</sub>是开始状态,S<sub>τ</sub>是终止状态;所述初始化系统参数和变量的具体内容为:初始化折扣因子γ,0<γ<1;初始化学习率α,0<α<1;初始化瞬时得益矩阵和长期得益矩阵;初始化迭代次数m为1;2)将开始状态S<sub>0</sub>作为系统当前状态;3)根据玻尔兹曼探索策略来计算系统当前状态s下各个联合行为的被调用概率,得到联合行为的概率分布,然后选择当前状态s下被调用概率值最大的联合行为a<sup>max</sup>,作为当前联合行为,系统开始调用、执行所述当前联合行为,系统当前状态s∈S;4)细化得益函数,更新瞬时得益矩阵:首先根据实际Web服务质量参数,按照下式计算系统当前状态s下各智能体采取对应行为时每个智能体的得益值:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>R</mi><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>Σw</mi><mi>i</mi></msub><mo>×</mo><mfrac><mrow><msubsup><mi>Att</mi><mi>i</mi><mi>s</mi></msubsup><mo>-</mo><msubsup><mi>Att</mi><mi>i</mi><mi>min</mi></msubsup></mrow><mrow><msubsup><mi>Att</mi><mi>i</mi><mi>max</mi></msubsup><mo>-</mo><msubsup><mi>Att</mi><mi>i</mi><mi>min</mi></msubsup></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000951178330000011.GIF" wi="620" he="150" /></maths>其中w<sub>i</sub>是服务质量中第i个属性指标的权重,<img file="FDA0000951178330000012.GIF" wi="131" he="71" />是第i个属性指标的最大值,<img file="FDA0000951178330000013.GIF" wi="125" he="76" />是第i个属性指标的最小值,<img file="FDA0000951178330000014.GIF" wi="93" he="70" />是当前网络下由执行动作反馈的真实观察值;将当前联合行为下所有智能体的得益值求和,即为当前联合行为下的得益值<img file="FDA0000951178330000015.GIF" wi="134" he="62" />用计算得到的当前联合行为下的得益值<img file="FDA0000951178330000021.GIF" wi="103" he="61" />更新瞬时得益矩阵;5)采用Q学习方法,更新长期得益矩阵:根据下式计算在系统当前状态s下各智能体采取对应行为时系统所得到的长期得益值l<sub>i1i2...in</sub><sup>m</sup>(s):l<sub>i1i2...in</sub><sup>m</sup>(s)=(1‑α)·l<sub>i1i2...in</sub><sup>m‑1</sup>(s)+α·(r<sub>i1i2...in</sub>(s)+γ·l<sub>i1i2...in</sub><sup>m‑1</sup>(s′))m为迭代次数,s′是s的下一后继状态;用计算得到的所有联合行为下的长期得益值更新长期得益矩阵;6)待系统执行完毕当前联合行为,并收到反馈后,进入下一后继状态,当所述后继状态为终止状态S<sub>τ</sub>时,进入步骤7),否则返回步骤3);7)判断系统的学习过程是否收敛:观察长期得益矩阵,如果更新得到的长期得益矩阵与上一次迭代过程结束后得到的长期得益矩阵相比,其中所有数据变动幅度均小于ε收敛判断阈值,则认为系统的学习过程已经收敛,并进入步骤8),否则令m=m+1后返回步骤2);8)根据学习结果,生成工作流:从开始状态S<sub>0</sub>开始,按照贪心原则,选取一条从开始状态S<sub>0</sub>到终止状态S<sub>τ</sub>的完整路径,将路径中出现的所有联合行为按其出现的先后顺序排列,然后按照步骤1)所构建七元组中规定的映射关系,将这些联合行为里的各个子行为,替换为七元组里的web服务,生成完整的工作流。 |