李 豹
(中國(guó)人民銀行蕪湖市中心支行,安徽蕪湖 241000)
目前,多Agent學(xué)習(xí)已成為人工智能領(lǐng)域的熱點(diǎn),大多數(shù)研究工作是基在于Markov對(duì)策(Markov games)理論框架下研究.和單Agent學(xué)習(xí)不同,多Agent學(xué)習(xí)在Agent選擇動(dòng)作或行為時(shí),需要考慮所有Agent值函數(shù)的某種平衡解(equilibrium Learners),因此在本質(zhì)上,Markov對(duì)策可看成是將馬爾科夫決策過(guò)程(MDPs)從單Agent擴(kuò)展到多Agent領(lǐng)域.其算法成果包括Minimax-Q學(xué)習(xí)算法和Friend-or-Foe-Q(FFQ)學(xué)習(xí)算法[1-2]、Nash Q學(xué)習(xí)算法[3]、CE-Q學(xué)習(xí)算法[4]等.在實(shí)際中,大多數(shù)多Agent系統(tǒng),由于系統(tǒng)本身自有的特點(diǎn),在多Agent學(xué)習(xí)時(shí),其狀態(tài)空間和行動(dòng)集合往往特別巨大.同時(shí),多Agent之間行為預(yù)測(cè)也會(huì)擴(kuò)大空間需求,為此,需要研究逼近的方法來(lái)降低空間需求.使用神經(jīng)元?jiǎng)討B(tài)規(guī)劃(NDP)理論來(lái)逐步逼近求解取得了重要的理論和應(yīng)用成果[5-8].
Bertsekas等在1997年提出了一個(gè)仿真優(yōu)化Rollout算法[9-10].它有兩個(gè)優(yōu)點(diǎn):一是Rollout算法新策略即能通過(guò)離線仿真也可通過(guò)在線計(jì)算得到,并且比TD學(xué)習(xí)和Q學(xué)習(xí)優(yōu)化波動(dòng)小.二是rollout算法有較強(qiáng)的并行性,更容易在多核系統(tǒng)或計(jì)算機(jī)集群上并行求解.從這兩點(diǎn)來(lái),rollout算法更具有實(shí)際可操作性.文獻(xiàn)[11-12]發(fā)展了MDP性能勢(shì)的相關(guān)理論,為MDP性能分析和優(yōu)化提供了新的理論框架,產(chǎn)生許多基于理論計(jì)算或仿真的優(yōu)化算法[13-14],性能勢(shì)既能通過(guò)泊松方程求解得到,也能通過(guò)一條樣本軌道仿真學(xué)習(xí)得到,它因而能和Rollout算法很好地結(jié)合.
定義1 Markov對(duì)策.Markov對(duì)策(MG)通常有5元組構(gòu)成.其中n表示多個(gè)Agent的數(shù)量.X表示Agent的狀態(tài)集合.Ai表示Agent的行動(dòng)集合.P表示Agent的狀態(tài)轉(zhuǎn)移概率函數(shù).fi表示Agenti的立即報(bào)酬代價(jià)函數(shù)X×A→f.
在單Agent MDPs中,時(shí)間t下,Q學(xué)習(xí)更新公式為
其中,αt為學(xué)習(xí)步長(zhǎng),可為常數(shù)或衰減步長(zhǎng),γ為折扣因子.
由于單Agent無(wú)需考慮與其他Agent通信,其本質(zhì)上就是經(jīng)典的馬爾科夫決策過(guò)程.而多Agent需要所有Agent互相協(xié)作完成整個(gè)問(wèn)題的求解,多Agent學(xué)習(xí)后Q值更新公式為
∈A定義為Agenti可選的行動(dòng)集合,A為所有Agent的聯(lián)合行動(dòng)空間,A=A1×A2×…×An.定義為Agenti在狀態(tài)中選擇某種Nash平衡下的值函數(shù),其算法有Minimax-Q、FFQ、Nash-Q及CE-Q學(xué)習(xí)等.
定義2 性能勢(shì).性能勢(shì)理論為MDP的優(yōu)化提供了一個(gè)統(tǒng)一的框架,運(yùn)用性能勢(shì)理論,從泊松方程入手,可以在較少的假設(shè)條件下建立起MDP基于性能勢(shì)的最優(yōu)性原理和最優(yōu)性方程,且容易證明其最優(yōu)解的存在性定理.另一方面性能勢(shì)也可以定義在一條樣本軌道上,在系統(tǒng)模型未知的問(wèn)題中可以建立基于樣本軌道的仿真和在線優(yōu)化算法.文獻(xiàn)[12]中給出了性能勢(shì)理論,Agenti在狀態(tài)x下的性能勢(shì)為
在單Agent的Q學(xué)習(xí)算法中,更新Q值原則是按照最優(yōu)行動(dòng)集合時(shí)的折扣累計(jì)代價(jià)值,而Rollout算法是建立一個(gè)初始策略v0,通過(guò)rollout產(chǎn)生更新策略v1,更新策略比初始策略更能接近Nash最優(yōu)平衡解.文獻(xiàn)[6]中,在性能勢(shì)理論框架下給出了rollout算法.基于此,Rollout算法Q值更新公式為
將rollout算法推廣到多Agent學(xué)習(xí)中得到如下算法1.
算法1 Multi-Agent rollout algorithms for Agenti
Step1:初始策略v0,精度ε;Step2:對(duì)于Agenti,由初始策略v0仿真學(xué)習(xí)得到性能勢(shì)和平均代價(jià)對(duì)于狀態(tài)x∈X,隨機(jī)選擇一個(gè)行動(dòng)a∈Ai,通過(guò)狀態(tài)轉(zhuǎn)移概率仿真下一個(gè)狀態(tài)x′,計(jì)算求得狀態(tài)x所有行動(dòng)a的按下式計(jì)算
作為狀態(tài)x的更新行動(dòng),這樣構(gòu)成新策略v1;Step4:如果達(dá)到收斂條件,算法結(jié)束;否則令v0=v1,轉(zhuǎn)step2.v1(x)表示在x狀態(tài)在所有Agent的Nash平衡解下對(duì)應(yīng)的更新策略,Nash平衡解可利用多AgentQ學(xué)習(xí)得到,例如使用極小極大學(xué)習(xí)的計(jì)算公式為
算法1中,由v0得到的性能勢(shì)gv0結(jié)果,需要建立狀態(tài)與性能勢(shì)的一一對(duì)應(yīng)數(shù)據(jù)表格,當(dāng)系統(tǒng)狀態(tài)空間很大時(shí),易造成“維數(shù)災(zāi)”.我們可以利用神經(jīng)元?jiǎng)討B(tài)規(guī)劃方法,用一條神經(jīng)網(wǎng)絡(luò)來(lái)近似逼近性能勢(shì).此時(shí)計(jì)算機(jī)保存是神經(jīng)元網(wǎng)絡(luò)的逼近結(jié)構(gòu),而不是狀態(tài)和性能勢(shì)的一一對(duì)應(yīng)關(guān)系,從而加快算法的執(zhí)行效率.
當(dāng)Agent數(shù)量過(guò)大或每個(gè)Agent的狀態(tài)空間過(guò)多時(shí),可能需要花費(fèi)很長(zhǎng)的時(shí)間才能獲得滿意的解,這對(duì)于那些實(shí)時(shí)性要求高的系統(tǒng)有很大局限.我們可以設(shè)計(jì)并行算法來(lái)加快學(xué)習(xí)收斂速度,真正地降低算法的執(zhí)行時(shí)間.并行算法的設(shè)計(jì)一般從串行算法入手,尋找可并行部分,包括劃分、計(jì)算、同步等階段[15].多Agent rollout算法可并行部分有:多個(gè)Agent學(xué)習(xí)、Agent的行動(dòng)集合、Agent的狀態(tài)集及Nash平衡解的計(jì)算等.此外,若用神經(jīng)元網(wǎng)絡(luò)逼近性能勢(shì),神經(jīng)網(wǎng)絡(luò)劃分等也可以采用并行算法.
本文采用劃分行動(dòng)集合的并行思想,即每個(gè)處理節(jié)點(diǎn)只初始化和更新某些行動(dòng)集合,利用消息傳遞接口框架(Message Passing Interface,MPI)建立并行算法如算法2.
算法2 Multi-Agent parallel rollout algorithms for Agenti.Step1:(劃分階段)假設(shè)有H個(gè)處理節(jié)點(diǎn),將候選的行動(dòng)集合D(i)劃分H個(gè)子集{U1,U2,…,UH}節(jié)點(diǎn)i只處理Uh;Step2:(計(jì)算階段)按照算法1,計(jì)算狀態(tài)-行動(dòng)對(duì)進(jìn)行全收集操作,將每個(gè)處理節(jié)點(diǎn)中收集起來(lái);Step4:(計(jì)算階段)按照算法1的公式(6)計(jì)算v1(x),并將v1(x)廣播(MPI_Bcast)到所有處理節(jié)點(diǎn);Step5:若滿足終止條件,結(jié)束算法;否則轉(zhuǎn)Step2.算法2的Step3中,MPI_ALLgather和MPI_Bcast為MPI中定義的標(biāo)準(zhǔn)函數(shù),前者表示把各個(gè)處理節(jié)點(diǎn)中某個(gè)變量全收集到每個(gè)處理節(jié)點(diǎn)中,后者含義是將某個(gè)變量廣播到所有處理節(jié)點(diǎn)中[15].
衡量算法2性能需考慮并行加速比和執(zhí)行效率.并行加速比=并行執(zhí)行總時(shí)間/串行計(jì)算時(shí)間,執(zhí)行效率為并行加速比/處理節(jié)點(diǎn)數(shù).并行加速比越高,表明并行計(jì)算獲得性能提升越好;執(zhí)行效率越高,表明
算法1中,由v0得到的性能勢(shì)gv0結(jié)果,需要建立狀態(tài)與性能勢(shì)的一一對(duì)應(yīng)數(shù)據(jù)表格,當(dāng)系統(tǒng)狀態(tài)空間很大時(shí),易造成“維數(shù)災(zāi)”.我們可以利用神經(jīng)元?jiǎng)討B(tài)規(guī)劃方法,用一條神經(jīng)網(wǎng)絡(luò)來(lái)近似逼近性能勢(shì).此時(shí)計(jì)算機(jī)保存是神經(jīng)元網(wǎng)絡(luò)的逼近結(jié)構(gòu),而不是狀態(tài)和性能勢(shì)的一一對(duì)應(yīng)關(guān)系,從而加快算法的執(zhí)行效率.
當(dāng)Agent數(shù)量過(guò)大或每個(gè)Agent的狀態(tài)空間過(guò)多時(shí),可能需要花費(fèi)很長(zhǎng)的時(shí)間才能獲得滿意的解,這對(duì)于那些實(shí)時(shí)性要求高的系統(tǒng)有很大局限.我們可以設(shè)計(jì)并行算法來(lái)加快學(xué)習(xí)收斂速度,真正地降低算法的執(zhí)行時(shí)間.并行算法的設(shè)計(jì)一般從串行算法入手,尋找可并行部分,包括劃分、計(jì)算、同步等階段[15].多Agent rollout算法可并行部分有:多個(gè)Agent學(xué)習(xí)、Agent的行動(dòng)集合、Agent的狀態(tài)集及Nash平衡解的計(jì)算等.此外,若用神經(jīng)元網(wǎng)絡(luò)逼近性能勢(shì),神經(jīng)網(wǎng)絡(luò)劃分等也可以采用并行算法.
本文采用劃分行動(dòng)集合的并行思想,即每個(gè)處理節(jié)點(diǎn)只初始化和更新某些行動(dòng)集合,利用消息傳遞接口框架(Message Passing Interface,MPI)建立并行算法如算法2.
算法2 Multi-Agent parallel rollout algorithms for Agenti.Step1:(劃分階段)假設(shè)有H個(gè)處理節(jié)點(diǎn),將候選的行動(dòng)集合D(i)劃分H個(gè)子集{U1,U2,…,UH}節(jié)點(diǎn)i只處理Uh;Step2:(計(jì)算階段)按照算法處理節(jié)點(diǎn)的使用率越高.
考慮一個(gè)多級(jí)倉(cāng)庫(kù)商品庫(kù)存控制問(wèn)題,把每級(jí)倉(cāng)庫(kù)看出一個(gè)Agent,多級(jí)倉(cāng)庫(kù)商品庫(kù)存控制構(gòu)成了一個(gè)典型的多Agent MDPs.
實(shí)例1:假設(shè)一種商品的倉(cāng)庫(kù)共有兩級(jí),商品需求量符合λ=4的泊松分布,兩級(jí)倉(cāng)庫(kù)商品的單位定購(gòu)費(fèi)均為10,庫(kù)存費(fèi)為10,缺貨損失費(fèi)為20,第1級(jí)倉(cāng)庫(kù)總?cè)萘繛?0,第2級(jí)倉(cāng)庫(kù)總?cè)萘繛?6.該多Agent系統(tǒng)的狀態(tài)數(shù)量為21×17=357個(gè).
因?yàn)檫@兩級(jí)倉(cāng)庫(kù)是純團(tuán)隊(duì)合作的關(guān)系,即若每級(jí)倉(cāng)庫(kù)利益最大化,那么兩級(jí)倉(cāng)庫(kù)也能達(dá)到最大整體利益,團(tuán)隊(duì)Q值更新公式為
利用(9)更新公式求解上例,得到結(jié)果如表1.由表1可知,進(jìn)行6次迭代后,實(shí)驗(yàn)結(jié)果依然保持不變,這表明實(shí)驗(yàn)結(jié)果已收斂.agenti=1時(shí),rollout算法運(yùn)行實(shí)驗(yàn)結(jié)果如圖1所示.
圖1 算法1求解例1迭代結(jié)果(Agent i=1)
表1 算法1求解例1結(jié)果
實(shí)例2:為驗(yàn)證Rollout算法的并行效果,考慮一個(gè)狀態(tài)集合較多庫(kù)存問(wèn)題.假設(shè)5級(jí)倉(cāng)庫(kù),每級(jí)倉(cāng)庫(kù)容量均為6,各級(jí)倉(cāng)庫(kù)商品的庫(kù)存費(fèi)用Cb={5,3,4,2,3},缺貨損失費(fèi)用Cl={6,8,7,8,9},定購(gòu)費(fèi)用Cd={2,3,5,3,6},需求量分布為:λ1=2,λ2=3,λ3=1,λ4=2,λ5=3泊松分布,系統(tǒng)狀態(tài)為16 807個(gè).
若使用Q學(xué)習(xí)算法求解該例,在計(jì)算機(jī)中保存的是Q因子(狀態(tài)-行動(dòng)對(duì)),由于狀態(tài)集合很大,往往會(huì)出現(xiàn)“維數(shù)災(zāi)”,導(dǎo)致問(wèn)題不可解.而使用rollout算法,利用性能勢(shì)理論,借助于神經(jīng)元?jiǎng)討B(tài)規(guī)劃的泛化能力,將性能勢(shì)的計(jì)算從高維空間映射到低維空間,從而節(jié)約存貯空間,在上例中可使用28×15×1BP神經(jīng)網(wǎng)絡(luò)逼近性能勢(shì),二值化后,28×15×1網(wǎng)絡(luò)結(jié)構(gòu)最多可表示16384個(gè)狀態(tài),而28×15×1網(wǎng)絡(luò)結(jié)構(gòu)只有435個(gè)權(quán)值,這樣大大減少了內(nèi)存的消耗.令迭代次數(shù)為20,在MPIICH2-1.0.5環(huán)境,CPU為雙至強(qiáng)E5620(8個(gè)處理節(jié)點(diǎn))的高性能服務(wù)器下,使用并行處理算法2得到的實(shí)驗(yàn)結(jié)果如表2所示.由表2還可以看出,當(dāng)庫(kù)存控制狀態(tài)數(shù)增大時(shí),并行執(zhí)行效率總體是趨優(yōu)的.
表2 算法2求解例2的實(shí)驗(yàn)結(jié)果
Rollout算法是一個(gè)很好的逼近最優(yōu)解算法.在多Agent學(xué)習(xí)中,在性能勢(shì)的框架里運(yùn)用Rollout算法,使用神經(jīng)元網(wǎng)絡(luò)逼近性能勢(shì),既可以解決模型未知的情況克服“建模難”的問(wèn)題,也可以大大減少多A-gent學(xué)習(xí)程序?qū)臻g的需求,從而克服“維數(shù)災(zāi)”的問(wèn)題.同時(shí),由于Rollout算法比其他仿真算法具有更強(qiáng)的內(nèi)在并行性,在rollout算法基礎(chǔ)上進(jìn)行多Agent學(xué)習(xí),具有良好的可行性和有效性.
由于多Agent學(xué)習(xí)重要的一點(diǎn)是如何計(jì)算和選擇平衡解的問(wèn)題.在本文中,利用已有多Agent Q學(xué)習(xí)的求平衡解算法,如何在性能勢(shì)的框架內(nèi),利用rollout算法本身的特點(diǎn)建立更優(yōu)秀算法是下一步所要考慮的問(wèn)題.
[1] Littman M.Markov games as a framework for multi-Agent reinforcement learning[C]//Proceedings of the Eleventh International Conference on Machine Learning.San.Francisco:Morgan Kaufmann Publishers,1994:157-163.
[2] Littman M.Friend or foe Q-learning in general-sum Markov games[C]//Proceedings of Eighteenth International Conference on Machine Learning.Williams,College,MA,San Mateo,CA:Morgan Kaufmann Publishers,2001:322-328.
[3] Hu J,Wellman M.Nash Q-learning for general-sum stochastic games[J].Machine Learning Research,2003,4:1 039-1 069.
[4] Greenwald A,Hall K.Correlated Q-learning[C]//Proceedings of the Twentieth International Conference on Machine Learning.Washington DC,USA:AAAI Press,2003:242-249.
[5] 殷保群,奚宏生,周亞平.排隊(duì)系統(tǒng)性能分析與Markov控制過(guò)程[M].合肥:中國(guó)科學(xué)技術(shù)大學(xué)出版社,2004.
[6] 李豹,程文娟,周雷,等.rollout及其并行求解算法在多類商品庫(kù)存控制中的應(yīng)用[J].系統(tǒng)仿真學(xué)報(bào),2007,19(17):3 883-3 887.
[7] Bertsekas D P.Dynamic Programming and Optimal Control,Vol.Ⅱ,4th Edition:Approximate Dynamic Programming[M].Belmont:MA,Athena Scientific,2012.
[8] Sutton R S,Barto A G.Reinforcement learning:an introduction[M].Cambridge:MA,MIT Press,1998.
[9] Bertsekas D P,Tsitsiklis J N,Wu C.Rollout algorithms for combinatorial optimization[J].Heuristics,1997,3:245-262.
[10]Bertsekas D P.Rollout Algorithms for Discrete Optimization:A Survey[C]//Handbook of Combinatorial Optimization.Berlin:springer,2005:2 989-3 014.
[11]Li X,Cao X R.Performance optimization of queueing systems with perturbation realization[J].European Journal of Operations Research,2012,218(2):293-304.
[12]Cao X R.Stochastic Learning and Optimization-A Sensitivity-Based Approach[M].New York:Springer,2007.
[13]Cao X R,Wang D X,Lu T,et al.Stochastic Control via Direct Comparison[J].Discrete Event Dynamic Systems:Theory and Applications,2011,21:11-38.
[14]Yin B Q,Lu S,Guo D.Analysis of Admission Control in P2P-Based Media Delivery Network Based on POMDP[J].International Journal of Innovative Computing,Information and Control,2011,7(7B):4 411-4 422.
[15]陳國(guó)良.并行算法的設(shè)計(jì)與分析[M].北京:高等教育出版社,2009.