◆張俊瑞 王秀華
(晉中學(xué)院 山西 030619)
基于Agent的建模與仿真方法及仿真平臺(tái)淺析
◆張俊瑞 王秀華
(晉中學(xué)院 山西 030619)
本文簡(jiǎn)要介紹了CAS理論,著重介紹了基于Agent的建模和仿真的兩個(gè)方面——基于Agent的建模和基于Agent的仿真,簡(jiǎn)要介紹了該建模仿真方法的仿真平臺(tái)RePast,介紹了RePast中的Demo程序的類結(jié)構(gòu)和RePast仿真平臺(tái)對(duì)應(yīng)的程序運(yùn)行界面。
Agent;建模;仿真;RePast
傳統(tǒng)的建模方法(如還原論方法、歸納推理方法等)不能很好地刻畫復(fù)雜系統(tǒng),如煤礦井下礦工所構(gòu)成的復(fù)雜系統(tǒng)。對(duì)這樣的復(fù)雜系統(tǒng)進(jìn)行研究,需要采用新的建模與仿真方法,基于Agent的建模與仿真方法(AgentBased Modeling and Simulation,ABMS)是最具活力、最有影響力的方法之一,適合于復(fù)雜系統(tǒng)的研究[1]。
霍蘭在《Hidden Order》(《隱秩序》)一書中首先提出了CAS(Complex Adaptive System,復(fù)雜適應(yīng)系統(tǒng))理論,在這之后,CAS理論逐漸成為了基于Agent的建模與仿真方法的理論基礎(chǔ)[2][3][4]。霍蘭指出:CAS中的組成成員稱為Adaptive Agent(即具有適應(yīng)性的主體)?!熬哂羞m應(yīng)性”是指CAS中的Agent能夠與環(huán)境和其他的Agent進(jìn)行溝通和交流,并在此過(guò)程中“學(xué)習(xí)”和“積累經(jīng)驗(yàn)”,進(jìn)而改變主體的結(jié)構(gòu)或行為方式[3][4][5][6][7][8]。
CAS中的Agent具有多種不同的含義[9][10][11],最早是由Minsky(明斯基)在其專著《The Society of Mind》(《意識(shí)社會(huì)》)中提出的,在計(jì)算機(jī)領(lǐng)域中多將Agent翻譯為“智能體”或“主體”。
ABMS是CAS理論與分布式人工智能技術(shù)二者相結(jié)合后產(chǎn)生的一種新的建模仿真方法學(xué),為描述和研究復(fù)雜系統(tǒng)提供了一種新的建??蚣芎头较?。
基于Agent的建模與仿真包括“基于Agent的建?!焙汀盎贏gent的仿真”兩個(gè)方面,這兩個(gè)方面既獨(dú)立又聯(lián)系,研究?jī)?nèi)容和含義各有不同,同時(shí)這兩個(gè)方面又互相交叉,不可分割。
2.1 基于Agent的建模
基于Agent的建模是一個(gè)“自下而上”的過(guò)程。Agent間的交互是分散的,沒(méi)有一個(gè)Agent的行動(dòng)與其它Agent的行動(dòng)有關(guān)。對(duì)整個(gè)系統(tǒng)來(lái)說(shuō),從宏觀來(lái)看,系統(tǒng)是由這些Agent共同產(chǎn)生的,沒(méi)有集中的控制者和決策者,整體和個(gè)體之間體現(xiàn)的是辯證統(tǒng)一的關(guān)系。在整體的相互作用中,個(gè)體之間從平等到分化,系統(tǒng)從簡(jiǎn)單到復(fù)雜,宏觀和微觀有機(jī)地聯(lián)系在一起[6]。
軟件工程的觀點(diǎn)認(rèn)為:基于Agent的建模是面向?qū)ο蠓妒降淖匀焕^承、擴(kuò)充與發(fā)展。相對(duì)于Agent的定義而言,將Agent稱為“主體”比“簡(jiǎn)單的、活的對(duì)象”更加準(zhǔn)確,Agent具有一定的智能性和自主性,這是它的主要特點(diǎn)。
傳統(tǒng)的科學(xué)研究主要是利用歸納與演繹的方法來(lái)實(shí)現(xiàn)研究?;贏gent的建模和演繹過(guò)程非常相似又有所不同,它是在假設(shè)公理的基礎(chǔ)上產(chǎn)生Agent的行為及模型中Agent之間的交互情況,基于Agent建模的目的是要研究交互的本質(zhì)模式并為相應(yīng)的決策人員提供幫助[5]。
2.2 基于Agent的仿真
基于Agent的仿真包括Agent、環(huán)境以及相互規(guī)則、通訊方式等方面。復(fù)雜適應(yīng)系統(tǒng)中的Agent可以實(shí)現(xiàn)自治,可以自己適應(yīng)環(huán)境、進(jìn)行相互通信和自己學(xué)習(xí),仿真系統(tǒng)中的Agent也具有這些特點(diǎn)。在這樣的定義下,仿真系統(tǒng)中的Agent就可以看做是一個(gè)計(jì)算機(jī)進(jìn)程,就可以編制程序?qū)崿F(xiàn)計(jì)算機(jī)的仿真。
在具有Agent 的仿真系統(tǒng)中,其Agent的類型多種多樣,環(huán)境、礦井、礦工、行人等都可以看作是Agent,他們都具有Agent的特性。其中,環(huán)境Agent受到規(guī)則的約束和限制,并能夠隨著規(guī)則進(jìn)行演化和發(fā)展,因此,環(huán)境Agent就可以和別的類型的Agent相互作用,進(jìn)行通信和聯(lián)系。
目前,基于Agent的仿真都是用面向?qū)ο蟮木幊虒?shí)現(xiàn)的。編程時(shí),需要將Agent設(shè)定成具有變量和方法等的類對(duì)象,將環(huán)境看成是空間對(duì)象(Space),Agent之間的聯(lián)系通過(guò)特定的規(guī)則加以實(shí)現(xiàn),當(dāng)環(huán)境發(fā)生變化時(shí),Agent會(huì)受到影響,Agent也會(huì)對(duì)環(huán)境產(chǎn)生影響。通過(guò)這樣的設(shè)定,就可以編程的方式實(shí)現(xiàn)對(duì)復(fù)雜系統(tǒng)的仿真。
ABMS的仿真平臺(tái)較多,較具代表性的是美國(guó)Santa Fe研究所的SWARM和Sourceforge的RePast項(xiàng)目、EINSTein、ASPEN、NetLogo等。本文只介紹RePast仿真平臺(tái)。
RePast(Recursive Porous Agent Simulation Toolkit)是一個(gè)開源的仿真工具,它支持Java語(yǔ)言,在Java語(yǔ)言的開發(fā)平臺(tái)上導(dǎo)入RePast的類包即可進(jìn)行RePast開發(fā)。目前比較流行的版本為Repast J(Repast 3)。官方最近推出了Repast Simphony 2.0 Beta,在Repast J上增加了許多新的特性。另外也有適合企業(yè)和大型科研單位的Repast for High Performance Computing 1.0.1 Beta版本。為了方便編程人員,RePast提供了API文檔,具有Java語(yǔ)言基礎(chǔ)的RePast使用者可以利用這個(gè)文檔在Eclipse平臺(tái)上建立各種不同的仿真模型。
RePast由芝加哥大學(xué)社會(huì)科學(xué)計(jì)算研究中心開發(fā)研制[12],非常容易進(jìn)行學(xué)習(xí)和擴(kuò)展。RePast有6個(gè)類庫(kù),可以生成、運(yùn)行Agent主體以及顯示和收集模型中的一系列數(shù)據(jù),RePast還能夠記錄某一個(gè)“tick”時(shí)模型當(dāng)前的狀態(tài),生成模型運(yùn)行過(guò)程中的各種不同的狀態(tài),是一個(gè)與“Swarm”相類似的模擬軟件構(gòu)架。一個(gè)RePast的Demo程序類結(jié)構(gòu)如圖1所示。
圖1 Demo程序的類結(jié)構(gòu)
Repast含有時(shí)間序列(Scheduling Mechanism)和顯示(Display Mechanism)兩個(gè)內(nèi)部機(jī)制。時(shí)間序列機(jī)制負(fù)責(zé)所有用戶定義的狀態(tài)變化,顯示機(jī)制用來(lái)實(shí)現(xiàn)正在運(yùn)行模型的實(shí)時(shí)顯示。RePast的仿真界面如圖2所示。在這個(gè)仿真界面中,包括了RePast中的顯示界面、圖表、參數(shù)設(shè)置、數(shù)據(jù)統(tǒng)計(jì)等窗口。
圖2 RePast的仿真界面
本文主要介紹了基于Agent的建模與仿真方法,詳細(xì)介紹了基于Agent的建模和基于Agent的仿真兩個(gè)方面以及對(duì)應(yīng)的仿真平臺(tái)RePast。利用ABMS可以實(shí)現(xiàn)對(duì)復(fù)雜系統(tǒng)的仿真,因此在研究復(fù)雜系統(tǒng)方面是很好的研究工具之一。
[1]倪建軍,徐立中,王建穎.基于CAS理論的多Agent建模仿真方法研究進(jìn)展[J].計(jì)算機(jī)工程與科學(xué),2006.
[2]廖守憶.復(fù)雜系統(tǒng)基于Agnet的建模與仿真方法研究及應(yīng)用[D].國(guó)防科學(xué)技術(shù)大學(xué)博士論文,2005.
[3]廖守億,戴金海.復(fù)雜適應(yīng)系統(tǒng)及基于Agent的建模與仿真方法[J].系統(tǒng)仿真學(xué)報(bào),2004.
[4]Epstein J M.Generative Social Science:Studies in Agent-Based Computational Modeling [G].Princeton,New Jersey:Princeton University Press,2006.
[5]張俊瑞,趙貴富.基于Multi-agent的建模仿真方法研究[J].電腦開發(fā)與應(yīng)用,2011.
[6]張俊瑞,陳立潮,潘理虎,鄧曦輝.基于Agent的井下透水事故逃生模型研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012.
[7]李強(qiáng).基于Agent的城市固體廢物計(jì)量收費(fèi)管理模式的研究[D].昆明理工大學(xué)碩士論文,2008.
[8]王仙雅.物流產(chǎn)學(xué)研合作創(chuàng)新的博弈分析[D].天津科技大學(xué)碩士論文,2011.
[9]廖守億,陳堅(jiān),陸宏偉等.基于Agent的建模與仿真概述[J],計(jì)算機(jī)仿真,2008.
[10]Gell-Mann M.Complex Adaptive System[A].In:George Cowan,et al,eds.Complexity:Metaphors,Models and Reality[M].New York:Addison—Wesley,1994.
[11]劉大有,楊鯤,陳建中.Agent研究現(xiàn)狀與發(fā)展趨勢(shì)[J],軟件學(xué)報(bào),2000.
[12]Aziz,N.I.Sun,Y.Baafi,E.Y.Self-contained Selfrescu-ersN ew Strategies for Mine Escape in Australia.International Minin g and Minerals[J],2000.
晉中學(xué)院校級(jí)教改項(xiàng)目(Zl2016jg07)。