本發(fā)明涉及一種利用計(jì)算機(jī)對Web服務(wù)組合的方法,屬于人工智能領(lǐng)域。
背景技術(shù):
Web服務(wù)作為面向服務(wù)的架構(gòu)(Service-Oriented Architecture,SOA)的一種實(shí)現(xiàn)方式,它繼承了SOA的特征如自包含,自描述等特性,通過互聯(lián)網(wǎng)可以被應(yīng)用調(diào)用。如圖1所示,一個(gè)Web服務(wù)的實(shí)現(xiàn)過程:服務(wù)提供者把服務(wù)描述信息發(fā)送到服務(wù)注冊中心進(jìn)行注冊,使?jié)撛谟脩艨梢园l(fā)現(xiàn)這些服務(wù);服務(wù)請求者查找Web服務(wù),通過UDDI把服務(wù)描述和綁定信息寫入注冊表;根據(jù)業(yè)務(wù)需求,服務(wù)請求者,通過網(wǎng)絡(luò)到UDDI查找Web服務(wù),根據(jù)查找的綁定信息定位服務(wù)提供者;服務(wù)請求者,通過綁定信息取得服務(wù)的WSDL描述,綁定、調(diào)用服務(wù)。然而,單個(gè)的服務(wù)是無法滿足用戶的需求,這時(shí)就需要將多個(gè)服務(wù)集成組合起來共同完成用戶需求,服務(wù)組合技術(shù)由此而生。服務(wù)組合作為一種新的軟件復(fù)用技術(shù),通過將互聯(lián)網(wǎng)上的可調(diào)用的服務(wù)進(jìn)行組合,充分利用了已有的軟件資源,提高軟件的開發(fā)效率,同時(shí)降低了軟件開發(fā)成本。
近年來,關(guān)于Web服務(wù)組合方法的研究引起了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。研究人員和工業(yè)機(jī)構(gòu)從各自的角度出發(fā),提出了大量的Web服務(wù)組合技術(shù)。其中基于強(qiáng)化學(xué)習(xí)的服務(wù)組合技術(shù)是重要的組成部分,順序性的強(qiáng)化學(xué)習(xí)問題可以被建模成一個(gè)馬爾可夫決策過程(Markov Decision Process,MDP),繼而通過求解該MDP模型來求得最優(yōu)策略。下面給出基于馬爾可夫決策過程的服務(wù)組合模型的形式化定義:
一個(gè)基于馬爾可夫決策過程的服務(wù)組合可以被定義為一個(gè)六元組,如下式:
MDP-WSC=<S;s0;sr;A(·);P;R>
其中S代表從初始狀態(tài)遷移到終止?fàn)顟B(tài)的過程中所能經(jīng)歷的所有狀態(tài)的集合,該狀態(tài)集合包含初始狀態(tài)和終止?fàn)顟B(tài);s0是初始狀態(tài),表示任何動作還沒有發(fā)生時(shí)的狀態(tài),也即工作流的初始,s0∈S;sr是終止?fàn)顟B(tài),也即工作流的終態(tài),當(dāng)系統(tǒng)到達(dá)終態(tài)時(shí),表明一個(gè)完整的服務(wù)執(zhí)行路徑已經(jīng)形成,可以構(gòu)建一個(gè)完整的組合服務(wù),sr∈S;A(·)代表系統(tǒng)在狀態(tài)s∈S下可以采取的動作的集合,由于每一個(gè)動作和具體的Web服務(wù)存在著映射關(guān)系,A(s)也即為系統(tǒng)在狀態(tài)s下可執(zhí)行的Web服務(wù)的集合;P是狀態(tài)轉(zhuǎn)移函數(shù),P(s′|s;a)表示在狀態(tài)s下執(zhí)行服務(wù)a∈A(s)轉(zhuǎn)移到后繼狀態(tài)s′的概率;R是回報(bào)函數(shù),當(dāng)一個(gè)服務(wù)a∈A(s)被調(diào)用后,環(huán)境從當(dāng)前狀態(tài)s轉(zhuǎn)移到后繼狀態(tài)s′,同時(shí)得到一個(gè)立即回報(bào)值r=R(s′|s;a)。
針對基于MDP模型的服務(wù)組合問題,一種有效的求解方式是利Q-learning來學(xué)習(xí)最優(yōu)策略。下面是Q-learning的更新公式:
Q(s,a)←(1-σ)*Q(s,a)+σ*(r+γ*maxQ(s′,a′))
Q學(xué)習(xí)的目標(biāo)是學(xué)習(xí)在動態(tài)環(huán)境下如何根據(jù)外部評價(jià)信號,如回報(bào)值,來選擇較優(yōu)動作或者最優(yōu)動作,本質(zhì)是一個(gè)動態(tài)決策的學(xué)習(xí)過程。當(dāng)Agent對環(huán)境的知識一點(diǎn)也不了解時(shí),它必須通過反復(fù)試驗(yàn)的方法來學(xué)習(xí),算法的效率不高。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的:為了加快Agent的學(xué)習(xí)速度,提高學(xué)習(xí)效率,減少不必要的探索,本發(fā)明提出一種基于最近探索的啟發(fā)式服務(wù)組合方法,該方法充分利用學(xué)習(xí)過程中的學(xué)習(xí)經(jīng)驗(yàn)來提高學(xué)習(xí)速度,學(xué)習(xí)效率更高。
技術(shù)方案:本發(fā)明采用如下技術(shù)方案:
一種基于最近探索的啟發(fā)式服務(wù)組合方法,包括如下步驟:
(1)將服務(wù)組合問題建模為一個(gè)六元組馬爾可夫決策過程;
(2)應(yīng)用基于Q-learning的啟發(fā)式學(xué)習(xí)方法求解六元組馬爾可夫決策過程,得到最優(yōu)策略;
(3)將最優(yōu)策略映射為web服務(wù)組合的工作流。
具體地,步驟(1)中將服務(wù)組合問題建模為如下六元組馬爾可夫決策過程:
MDP-WSC=<S;s0;sr;A(·);P;R>
其中S代表從初始狀態(tài)遷移到終止?fàn)顟B(tài)的過程中所能經(jīng)歷的所有狀態(tài)的集合;s0是初始狀態(tài),表示任何動作還沒有發(fā)生時(shí)的狀態(tài),s0∈S;sr是終止?fàn)顟B(tài),當(dāng)系統(tǒng)到達(dá)終態(tài)時(shí),表明一個(gè)完整的服務(wù)執(zhí)行路徑已經(jīng)形成,可以構(gòu)建一個(gè)完整的組合服務(wù),sr∈S;A(·)代表系統(tǒng)在狀態(tài)s∈S下可以采取的動作的集合;P是狀態(tài)轉(zhuǎn)移函數(shù);R是獎(jiǎng)勵(lì)函數(shù)。
具體地,步驟(2)應(yīng)用基于Q-learning的啟發(fā)式學(xué)習(xí)方法求解六元組馬爾可夫決策過程,得到最優(yōu)策略,包括如下步驟:
(21)初始化Q-learning中學(xué)習(xí)率σ,折扣率γ,當(dāng)前狀態(tài)s=0,當(dāng)前時(shí)間步長t=0;隨機(jī)選擇一個(gè)服務(wù)a作為當(dāng)前動作;
(22)當(dāng)前時(shí)間步長t不為0時(shí),以概率e應(yīng)用啟發(fā)式策略選擇新的服務(wù)a,以概率1-e隨機(jī)選擇新的服務(wù)a;
(23)執(zhí)行服務(wù)a,記錄在狀態(tài)s下執(zhí)行當(dāng)前服務(wù)a的回報(bào)值r、執(zhí)行次數(shù)c、探索補(bǔ)貼bonus;
(24)按照下式更新Q值:
Q(s,a)←(1-σ)*Q(s,a)+σ*(r+bonus+γ*maxQ(s′,a′)),
其中Q(s,a)表示在狀態(tài)動作對<s,a>下的Q值,σ為學(xué)習(xí)率,r為回報(bào)值,γ為折扣率,bonus為探索補(bǔ)貼,s′為執(zhí)行服務(wù)a后從當(dāng)前狀態(tài)s轉(zhuǎn)移到的后繼狀態(tài),a′為在狀態(tài)s′下選擇的服務(wù),Q(s′,a′)表示在狀態(tài)動作對<s′,a′>下的Q值;
(25)更新當(dāng)前狀態(tài):s=s′,t=t+1;當(dāng)s為終止?fàn)顟B(tài)sr且滿足收斂條件時(shí),強(qiáng)化學(xué)習(xí)結(jié)束,得到最優(yōu)策略;否則轉(zhuǎn)步驟(22)。
具體地,所述步驟(23)中探索補(bǔ)貼bonus的計(jì)算方法為:
其中μ>0,是探索補(bǔ)貼系數(shù);t為執(zhí)行服務(wù)a時(shí)的當(dāng)前時(shí)間步,t′為動作狀態(tài)對<s,a>上次被訪問的時(shí)間步。
具體地,所述步驟(22)中啟發(fā)式策略選擇新的服務(wù)a包括如下步驟:
在(0,1)區(qū)間隨機(jī)產(chǎn)生一個(gè)隨機(jī)數(shù)υ,如果υ>ε,隨機(jī)選擇一個(gè)新的服務(wù)a;如果υ≤ε,選擇使探索策略函數(shù)值最大的服務(wù)作為新的服務(wù)a;所述探索策略函數(shù)Π*(s)如下式:
其中p,q為用來平衡表達(dá)式的大小的系數(shù),其中EX(s′,a′)為記錄在狀態(tài)動作對<s′,a′>下回報(bào)值的矩陣。
優(yōu)選地,步驟(25)中收斂條件為:從初始狀態(tài)到終止?fàn)顟B(tài)累計(jì)Q值的變化小于門限值Qth:|∑Q-∑Q′|<Qth,其中∑Q為本次學(xué)習(xí)過程中從初始狀態(tài)到終止?fàn)顟B(tài)累計(jì)Q值,∑Q′為上次學(xué)習(xí)過程中從初始狀態(tài)到終止?fàn)顟B(tài)累計(jì)Q值。
有益效果:與現(xiàn)有技術(shù)相比,本發(fā)明公開的基于最近探索的啟發(fā)式服務(wù)組合方法具有以下優(yōu)點(diǎn):
1、強(qiáng)化學(xué)習(xí)又稱為增強(qiáng)學(xué)習(xí)、加強(qiáng)學(xué)習(xí)、再勵(lì)學(xué)習(xí)或激勵(lì)學(xué)習(xí),是一種從環(huán)境狀態(tài)到行為映射的學(xué)習(xí),目的是使動作從環(huán)境中獲得的累積回報(bào)值最大。傳統(tǒng)的強(qiáng)化學(xué)習(xí)框架如圖2所示。強(qiáng)化學(xué)習(xí)通過多次試驗(yàn),重新取樣特定狀態(tài)動作對的效用值來學(xué)習(xí)最優(yōu)(或近優(yōu))策略。初始時(shí),大部分的狀態(tài)空間和動作空間都是未知的,為了檢驗(yàn)可選動作的有效性,動作需要根據(jù)某種探索規(guī)則被選擇,因而可能會導(dǎo)致有大量的狀態(tài)動作對需要被探索,這是非常耗時(shí)的。本發(fā)明在探索的過程中利用一些知識對于采取的行動(服務(wù))給予相應(yīng)的補(bǔ)貼,對于最近未被訪問的行動(服務(wù))給予較多的補(bǔ)貼,讓Agent通過該行動(服務(wù))學(xué)習(xí)到一些額外知識或者經(jīng)驗(yàn),加快學(xué)習(xí)速度,更快學(xué)習(xí)到最優(yōu)策略。
2、本發(fā)明公開的方法中探索策略函數(shù)值隨著服務(wù)執(zhí)行次數(shù)c的增大而減小,其含義為當(dāng)一個(gè)動作(服務(wù))被訪問很多次了,那么它被再次訪問的概率就變小了,如此減少盲目的探索,從而加快學(xué)習(xí)速度。
附圖說明
圖1是Web服務(wù)實(shí)現(xiàn)過程;
圖2是傳統(tǒng)強(qiáng)化學(xué)習(xí)框架;
圖3是啟發(fā)式探索的強(qiáng)化學(xué)習(xí)框架;
圖4是本發(fā)明公開的基于最近探索的啟發(fā)式服務(wù)組合方法流程圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施方式,進(jìn)一步闡明本發(fā)明。
一種基于最近探索的啟發(fā)式服務(wù)組合方法,包括如下步驟:
步驟1、將服務(wù)組合問題建模為一個(gè)六元組馬爾可夫決策過程:
MDP-WSC=<S;s0;sr;A(·);P;R>
其中S代表從初始狀態(tài)遷移到終止?fàn)顟B(tài)的過程中所能經(jīng)歷的所有狀態(tài)的集合;s0是初始狀態(tài),表示任何動作還沒有發(fā)生時(shí)的狀態(tài),s0∈S;sr是終止?fàn)顟B(tài),當(dāng)系統(tǒng)到達(dá)終態(tài)時(shí),表明一個(gè)完整的服務(wù)執(zhí)行路徑已經(jīng)形成,可以構(gòu)建一個(gè)完整的組合服務(wù),sr∈S;A(·)代表系統(tǒng)在狀態(tài)s∈S下可以采取的動作的集合;P是狀態(tài)轉(zhuǎn)移函數(shù);R是獎(jiǎng)勵(lì)函數(shù)。
步驟2、應(yīng)用基于Q-learning的啟發(fā)式學(xué)習(xí)方法求解六元組馬爾可夫決策過程,得到最優(yōu)策略,如圖4所示,包括如下步驟:
(21)初始化Q-learning中學(xué)習(xí)率σ,折扣率γ,當(dāng)前狀態(tài)s=0,當(dāng)前時(shí)間步長t=0;隨機(jī)選擇一個(gè)服務(wù)a作為當(dāng)前動作;
(22)當(dāng)前時(shí)間步長t不為0時(shí),以概率e應(yīng)用啟發(fā)式策略選擇新的服務(wù)a,以概率1-e隨機(jī)選擇新的服務(wù)a;
(23)執(zhí)行服務(wù)a,記錄在狀態(tài)s下執(zhí)行當(dāng)前服務(wù)a的回報(bào)值r、執(zhí)行次數(shù)c、探索補(bǔ)貼bonus;執(zhí)行次數(shù)c記錄在矩陣CountAction中;
(24)按照下式更新Q值:
Q(s,a)←(1-σ)*Q(s,a)+σ*(r+bonus+γ*maxQ(s′,a′)),
其中Q(s,a)表示在狀態(tài)動作對<s,a>下的Q值,σ為學(xué)習(xí)率,r為回報(bào)值,γ為折扣率,bonus為探索補(bǔ)貼,s′為執(zhí)行服務(wù)a后從當(dāng)前狀態(tài)s轉(zhuǎn)移到的后繼狀態(tài),a′為在狀態(tài)s′下選擇的服務(wù),Q(s′,a′)表示在狀態(tài)動作對<s′,a′>下的Q值;
探索補(bǔ)貼bonus的計(jì)算方法為:
其中μ>0,是探索補(bǔ)貼系數(shù);t為執(zhí)行服務(wù)a時(shí)的當(dāng)前時(shí)間步,t′為動作狀態(tài)對<s,a>上次被訪問的時(shí)間步。
(25)更新當(dāng)前狀態(tài):s=s′,t=t+1;當(dāng)s為終止?fàn)顟B(tài)sr且滿足收斂條件時(shí),強(qiáng)化學(xué)習(xí)結(jié)束,得到最優(yōu)策略;否則轉(zhuǎn)步驟(22);
啟發(fā)式策略選擇新的服務(wù)a包括如下步驟:在(0,1)區(qū)間隨機(jī)產(chǎn)生一個(gè)隨機(jī)數(shù)υ,如果υ>ε,隨機(jī)選擇一個(gè)新的服務(wù)a;如果υ≤ε,選擇使探索策略函數(shù)值最大的服務(wù)作為新的服務(wù)a;所述探索策略函數(shù)Π*(s)如下式:
其中p,q為用來平衡表達(dá)式的大小的系數(shù),其中EX(s′,a′)為記錄在狀態(tài)動作對<s′,a′>下回報(bào)值的矩陣;
收斂條件為:從初始狀態(tài)到終止?fàn)顟B(tài)累計(jì)Q值的變化小于門限值Qth:|∑Q-∑Q′|<Qth,其中∑Q為本次學(xué)習(xí)過程中從初始狀態(tài)到終止?fàn)顟B(tài)累計(jì)Q值,∑Q′為上次學(xué)習(xí)過程中從初始狀態(tài)到終止?fàn)顟B(tài)累計(jì)Q值。
(3)將最優(yōu)策略映射為web服務(wù)組合的工作流。