# 論文筆記——TUTORIAL ON AGENT-BASED MODELING AND SIMULATION Agent-based Modeling and Simulation (ABMS)是一種建模的範例、典範,也是自關係數據庫發明以來,在建模領域的實際發展之一。他能夠在商用電腦上協助進行決策、在電子實驗室協助研究。這篇論文會以三個方向介紹ABMS:Useful,為甚麼ABMS表現良好;Usable,我們是怎麼建立起可用的ABMS系統;Used,如何使用ABMS來解決特定問題。 ## 什麼是代理人? 代理人的基本特徵是指元件進行獨立決策的能力,其中代理人必須具備主動性。從實際建模的角度來看,代理人需要有某些特性: - 可識別的(identifiable):獨立的個體會具有能夠主導其行為和決策的特徵和規則,代理人具有一些判斷標準讓我們能夠認知到某物是不是代理人的一部份。 - 互動的(interactive):代理人處在可能會和其他代理人交流的環境中,他能夠識別其他代理人,且會具備通訊協定以和其他代理人交互,以及對環境變動做出反應的能力。 - 目標導向的(goal-directed):具有需要完成的任務以及完成任務所需要的行為。 - 靈活的(flexible):能夠從經驗學習並調整自己的行為,這有一些記憶體的需求,和一些調整自身行為的規則。  代理人的屬性和行為可以是多樣、異構和動態的,這取決於環境、其他代理人、歷史資料等要素,會造成代理人的決策產生變化。 ABMS在MAS跟AI領域中有著深厚淵源,但ABMS不是只限至於智慧型代理人,最根本的是在建模人類的社會行為和獨立決策,這也帶來了表達社會互動、合作、團體行為以及高階社會結構的需要。 ## Agent Based Modeling的需要 現實世界中要分析的系統實在是太過複雜,原因出在個體之間的交互作用,或是要考量的範圍太過龐大,因此傳統的建模已經無法負荷,又或者是數據正以更細的粒度組織到資料庫中,讓微型模擬能夠更好進行,最重要的一點是,電腦計算能力的進步,種種原因讓我們能夠開始尋找傳統方法以外的建模方式。 ## ABMS的背景 ABMS和許多的科學領域都有著一些關聯,他利用這些領域作為理論基礎、世界觀、原理、以及適用的建模技術。ABMS本身有著叫做complex adaptive systems(CAS, 複雜適應系統)的歷史根源,且有著「系統是從頭開始建構」的基本概念。CAS關注的問題是,資訊受限的自動代理人是如何產生複雜行為的。 CAS最初的動機是對生物系統的適應和出現進行研究,他能夠自我管理,又能夠動態調整他們的元件以更容易在環境中生存,這種適應能力顯著發生在各式各樣的範圍。CAS有一些特性: 1. 聚合(aggregation):允許群體組織起來 2. 非線性(nonlinearity):讓[外推法](https://zh.wikipedia.org/wiki/%E5%A4%96%E6%8E%A8)無效 3. 流動(flows):允許資源和資訊的流通 4. 多樣性(diversity):讓代理人的行為各不相同,且常會使得系統擁有強健姓 CAS的機制則是: 1. 標記(tagging):允許代理人被命名和辨識 2. 內部模型(internal models):允許代理人對世界推理 3. 構成單元(building blocks):允許元件和整個系統能由多個級別的簡單元件組成 這些CAS特性和機制提供了一種用於設計agent-based models的有用架構。 ### Simple Rules Result in Emergent Organization and Complex Behaviors 簡單規則導致出現組織和復雜行為 數學家John Conway有一項研究叫做Game of Life(GOL,[生命遊戲](https://zh.wikipedia.org/wiki/%E5%BA%B7%E5%A8%81%E7%94%9F%E5%91%BD%E6%B8%B8%E6%88%8F)),是基於名為cellular automata(CA,[細胞自動機](https://zh.wikipedia.org/wiki/%E7%B4%B0%E8%83%9E%E8%87%AA%E5%8B%95%E6%A9%9F))的模型。基本的CA是一個二維的方形範圍,裡面包含了細胞,每顆細胞在任何時間點都會表現為有限數量狀態的其中一種。有一系列的基本規則會根據細胞先前的狀態決定每顆細胞的數值,且所有細胞會在每個時間點更新狀態,而在決定下一個狀態時會考量的除了自身現在狀態,還會受到相鄰八個點的影響。CA的結果會是可確定的,因為改變的狀態都有跡可循,改變的結果在相同條件下也都相同。GOL在決定細胞的下一個狀態(On或Off)時有三個規則可以依循: 1. 如果周圍正好有三個細胞是On,則細胞接下來會On 2. 如果周圍正好有兩個細胞是On,則細胞維持狀態 3. 不滿足以上兩點就變成Off  上圖是GOL模擬的截圖,一開始會讓On的細胞隨機分布,經過一段時間後,分散的細胞會漸漸聚集在一起,這樣的模式在某些情況下可以永久維持。 0 GOL中的設定體現了代理人的特性,八個相鄰細胞的交互決定了代理人能獲得的資訊量和其行動。從實驗中能察覺到兩個重點:規則很簡單、規則只使用到了區域性的資訊,每個細胞的下一個狀態只取決於目前狀態和相鄰細胞。而在重複模擬GOL之後,發現能夠永久維持的模式可以出現在只參考區域性資訊的系統之中,而且形成的模式很大程度受到初始狀態的左右。 Wolfram也證明了,我們能夠靠著簡單的規則來理解複雜現實的狀態,基於這樣的規則和代理人的交互,即使沒有中央控制的角色,自然系統也能夠表現出集體或群體智慧。Boids模擬能夠作為這種現象的例子,在Boidsd模型中,每個代理人都有三個規則已決定他的移動: 1. 內聚(cohesion):每個代理人會將行進方向朝向同伴的平均位置 2. 分離(seperation):每個代理人會避免將行進方向轉為同伴的群聚位置 3. 結盟(alignment):每個代理人會將行進方向朝向同伴的平均方向  這個模型可以額外定義感知距離,以此定義「區域」,限制能造成影響的範圍,不管有沒有加入這個限制,模型都會在模擬一段時間後開始出現代理人互相配合,且沒有領頭羊的情形。 ### Agent-Based Modeling in the Sciences 科學中的ABM ABMS在進行社會過程的實驗中,代理人代表了人們,然後代理人之間的關係則表示了社會互動的過程。至少人們的互動是可以進行合理建模,但這種模擬也帶來兩個問題: 1. 我們有多了解建模的人們的行為? 2. 我們有多了解建模的人類社會互動? 這讓社會科學的基本研究重新興起以提供ABMS有關代理人表現與行為的理論和方法, Agent-based modeling也可以應用在經濟領域,一些關於標準微觀經濟理論的經典假設包含: 1. 經濟代理人是理性的,這讓他們有明確定義的目標且能夠最佳化他們的行為 2. 經濟代理人是同質的 3. 經濟過程的規模報酬遞減、邊際效用遞減、邊際生產力遞減等 4. 系統的長期均衡狀態是最主要關注的資訊 以上種種假設在ABMS經濟系統都被檢視,像是組織和個體都被最佳化了嗎?(下略 人類學、社會學、認知科學、物理學、生物科學等等都有ABMS的蹤影。 ### Topologies as a Basis for Social Interaction 拓樸作為社群互動的基礎 CA(細胞狀態機)用方格和相鄰細胞表現了代理人的互動模式和可用的區域資訊,而其他的代理人互動拓樸比方說網路,允許更廣泛且靈活的定義何謂相鄰代理人,網路有著更準確的描述社會代理人的互動模式。Social Network Analysis(SNA,社會網路分析)透過網路來比喻社會結構和互動的特性和分析,傳統SNA會聚焦在穩定網路,也就是網路結構不會因時間或是代理人行為產生變化的類型,而動態網路分析是SNA的新分支,基於代理人互動過程結合了網路成長和變化機制。網路建構和成長的方式、理解資訊在網路快速傳輸的方式、以及理解網路所體現的關係,理解控制以上三點的代理人規則,是建模代理人和網路ABMS的重要觀念。 有的ABMS重要建模技術是來自物理系統,網路模型就是其中一種。Ising system([易辛系統](https://zh.wikipedia.org/wiki/%E6%98%93%E8%BE%9B%E6%A8%A1%E5%9E%8B))透過讓個體調整自身行為來符合其他個體的行為來模仿固體的相變,比方說原子要如何對其使得物質磁化。社會科學家調整這個模型來模擬社會過程,他們讓個體能夠在有限範圍交流意見,並以此形成群眾意見,模型的關鍵行為是能夠在沒有提醒的情況下突然發生意見變化,這樣的模型被用來研究新觀念、社會交流、疾病或流行病等的傳播、時尚及友誼的形成之類。 ### Generative Social Science 社會科學生成 要認知到個體和群體是如何形成合作行為的社會互動機制,是具有實際意義的有趣問題。Evolutionary Game Theory(進化賽局理論)與傳統賽局理論有關,考慮到玩家的反覆互動和他們對策略造成的影響。用一個社會影響的ABMS模擬來簡單作結,環境中有紅色和藍色兩種代理人。在模擬一開始,藍色代理人的數量會是紅色的兩倍,兩方都會試著說服對方,受到包圍的代理人會依據周圍數量較多的一方而將方向轉向那個顏色的代理人。除此之外,紅色的說服力被設定為藍色的兩倍,以平衡數量上的差距。模擬提出一些問題比如:經過數次演變後,局勢會由一種代理人主導,還是會形成穩定的混合關係?  ## ABMS應用 Electricity Market Complex Adaptive System(EMCAS,電力市場複雜自適應系統)是一種基於代理人的電力市場模擬模型,研究市場重組和放寬管制,了解競爭市場對電價、可用性和可靠性的影響。其中考量了多種代理人以模仿不同的市場角色,並讓代理人有不同的決策規則,然後根據推理競爭對手的策略來調整其行為。 基於代理人的供應鏈模型被用來講解ABMS的方法,並展示如何用簡單模型發現重要見解,這個模型叫做Beer Game,以系統動力學作為原型的代理人模型。在模型中,供應鏈會包含四個階段:工廠、經銷商、批發商、和零售商,將會被做各式各樣的簡化,比方說只有一種商品所以不需要對它做任何改變跟組裝等等。在各個階段之間(也就是工廠、經銷商等等角色)會有著貨物流和資訊流以模擬實際的物流,但不包含,經商時的各種討價還價,也就是成本。 供應鏈代理人包含客戶、零售商、批發商、經銷商和製造商,他們會遵循一些行為: 1. 客戶會向零售商下訂單 2. 如果有足夠的庫存,零售商會立即從其各自的庫存中填寫訂單(如果缺貨,客戶的訂單會顯示缺貨狀態,並在庫存補充時補上) 3. 零售商會拿到來自批發商的貨物資訊,然後根據訂購規則決定向批發商的訂貨數量,訂購的決策是基於零售商預期客戶未來的需求量所決定的,使用需求預測方式規則來估計,零售商以此滿足預期需求並得知庫存或貨物管道的任何短缺。 4. 批發商對於經銷商的關係也如同第3點,預測零售商需求並向經銷商下訂單,經銷商對工廠也是如此。只有工廠會決定要生產多少產品。  代理人的目標是要找出最小的成本的訂購數量來管理庫存,庫存過低有缺貨可能,庫存過高則會被多收存放成本,而若缺貨時還會產生延期交貨的成本,而每一種代理人只能利用區域性資訊來做出決策,要在這幾種關係之間取得平衡。實驗相較於實際雖然被大規模的簡化,但還是發現了實際領域會出現的「長鞭效應」,所以簡化後的代理人模型依然能夠代為詮釋現實情況。 ## 該如何做ABMS? 與一般在進行的建模相去不遠,首先要確定模型的目標、要回答的問題、潛在用戶,接下來一步步分析系統,確認各個元件的交互關係、相關資料來源等。不過由於ABMS的是從代理人的角度進行模擬,還需要一些條件才算是實際的ABMS: 1. 確認代理人並獲得它的行為原則 2. 確認代理人之間的關係並獲得互動原則 3. 獲得ABMS平台和模型開發策略 4. 獲取必要的代理人相關數據 5. 驗證代理人行為模型(除非模型中只有一個代理人) 6. 執行模型並分析輸出是由於代理人的微觀行為和系統的宏觀行為的何種關聯而形成的 ### 尋找代理人 有用的代理人模型需要正確的代理人、正確的行為、和正確的互動關係,代理人可以說是一個決策者,他們會擁有行為模式,要發掘正確的行為模式首先需要確定行為原則,比方說在規範(mornative)模型中,代理人會嘗試改進自身行為,行為內容是以這個模型作為起點,開發更簡單明瞭的訣竅模型。也有以行為模型出發的例子,只要行為理論可以且適合使用就行,比方說將基礎建立在經過大量實驗證實的消費者購物行為理論就適合用來建模。除此之外也有許多形式的邏輯架構可以做為推理代理人模型的基礎,像是BDI和BOD就使用了混合模型和時間邏輯作為基礎來進行計畫和行為決策。 當需要將個體行為加入到代理人模型時,知識工程和參與式模擬式有用的方式。參與式ABMS結合了代理人建模的範本和組織理論(organization theory),完全由人類參與者扮演的角色組成的結構來完成目標導向的模擬,行為近似於賽局或者遊戲。參與式ABMS在適當的結構、指令、和約束下,參與人可以接露許多代理人行為的資訊,比方說: * 人在限制時間內可以處理多少訊息來做出決策? * 哪些關鍵因素和指標促成人們的決策? * 人們如何在決策時參照過去經驗? * 人們制定的哪些策略最有效? 參與是代理人建模可以藉此深入了解和驗證合理的代理人行為模型,並向利益相關者展示建模概念,並在人為情況下測試代理人行為的想法。 ### ABMS開發工具 代理人模型可以是小型應用程式,在系統桌面運作,也可以是大型到需要使用到整個機房的規模。 #### 桌面ABMS 桌面級的代理人模型可以很簡單,只由一個建模師用幾天或幾周內學到的工具在一小段時間內設計開發就能完成,適合用來學習如何進行代理人建模、測試設計概念和執行多種類型的嚴格建模和分析。實際例子包括通用試算表、計算數學系統(CMS,Computational mathematics systems)等。桌面ABMS系統的關鍵特性之一是,他們是直譯環境,不需要編譯或者連結步驟,也不需要程式語言或基於代理人建模的工具包,而桌面ABMS通常僅限於處理數量在數十到數百個代理人的程度。 #### 大型ABMS 允許數千到數百萬個代理人進行複雜的互動,需要更高級的技能和開發資源。對於代理人開發軟體的標準有FIPA、OMG、和KAoS等進行規範,實際例子包括Repast、Swarm、Netlogo、MASON等等,也有Java工具包可以使用。 REcursive Porous Agent Simulation Toolkit (Repast)是一個免費開源的大型代理人建模和模擬庫,用於開發靈活代理人模型,並強調社會結構和社交互動的模擬。使用者可以將Repast用在Python、Java、和.NET上,屬於完全物件導向的開發軟體。 ==Repast Py是跨平台的可視化模型建構系統,能夠自動輸出到Repast J以供大規模開發。使用者可以使用GUI和Python編寫代理人行為,也可以使用所有Repast的功能,主要是為rapid prototyping開發模式所設計的。Pepast J是純Java建模環境,能夠處理並行發生的活動排程、模型可視化環境、自適應行為工具(比方說神經網路和遺傳演算法)。下圖是以Repast J表示的基本社交網路模型,線條表示兩方代理人正在進行的互動,代理人之間會形成並且維持關聯是基於互動所獲得的利益。 == ==Repast .NET則是純C#建模環境,有著跟Repast J一樣多的功能,可使用Microsoft .NET框架支援的任何語言編寫。== Swarm也是免費開源的軟體庫,旨在為ABMS創建共享的模擬平台,並促進各種模型開發。靈感來自研究生物系統和現象,能夠運用的領域包括生物學、人類學、計算機科學、國防、生態學、經濟學、地理學、工業和政治學。使用Objective-C、Tcl/Tk 和 Java進行編寫程式。 NetLogo同樣是免費開源的開發環境,目的是創造低門檻的程式語言,讓沒有程式設計背景的各領域專家也能進行模擬分析。用Scala和Java進行編寫。 工具包對於代理人建模也有許多用處,優點是可以針對特定用途而設計和修改,缺點是需要有長期開發人員協助維護。 ## ABMS和傳統建模與模擬技術 ABM結合其他舊有技術形成模型混合(model blending)方法,能夠更有效的解決問題或者計算出結果。 ## 為什麼、什麼時候要用ABMS? 代理人模擬可以用於研究模式和組織是怎麼出現的,並發現系統及的結構是如何形成的,而這些東西很難從單一代理人中觀察出來。就像上一章節提到的,ABMS可以為傳統方法提供更大優勢、找出新見解、解決遲遲未解的問題。而什麼時候該使用代理人呢? * 可以明確定義選擇和行為的時候 * 代理人適應環境並改變行為很重要的時候 * 代理人學習並參與動態策略行為很重要的時候 * 代理人之間擁有動態關係,比方說形成關係或解除關係,很重要的時候 * 代理人形成組織並在組織之中適應學習很重要的時候 * 代理人的行為和互動具有空間關係很重要的時候 * 當無法用過去預測未來的時候 * 當規模擴大到隨意程度很重要的時候 * 當過程結構的變化需要輸出成為模型結果,而不是輸入的時候 ###### tags: `論文` `Intellingent Agent`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up