《9第九章 基于Agent的建模方法及Swarm仿真》由會(huì)員分享,可在線閱讀,更多相關(guān)《9第九章 基于Agent的建模方法及Swarm仿真(14頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第九章 基于Agent的建模方法及Swarm仿真
9.1 Agent的基本概念
9.1.1 Agent的定義
在英文中,“Agent”這個(gè)詞主要有三種含義:
一是指對(duì)其行為負(fù)責(zé)的人;
二是指能夠產(chǎn)生某種效果的,在物理、化學(xué)或生物意義上活躍的東西;
三是指代理,即接受某人的委托并代表他執(zhí)行某種功能。
通常認(rèn)為一個(gè)Agent應(yīng)具有以下全部或部分特征:
1) Agent是一個(gè)具有明確邊界和界面的問題求解實(shí)體。
2) Agent處于特定環(huán)境之中,它通過感知器來觀測(cè)環(huán)境,通過效應(yīng)器來作用于環(huán)境。
3) 自治性 這是一個(gè)Agent最本質(zhì)的特征。Agent的自治性體現(xiàn)在:Agent的
2、行為應(yīng)該是主動(dòng)的、自發(fā)的(至少有一種行為是這樣的);Agent應(yīng)該有它自己的目標(biāo)或意圖;根據(jù)目標(biāo)、環(huán)境等的要求,Agent應(yīng)該對(duì)自己的短期行為做出計(jì)劃。
4) 社會(huì)性 無論是現(xiàn)實(shí)世界,還是虛擬世界,通常都是由多個(gè)Agent組成的系統(tǒng)。在該系統(tǒng)內(nèi),單個(gè)Agent的行為必須遵循和符合Agent社會(huì)的社會(huì)規(guī)則,并能通過某種Agent交互語言,以它們認(rèn)為合適的方式與其它Agent進(jìn)行靈活多樣的交互,并與其它Agent進(jìn)有效地行合作。
5) 反應(yīng)性 Agent能夠感知其所處的環(huán)境(可能是物理世界,或操縱人機(jī)界面的用戶,或與它進(jìn)行交互和通訊的其它Agent等等),并能及時(shí)迅速地對(duì)之作出反應(yīng),以適應(yīng)
3、環(huán)境的變化。
概括起來,可以說Agent是實(shí)際系統(tǒng)的某種抽象(一般是系統(tǒng)物理實(shí)體抽象,但根據(jù)需要也可能是系統(tǒng)功能的抽象),它能夠在一定的環(huán)境中為了滿足其設(shè)計(jì)目標(biāo),而采取一定的自主行為;Agent總是能夠感知其所處的環(huán)境(在真實(shí)世界中的Agent通過物理傳感器進(jìn)行,軟件Agent則通過軟件傳感器進(jìn)行),并且有可以影響環(huán)境的多個(gè)行為能力,能夠適應(yīng)環(huán)境的變化。
9.1.2 Agent與對(duì)象
對(duì)象與Agent之間有許多共同點(diǎn),如數(shù)據(jù)和方法的封裝,又如Agent可以擁有對(duì)象的繼承與多態(tài)等性質(zhì)。
Agent與對(duì)象之間又有一些明顯的區(qū)別:
首先就是Agent和對(duì)象的自治程度。
其次,對(duì)象和Age
4、nt的另一個(gè)重要區(qū)別是有關(guān)自治行為的靈活性(自治性、反應(yīng)性、社會(huì)性)。
標(biāo)準(zhǔn)對(duì)象模型和由Agent組成的系統(tǒng)的第三個(gè)重要區(qū)別是:對(duì)每一個(gè)Agent來說,它都有自己獨(dú)立的控制線程;而在標(biāo)準(zhǔn)的對(duì)象模型中,整個(gè)系統(tǒng)才有一個(gè)控制線程。主動(dòng)對(duì)象擁有自己的控制線程,可以在沒有其它對(duì)象控制的情況下自主地實(shí)施自己的某種行為或某些行為。主動(dòng)對(duì)象是Agent,也可以稱Agent就是主動(dòng)對(duì)象。
事實(shí)上,現(xiàn)在許多Agent開發(fā)工具和應(yīng)用實(shí)例都是用面向?qū)ο蠹夹g(shù)來實(shí)現(xiàn)的。
9.1.3 多Agent系統(tǒng)
面對(duì)復(fù)雜系統(tǒng),用單個(gè)Agent來描述顯然是不合適的,必須用多個(gè)Agent來刻畫、抽象這樣的系統(tǒng)。通常,我們就將這
5、種由多個(gè)Agent組成的系統(tǒng)稱為多Agent系統(tǒng)(MultiAgent System, MAS)。
多Agent系統(tǒng)具有以下特點(diǎn):
1) 高層次的交互 MAS除了可以描述傳統(tǒng)的客戶/服務(wù)器類型的交互方式外,還可以描述復(fù)雜的社會(huì)交互模式:合作(為了共同目標(biāo)一起工作)、協(xié)調(diào)(協(xié)調(diào)問題求解行為以避免有害的交互或利用有益的交互)、協(xié)商(所有的參與交互的各方達(dá)成都可以接受的協(xié)議)。
2) Agent之間的豐富的組織關(guān)系 多Agent系統(tǒng)通常反映了這種組織環(huán)境,Agent之間的關(guān)系可以是來自于組織者中的各種關(guān)系,例如同等關(guān)系、上下級(jí)關(guān)系等,
3) 數(shù)據(jù)、控制、資源的分布 MAS特別適合于需要
6、多個(gè)不同的問題求解實(shí)體相互作用共同求解某個(gè)共同的問題或它們各自問題的領(lǐng)域,而多數(shù)情況下,這些實(shí)體、數(shù)據(jù)和資源在物理或邏輯上是分布式的。
9.1.4 Agent的作用
1、應(yīng)用方面
1) 模塊化
2) 分散化
3) 可變性
4) 不良結(jié)構(gòu)
5) 復(fù)雜性
2、研究方面
復(fù)雜性科學(xué)是指以還原論、經(jīng)驗(yàn)論及“純科學(xué)”為基礎(chǔ)的經(jīng)典科學(xué)正在吸收系統(tǒng)論、理性論和人文精神而發(fā)展成的一門新學(xué)科?,F(xiàn)在興起了一種嶄新而前景廣闊的研究方法:基于Agent的建模與仿真技術(shù)。
9.2 基于Agent的建模方法
9.2.1 基于Agent的建模思想
基于Agent建模的思想
7、:人們將Agent作為系統(tǒng)的基本抽象單位,必要的時(shí)候可賦予Agent一定的智能(Intelligent),然后在多個(gè)Agent之間設(shè)置具體的交互(Interact)方式,從而得到相應(yīng)系統(tǒng)的模型。這樣,Agent、智能和交互便是基于Agent建模思想中最基本也是最重要的內(nèi)容.
1) Agent Agent是一個(gè)自治的計(jì)算實(shí)體,它可以通過感應(yīng)器(物理的或軟件的)來感知環(huán)境,并通過效應(yīng)器作用于環(huán)境。
2) 智能 說Agent具有智能,并不是指它是全知全能的,也不是說它永遠(yuǎn)不會(huì)失敗;而是說Agent在變化的環(huán)境中靈活(即具有柔性)而有理性地運(yùn)作,具有感知和效應(yīng)的能力。
3) 交互 交互是指Age
8、nt可以被其它的為追求自己的子目標(biāo)而執(zhí)行相應(yīng)任務(wù)的Agents(或人)所影響。交互可以通過他們之間共享的環(huán)境或共享的語言來實(shí)現(xiàn)。在合作的情況下,多個(gè)Agent通過交互,以團(tuán)隊(duì)的方式一起工作來共同完成系統(tǒng)的目標(biāo);在沖突的情況下,Agent之間要通過交流來化解沖突,最終實(shí)現(xiàn)系統(tǒng)的目標(biāo)。
基于Agent的建模是一種由底向上(Bottom-Up)的建模方法,它把Agent作為系統(tǒng)的基本抽象單位,采用相關(guān)的Agent技術(shù),先建立組成系統(tǒng)的每個(gè)個(gè)體(individual)的Agent模型(大多數(shù)時(shí)候它是比較簡(jiǎn)單的),然后采用合適的MAS體系結(jié)構(gòu)來組裝這些個(gè)體Agent,最終建立整個(gè)系統(tǒng)的系統(tǒng)模型。
9
9、.2.2 面向Agent的系統(tǒng)分析
1) 基于Agent 的MAS的系統(tǒng)層次模型
1、發(fā)現(xiàn)個(gè)體Agent
對(duì)于給定的系統(tǒng)(有確定的系統(tǒng)問題域和系統(tǒng)邊界),發(fā)現(xiàn)個(gè)體Agent的任務(wù)就是解決這樣的問題:將系統(tǒng)中的什么映射為Agent?也就是對(duì)系統(tǒng)進(jìn)行Agent抽象。對(duì)系統(tǒng)進(jìn)行Agent抽象的基本原則是:從系統(tǒng)的物理結(jié)構(gòu)出發(fā),圍繞著系統(tǒng)的目標(biāo)來對(duì)系統(tǒng)進(jìn)行抽象。
以系統(tǒng)的物理結(jié)構(gòu)作為抽象的基點(diǎn),就意味著可根據(jù)物理世界的實(shí)際構(gòu)成來劃分Agent。一般的處理原則是,將組成系統(tǒng)的每個(gè)實(shí)體都抽象為一個(gè)Agent(可其稱為實(shí)體Agent),這對(duì)自然的分布式系統(tǒng)尤為實(shí)用。這時(shí),有兩個(gè)問題需要注意:
10、
1) 異質(zhì)Agent與同質(zhì)Agent的處理
2) 抽象的粒度
設(shè)計(jì)一些其它的輔助Agent,通常這類Agent被稱為集中服務(wù)Agent。
2、個(gè)體Agent的建模
1) 基于邏輯的Agent模型 在該模型中,Agent決策的制定過程是通過邏輯演繹的方式來實(shí)現(xiàn)的,類似于專家系統(tǒng)。
2) 反應(yīng)式Agent模型 在該模型中,Agent決策的制定過程是通過環(huán)境與行為的直接映射來實(shí)現(xiàn)的,如一般的控制器。
3) 信念-愿望-意圖Agent模型 在該模型中,Agent決策的制定過程是依賴于表達(dá)Agent的信念、愿望和意圖的數(shù)據(jù)結(jié)構(gòu)之間的操作來實(shí)現(xiàn)的,它更接近人類的思維方式
11、。
Agent的基本組成:
1) 每個(gè)Agent都有自己的狀態(tài)。
2) 每個(gè)Agent都擁有一個(gè)感知器來感知環(huán)境,即根據(jù)環(huán)境的狀態(tài)來改變自己狀態(tài)的方法。
3) 每個(gè)Agent都擁有一個(gè)效應(yīng)器作用于環(huán)境,即用來改變環(huán)境狀態(tài)的方法。
3、多Agent的體系結(jié)構(gòu)
1) 系統(tǒng)應(yīng)有多少Agent?
2) Agent之間采用什么樣的通信渠道?
3) Agent之間采用什么樣的通信協(xié)議?
4) 怎樣建立Agent與其相關(guān)的其它Agent之間的結(jié)構(gòu)?
5) Agent之間如何協(xié)調(diào)它們的行動(dòng)?
要解決好上述5個(gè)問題的前提條件是:對(duì)物理系統(tǒng)的透徹了解和對(duì)系統(tǒng)目標(biāo)的準(zhǔn)確把握。在這個(gè)階段,對(duì)相
12、關(guān)技術(shù)的了解(如面向?qū)ο蟮南鬟f、常用的合同網(wǎng)協(xié)議、耗散機(jī)制等)也會(huì)促進(jìn)問題的解決,同時(shí),可能會(huì)根據(jù)需要返回到前兩個(gè)階段進(jìn)行再分析。問題解決后,我們就建立了一個(gè)完整的多 Agent系統(tǒng)模型。
9.3 Swarm簡(jiǎn)介
Swarm提供了用于像多agent系統(tǒng)這樣的設(shè)計(jì)、實(shí)現(xiàn)、運(yùn)行和分析的工具。
9.3.1 Swarm的思想
人工生命這樣的復(fù)雜適應(yīng)系統(tǒng)的基本特征是:分散的相對(duì)自治的實(shí)體之間以及與動(dòng)態(tài)環(huán)境之間相互交互,沒有一個(gè)集中的權(quán)威來指揮這些個(gè)體的行為:每個(gè)個(gè)體根據(jù)對(duì)環(huán)境的評(píng)估來決定它們自己的行為、內(nèi)部狀態(tài)以及與其它個(gè)體和環(huán)境的通信。
Swarm就是基于這樣的思想,描述一系列獨(dú)立的個(gè)體
13、,通過獨(dú)立事件進(jìn)行的交互作用。
建模者可用“Swarm”來作任何松散結(jié)構(gòu)的相互交互的Agent集合的容器。
Swarm這一概念之所以非常重要和具有吸引力,是因?yàn)閭€(gè)體行為與群體行為的耦合。
Swarm作為一個(gè)整體的行為是來自個(gè)體的非線性的交互,包括個(gè)體行為與群體行為之間的反饋。
9.3.2 Swarm的發(fā)展歷程
由于Swarm是一個(gè)開放式的開發(fā)平臺(tái),所以目前它不僅被研究者應(yīng)用于生物學(xué)領(lǐng)域,而且在許多領(lǐng)域中都得到了應(yīng)用:人類學(xué)、計(jì)算機(jī)科學(xué)、國(guó)防、經(jīng)濟(jì)學(xué)、生態(tài)學(xué)、地理學(xué)、工業(yè)、政治學(xué)等等.
9.3.3 Swarm的建模思想和方法
SWARM的建模思想是把一個(gè)個(gè)體、包括它的
14、部件和時(shí)間表封裝起來。一個(gè)“swarm”代表一個(gè)個(gè)體的集合和它們的行為為時(shí)間表。SWARM中的模塊化和組件思想允許建立一個(gè)靈活的模型系統(tǒng)。SWARM可以嵌套,可以直接表示多層模擬,而且它們可以被個(gè)體用作自身環(huán)境的模型。
多層次的建模方法可以提供非常有強(qiáng)的表達(dá)能力。SWARM允許用戶完整地建立和測(cè)試多層模型。SWARM可以明確地表達(dá)一個(gè)自然的結(jié)構(gòu),即一組個(gè)體緊密聯(lián)系得一個(gè)個(gè)體一樣。由于swarm,可以在模擬運(yùn)行的過程中建立和釋放,SWARM可用來建立描述多層次的動(dòng)態(tài)出現(xiàn)的模型。圖9.6表示了一個(gè)復(fù)雜的嵌套式的Swarm層次結(jié)構(gòu)。
Swarm支持個(gè)體建立自身所在環(huán)境的模型。
Swarm平臺(tái)就
15、是基于Agent的建模工具,其建模方法是從底向上(Down-Up),先構(gòu)筑每個(gè)實(shí)體Agent,再將這些Agent組裝起來形成整個(gè)系統(tǒng)的模型。
在Swarm平臺(tái)上,swarm是基本構(gòu)件,一個(gè)swarm就是一個(gè)對(duì)象,它實(shí)現(xiàn)內(nèi)存的分配和事件的規(guī)劃。
在建模和編程時(shí),可以認(rèn)為一個(gè)Swarm就是一個(gè)Agent, Agent通過規(guī)劃技術(shù)來安排自己的行為;
也可認(rèn)為一個(gè)swarm是某個(gè)組織,有多個(gè)Agent居于其中, Swarm可用規(guī)劃技術(shù)來對(duì)這些Agent的行為進(jìn)行規(guī)劃。
9.3.4 Swarm的體系結(jié)構(gòu)和仿真結(jié)構(gòu)
Swarm仿真的基本單位是個(gè)體。每一個(gè)個(gè)體就像系統(tǒng)中的一個(gè)演員。它們能夠產(chǎn)生
16、動(dòng)作并影響自身和其他個(gè)體。
個(gè)體定義了Swarm系統(tǒng)中的基本對(duì)象。一個(gè)時(shí)間表規(guī)定了這些對(duì)象獨(dú)立事件發(fā)生的流程。在Swarm中,特定的行為發(fā)生在特定的時(shí)間,行為的發(fā)展按照時(shí)間表的規(guī)定進(jìn)行。
除了作為個(gè)體的容器外,Swarm自身也可以是個(gè)體。一個(gè)典型的個(gè)體是一個(gè)包括一系列規(guī)則、反映和刺激的模型。但是,一個(gè)個(gè)體自身也可以作為一個(gè)Swarm:一個(gè)對(duì)象的集合和動(dòng)作的時(shí)間表。
9.3.5 Swarm的基本特征和Java接口
9.4 Swarm應(yīng)用實(shí)例
9.4.1 熱蟲(Heatbug)
整個(gè)系統(tǒng)的基本構(gòu)成單位是Agent,每個(gè)Agent代表一個(gè)熱蟲(一種生物)。很顯然,熱蟲有其活動(dòng)的時(shí)空范圍(即環(huán)境),在Swarm中將其稱為world。在該模型中,world有空間屬性(熱蟲所處的位置)和熱量(它在系統(tǒng)運(yùn)作的時(shí)間內(nèi)不斷地產(chǎn)生并散失)。Swarm提供了2維的顯示平面來顯示world和在其中運(yùn)行的所有Agent(點(diǎn)或方框),如圖9.11。
?。?
14