无论是你是更侧重于工程实践还是更侧重于理论研究,交通仿真总是一个绕不开的话题。常用的交通仿真软件包括Vissim、Paramics、Anylogic、Transcad等等。近年来,随着ABM概念的兴起,交通领域内也出现了以MATSim(the Multi-Agent Transport Simulation)为代表的多主体仿真软件。
入门指南
本文将为MATSim仿真软件做一个入门指南,内容主要分为以下四部分:
第一,什么是多智能体(主体、代理)仿真;
第二,MATSim是什么,能实现什么,有什么优势;
第三,如何配置MATSim开发环境,安装MATSim,并显示仿真结果;
最后,以柏林数据为例,完成MATSim的仿真操作。
1. 什么是多智能体仿真?
智能体基模型(agent-based model,ABM), 又称多智能体系统(multi-agent system, MAS)是一种用来模拟具有自主意识的智能体(独立个体或共同群体,例如组织、团队)的行动和相互作用的计算模型,通过图像展示评估智能体在系统整体中的作用。
基于多智能体模型是一个微观模型,通过模拟多个智能体的同时行动和相互作用以再现和预测复杂现象。这个过程是从低(微观)层次到高(宏观)层次的涌现。
常用的ABM模型工具箱有SWARM,Repast,MASON,mass,NetLogo等。
下图是NetLogo模型库中的Flocking模型。该模型试图模仿鸟类的成群结队(由此产生的运动也类似鱼群)。模型中并不存在领航鸟,每只鸟都遵循一套完全相同的规则,随着时间演化,鸟群由此而生。
Flocking模型初始态
Flocking模型演化一段时间后
2. MATSim是什么,能实现什么,有什么优势?
首先先看一个MATSim的仿真案例。
接下来引入MATSim的定义:
MATSim提供了一个框架来实现大规模的基于智能体的交通仿真。
该框架由几个模块组成,这些模块可以组合或单独使用,也可以用自己的成果替换模块,以测试自己工作的单个方面。
目前,MATSim提供的框架包括需求建模、基于agent的出行仿真(交通流仿真)、重新规划、迭代仿真控制器以及分析模块生成输出的方法。
与其他传统交通仿真软件不同,MATSim的优势和特征体现在:
- 基于智能体的日常出行行为的多模式仿真。
- 大场景中仍能保证很高的仿真效率。
MATSim能够在数十万路段的网络上模拟数百万agent的场景。你所需要的只是一台有足够内存、运行速度快的台式电脑,MATSim通常只需要几分钟就能模拟出完整的一天。 - 开源性、多平台性。
传统的交通仿真软件通常存在两个缺点:底层不易调试、成本高昂,而MATSim完美克服了这两个弊端。MATSim不但可以免费下载使用的,而且其是以模块化的方式存储源代码的,这意味着研究者可以在其基础上进行二次开发。
3. MATSim的安装
MATSim的运行是基于JAVA编译器实现的,其可视化可以基于VIA软件实现的,该软件免费下载,但对agents数量有限制,免费版最多加载500个agents。
因此我们需要首先配置Java和Eclipse开发环境,之后下载MATSim包,并通过Eclipse查看、编辑、运行MATSim源代码,最后下载VIA软件。
1. 关于Java环境和Eclipse的配置,网上有很多资料,这里就不再赘述,小伙伴们可以自行百度,但这里面有个坑,建议不要选择较新版本的JAVA环境,可能会与MATSim产生不兼容的问题。
2. 关于MATSim的安装,官网上目前提供两种类型,一种为jar类型,该类型安装更为方便,底层代码不可见,不可二次开发,也不利于后续的学习、使用,这里不再介绍;另一种是源代码包。
由于墙的限制,从官网下载MATSim时速度较慢,这里直接给出的源代码包(点击【阅读原文】)。
当环境配置好后,下面我们一步一步的将MATSim文件添加到Eclipse的project中,并让其运行起来。
Step1:在Eclipse中按照File——New——Java Project新建一个工程(project),如图下图所示。并按照红框的顺序依次配置改工程的名字、储存地址,最后点击完成。
Step2:找到刚才配置的project地址(笔者地址为D:\【学术】\【研究生】\【代码】ecplise\matsim_demo),并打开名为src的文件夹,把下载好的matsim-master文件夹打开,依此点击打开matsim/src/main/java,会看到里面有一个名为org的文件夹,复制并粘贴到刚才的src文件夹中。
Step3:在project的文件夹中新建一个名为lib的文件夹,将刚才下载的库文件matsim-lib打开,把其中libs文件夹中的所有.jar文件都复制粘贴到刚才新建的lib文件夹中。
Step4 :打开Eclipse,在刚才新建的matsim工程右击鼠标,并依次点选Bulid Path——Configure Build Path,打开后的窗口如下图所示,在Libraries页中点击Add JARs...选择我们刚才新建的project,并将其lib中的所有jar文件添加进来,然后依次点击确定。
到这里,MATSim的配置基本结束,但如果你的project上面还有一个红色叉号,说明配置中有一些操作不正确。
3. VIA为免安装版,下载后直接点击Via64.exe使用即可,其安装包也已放入文末链接。
4. MATSim仿真案例
最后我们基于MATSim实现一个小型路网的仿真。
Step1:打开Eclipse,在src下找到org.matsim.run.gui,如下图所示,右击Gui.java,依次点击run as——java application。
Step2: MATSim GUI界面如图所示,configuration file 框内输入配置文件路径,Output directory框内为默认的输出文件路径。这里以官方的柏林数据为例,其路径为“matsim-master\examples\scenarios\ berlin”,点击Start MATSim,开始仿真。
当界面窗口出现下图红框所示 shutdown completed 时,仿真结束。
Step3:打开对应文件,在via中依次点击File——Add data, 添加output文件夹的数据如下图所示。
再依次点击File——Add layer,添加network,vehicles,activities,如图所示。
Step4:最后拖动仿真速度,使其不为0,即可得到仿真结果,如图所示。
MATSim及VIA
提取码:r4dg