java 多模块项目 包路径冲突_多智能体仿真建模在交通中的应用|MATSim入门指南...
點擊藍(lán)字|關(guān)注我們
無論是你是更側(cè)重于工程實踐還是更側(cè)重于理論研究,交通仿真總是一個繞不開的話題。常用的交通仿真軟件包括Vissim、Paramics、Anylogic、Transcad等等。近年來,隨著ABM概念的興起,交通領(lǐng)域內(nèi)也出現(xiàn)了以MATSim(the Multi-Agent Transport Simulation)為代表的多主體仿真軟件。
入門指南
本文將為MATSim仿真軟件做一個入門指南,內(nèi)容主要分為以下四部分:
第一,什么是多智能體(主體、代理)仿真;
第二,MATSim是什么,能實現(xiàn)什么,有什么優(yōu)勢;
第三,如何配置MATSim開發(fā)環(huán)境,安裝MATSim,并顯示仿真結(jié)果;
最后,以柏林?jǐn)?shù)據(jù)為例,完成MATSim的仿真操作。
1. 什么是多智能體仿真?
智能體基模型(agent-based model,ABM), 又稱多智能體系統(tǒng)(multi-agent system, MAS)是一種用來模擬具有自主意識的智能體(獨立個體或共同群體,例如組織、團(tuán)隊)的行動和相互作用的計算模型,通過圖像展示評估智能體在系統(tǒng)整體中的作用。
基于多智能體模型是一個微觀模型,通過模擬多個智能體的同時行動和相互作用以再現(xiàn)和預(yù)測復(fù)雜現(xiàn)象。這個過程是從低(微觀)層次到高(宏觀)層次的涌現(xiàn)。
常用的ABM模型工具箱有SWARM,Repast,MASON,mass,NetLogo等。
下圖是NetLogo模型庫中的Flocking模型。該模型試圖模仿鳥類的成群結(jié)隊(由此產(chǎn)生的運動也類似魚群)。模型中并不存在領(lǐng)航鳥,每只鳥都遵循一套完全相同的規(guī)則,隨著時間演化,鳥群由此而生。
Flocking模型初始態(tài)
Flocking模型演化一段時間后
2. MATSim是什么,能實現(xiàn)什么,有什么優(yōu)勢?
首先先看一個MATSim的仿真案例。
接下來引入MATSim的定義:
MATSim提供了一個框架來實現(xiàn)大規(guī)模的基于智能體的交通仿真。
該框架由幾個模塊組成,這些模塊可以組合或單獨使用,也可以用自己的成果替換模塊,以測試自己工作的單個方面。
目前,MATSim提供的框架包括需求建模、基于agent的出行仿真(交通流仿真)、重新規(guī)劃、迭代仿真控制器以及分析模塊生成輸出的方法。
與其他傳統(tǒng)交通仿真軟件不同,MATSim的優(yōu)勢和特征體現(xiàn)在:
基于智能體的日常出行行為的多模式仿真。
大場景中仍能保證很高的仿真效率。
MATSim能夠在數(shù)十萬路段的網(wǎng)絡(luò)上模擬數(shù)百萬agent的場景。你所需要的只是一臺有足夠內(nèi)存、運行速度快的臺式電腦,MATSim通常只需要幾分鐘就能模擬出完整的一天。
開源性、多平臺性。
傳統(tǒng)的交通仿真軟件通常存在兩個缺點:底層不易調(diào)試、成本高昂,而MATSim完美克服了這兩個弊端。MATSim不但可以免費下載使用的,而且其是以模塊化的方式存儲源代碼的,這意味著研究者可以在其基礎(chǔ)上進(jìn)行二次開發(fā)。
3. MATSim的安裝
MATSim的運行是基于JAVA編譯器實現(xiàn)的,其可視化可以基于VIA軟件實現(xiàn)的,該軟件免費下載,但對agents數(shù)量有限制,免費版最多加載500個agents。
因此我們需要首先配置Java和Eclipse開發(fā)環(huán)境,之后下載MATSim包,并通過Eclipse查看、編輯、運行MATSim源代碼,最后下載VIA軟件。
1. 關(guān)于Java環(huán)境和Eclipse的配置,網(wǎng)上有很多資料,這里就不再贅述,小伙伴們可以自行百度,但這里面有個坑,建議不要選擇較新版本的JAVA環(huán)境,可能會與MATSim產(chǎn)生不兼容的問題。
2. 關(guān)于MATSim的安裝,官網(wǎng)上目前提供兩種類型,一種為jar類型,該類型安裝更為方便,底層代碼不可見,不可二次開發(fā),也不利于后續(xù)的學(xué)習(xí)、使用,這里不再介紹;另一種是源代碼包。
由于墻的限制,從官網(wǎng)下載MATSim時速度較慢,這里直接給出的源代碼包(點擊【閱讀原文】)。
當(dāng)環(huán)境配置好后,下面我們一步一步的將MATSim文件添加到Eclipse的project中,并讓其運行起來。
Step1:在Eclipse中按照File——New——Java Project新建一個工程(project),如圖下圖所示。并按照紅框的順序依次配置改工程的名字、儲存地址,最后點擊完成。
Step2:找到剛才配置的project地址(筆者地址為D:\【學(xué)術(shù)】\【研究生】\【代碼】ecplise\matsim_demo),并打開名為src的文件夾,把下載好的matsim-master文件夾打開,依此點擊打開matsim/src/main/java,會看到里面有一個名為org的文件夾,復(fù)制并粘貼到剛才的src文件夾中。
Step3:在project的文件夾中新建一個名為lib的文件夾,將剛才下載的庫文件matsim-lib打開,把其中l(wèi)ibs文件夾中的所有.jar文件都復(fù)制粘貼到剛才新建的lib文件夾中。
Step4 :打開Eclipse,在剛才新建的matsim工程右擊鼠標(biāo),并依次點選Bulid Path——Configure Build Path,打開后的窗口如下圖所示,在Libraries頁中點擊Add JARs...選擇我們剛才新建的project,并將其lib中的所有jar文件添加進(jìn)來,然后依次點擊確定。
到這里,MATSim的配置基本結(jié)束,但如果你的project上面還有一個紅色叉號,說明配置中有一些操作不正確。
3. VIA為免安裝版,下載后直接點擊Via64.exe使用即可,其安裝包也已放入文末鏈接。
4. MATSim仿真案例
最后我們基于MATSim實現(xiàn)一個小型路網(wǎng)的仿真。
Step1:打開Eclipse,在src下找到org.matsim.run.gui,如下圖所示,右擊Gui.java,依次點擊run as——java application。
Step2: MATSim GUI界面如圖所示,configuration file 框內(nèi)輸入配置文件路徑,Output directory框內(nèi)為默認(rèn)的輸出文件路徑。這里以官方的柏林?jǐn)?shù)據(jù)為例,其路徑為“matsim-master\examples\scenarios\ berlin”,點擊Start MATSim,開始仿真。
當(dāng)界面窗口出現(xiàn)下圖紅框所示 shutdown completed 時,仿真結(jié)束。
Step3:打開對應(yīng)文件,在via中依次點擊File——Add data, 添加output文件夾的數(shù)據(jù)如下圖所示。
再依次點擊File——Add layer,添加network,vehicles,activities,如圖所示。
Step4:最后拖動仿真速度,使其不為0,即可得到仿真結(jié)果,如圖所示。
MATSim及VIA
提取碼:r4dg
參考:
1. MATSim-user-guide
2. via-manual
3. https://www.matsim.org/
4. https://www.via-corp.com/
5. https://www.twblogs.net/a/5b7e1dfe2b71776838556579
編輯:莊楨
“交通科研Lab”:分享學(xué)習(xí)點滴,期待科研交流!
如果覺得還不錯
點這里!👇👇👇
總結(jié)
以上是生活随笔為你收集整理的java 多模块项目 包路径冲突_多智能体仿真建模在交通中的应用|MATSim入门指南...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 末影龙蛋怎么孵化手机版
- 下一篇: float函数类型如何转换