java 多模块项目 包路径冲突_多智能体仿真建模在交通中的应用|MATSim入门指南...

f2285023eb4c3b92936e232539f98d7a.png

点击蓝字|关注我们

无论是你是更侧重于工程实践还是更侧重于理论研究,交通仿真总是一个绕不开的话题。常用的交通仿真软件包括Vissim、Paramics、Anylogic、Transcad等等。近年来,随着ABM概念的兴起,交通领域内也出现了以MATSim(the Multi-Agent Transport Simulation)为代表的多主体仿真软件。

入门指南

本文将为MATSim仿真软件做一个入门指南,内容主要分为以下四部分:

第一,什么是多智能体(主体、代理)仿真;

第二,MATSim是什么,能实现什么,有什么优势;

第三,如何配置MATSim开发环境,安装MATSim,并显示仿真结果;

最后,以柏林数据为例,完成MATSim的仿真操作。

6b5eb3e88764c3cdff96acffad2a0e4a.gif 6b5eb3e88764c3cdff96acffad2a0e4a.gif

1. 什么是多智能体仿真?

智能体基模型(agent-based model,ABM), 又称多智能体系统(multi-agent system, MAS)是一种用来模拟具有自主意识的智能体(独立个体或共同群体,例如组织、团队)的行动和相互作用的计算模型,通过图像展示评估智能体在系统整体中的作用。

基于多智能体模型是一个微观模型,通过模拟多个智能体的同时行动和相互作用以再现和预测复杂现象。这个过程是从低(微观)层次到高(宏观)层次的涌现。

常用的ABM模型工具箱有SWARM,Repast,MASON,mass,NetLogo等。

下图是NetLogo模型库中的Flocking模型。该模型试图模仿鸟类的成群结队(由此产生的运动也类似鱼群)。模型中并不存在领航鸟,每只鸟都遵循一套完全相同的规则,随着时间演化,鸟群由此而生。

887d8fbbcbff1ae7c21bb0505bf98e10.png

Flocking模型初始态

db3646c627b4bf300d4b9b9851b49f8d.png

Flocking模型演化一段时间后

6b5eb3e88764c3cdff96acffad2a0e4a.gif 6b5eb3e88764c3cdff96acffad2a0e4a.gif

2. MATSim是什么,能实现什么,有什么优势?

首先先看一个MATSim的仿真案例。

接下来引入MATSim的定义:

MATSim提供了一个框架来实现大规模的基于智能体的交通仿真。

该框架由几个模块组成,这些模块可以组合或单独使用,也可以用自己的成果替换模块,以测试自己工作的单个方面。

目前,MATSim提供的框架包括需求建模基于agent的出行仿真(交通流仿真)、重新规划、迭代仿真控制器以及分析模块生成输出的方法。

与其他传统交通仿真软件不同,MATSim的优势和特征体现在:

  • 基于智能体的日常出行行为的多模式仿真

  • 大场景中仍能保证很高的仿真效率

    MATSim能够在数十万路段的网络上模拟数百万agent的场景。你所需要的只是一台有足够内存、运行速度快的台式电脑,MATSim通常只需要几分钟就能模拟出完整的一天。

  • 开源性、多平台性。

    传统的交通仿真软件通常存在两个缺点:底层不易调试、成本高昂,而MATSim完美克服了这两个弊端。MATSim不但可以免费下载使用的,而且其是以模块化的方式存储源代码的,这意味着研究者可以在其基础上进行二次开发。

6b5eb3e88764c3cdff96acffad2a0e4a.gif 6b5eb3e88764c3cdff96acffad2a0e4a.gif

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),如图下图所示。并按照红框的顺序依次配置改工程的名字、储存地址,最后点击完成。

95f8c969962ed0663fd51eb65368020e.png

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文件添加进来,然后依次点击确定。

9d8e85d0f399fd4065b92ab4061d47b3.png

到这里,MATSim的配置基本结束,但如果你的project上面还有一个红色叉号,说明配置中有一些操作不正确。

3. VIA为免安装版,下载后直接点击Via64.exe使用即可,其安装包也已放入文末链接。

ff0d8032618baaf29ce78596f688fbbd.png

6b5eb3e88764c3cdff96acffad2a0e4a.gif 6b5eb3e88764c3cdff96acffad2a0e4a.gif

4. MATSim仿真案例

最后我们基于MATSim实现一个小型路网的仿真。

Step1:打开Eclipse,在src下找到org.matsim.run.gui,如下图所示,右击Gui.java,依次点击run as——java application。

f79666069292474afd9743bd08030ea1.png

Step2: MATSim GUI界面如图所示,configuration file 框内输入配置文件路径,Output directory框内为默认的输出文件路径。这里以官方的柏林数据为例,其路径为“matsim-master\examples\scenarios\ berlin”,点击Start MATSim,开始仿真。

b02ddf3975fec5e581354b7c72473607.png

当界面窗口出现下图红框所示 shutdown completed 时,仿真结束。

4c25691610702daac6c3af2fba3c560f.png

Step3:打开对应文件,在via中依次点击File——Add data, 添加output文件夹的数据如下图所示。

ef287efd9829ffa3a2bb8a98642a3867.png

再依次点击File——Add layer,添加network,vehicles,activities,如图所示。

0e9e0d950e77ea73e35c47c0e8bebec6.png

Step4:最后拖动仿真速度,使其不为0,即可得到仿真结果,如图所示。

13fd0dc1aba55655eae151683c2e2a34.png

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

编辑:庄桢

0f9c6d7ad5e3bf87cd866fb41cdb9e83.gif

“交通科研Lab”:分享学习点滴,期待科研交流!

70f32b450dcda7a8f32a0d4070e65ac6.png

如果觉得还不错

点这里👇👇👇

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值