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