多智能体仿真平台调研

1. 简介

调研的目的是为了确定“基于博弈的舆情演化与多智能体仿真”研究中用到的仿真平台。
两部分工作:平台调研和经典案例查找。
关于多智能体平台的中文资料很少,所以平台的比较主要参考了外文网站、相关论文以及网站上的评论。然后对四十多个仿真平台从软件的易用性、是否有图形界面、是否开源、编程语言以及适用领域进行了总结,综合了多个外文网站上专业的平台比较。

2. 平台比较

2.1 统计的平台有:


AgentFactory、AgentBuilder、AgentScape、AGLOBE、AnyLogic、Cormas、Cougaar、CybelePro、EMERALD、GAMA、INGENIAS Development kit、JACK、JADE、Jadex、JAMES II、JAS、Jason、JIAC、MaDKit、MASON、NetLogo、Repast、SeSAM、Swarm、AOR Simulation、Ascape、BDI4Jade、Behaviour Composer、Brahms、Breve、Construct、DALI、DeX、FLUXY、ICARO-T、MAS-SOC、Mesa、StarLogo、SimPy、SimAgent、IGen、SOAR、PyABM。
除此之外还有很多的平台,可以参考以下资料:

  1. A Survey of Agent Platforms
  2. Comparison of agent-based modeling software
  3. A Survey of Agent Platforms
  4. Tools of the Trade: A Survey of Various Agent Based Modeling Platforms
  5. Survey of Agent Based Modelling and Simulation Tools

2.2 平台的更多信息没有都列举出来,主要从几个方面做了综合的考察。并且结合了一些英文论文以及网站评论的内容得出以下结论。

  • 从使用率来讲,最常用的几款仿真平台是有:Swarm、NetLogo、AnyLogic、Repast、Mason、Jack、JADE。
  • 从易用性和GUI特征讲,较好的有:AnyLogic、JACK、JADE、MaDKit、NetLogo、SeSAM。
  • 主要的编程语言包括:Java、C++、C、C#、NetLogo、Python、XML。
  • 从模型和第三方库方面讲,下面平台有更多优势:Cormas、MadKit、MASON、NetLogo、Repast、Swarm、StarLogo、SOAR
  • 对Python语言的平台进行了查找,找到如下的平台或库:MaDKit、Repast Py、Breve、DeX、Mesa、SimPy、PyABM、SPADE。

然后我对之前收集的关于互联网行为的仿真论文进行泛读之后,对其中所涉及到的仿真工具进行了统计。在我已看的21篇中文论文中,涉及到工具仿真的论文有10篇,其中利用Netlogo进行仿真的有7篇,1篇用Delphi,1篇用AnyLogic、一篇用Java的Jung。可以看出,在国内研究互联网行为的智能体仿真所用的工具种类并不多,主要是NetLogo。除此之外,我浏览了Quora上的一些评论,外国网友对NetLogo的推荐度也比较高。


2.3 接下来分别对支持Python的平台(库)进行分析:

Repast Py :是 Repast的Python版,Repast是一款用的比较多的开源仿真平台,最初只有Java版,从3.0版本开始,提供了C#和Python语言的版本。Repast借鉴了很多Swarm的东西,被称为类Swarm工具包,并且后来居上现在成为了很流行的仿真平台。通过查找资料发现对于大多数的研究主要是基于Repast的Java版实现的,Repast Py 参考资料很少。因此有人推荐是在Repast Py上用Python脚本编写基础模型,而在Repast J上用Java或在Repast .Net上用C#编写高层的模型,关于具体哪些是基础模型哪些是高级模型并没有作更多的探索。下面提供一些参考网站:

  1. Repast Py 下载及Tutorial
  2. http://repast.sourceforge.net/repast_3/tutorials.html

Breve:适用于多智能体及人工生命的3D仿真,软件于13年停止更新。关于Breve的相关资料并不是很多。

  1. Breve主页

PyABM:一个Python库,基于Python2.7,最近一次更新是在13年2月,目前有一个基于PyABM开发的案例ChitwanABM

  1. pyabm 0.3.3
  2. pyabm主页

SimPy:是一个基于过程的离散事件仿真框架,作者提供了7个example供参考,最近一次更新于15年6月。基于Python2.7以上版本。

  1. 相关内容可见pypi
  2. Inroduction to Discrete-Event Simulation and the SimPy Language. Norm Matloff. 2008

Mesa:一个新的开源包,基于Python3.0以上,结果基于浏览器可视,內建分析工具,最近一次更新16年3月。

Its goal is to be the Python 3-based alternative to NetLogo, Repast, or MASON.

  1. Mesa 0.7.0
  2. 一个视频介绍

SPADE:是一个多智能体组织平台,一个Python库。最近一次更新于13年5月,基于XMPP协议。工作方式跟Jade和MadKit有些类似,没有找到太多资料跟example。

  1. SPADE 2.2.1
  2. 文档

2.4 小结

总的来说,基于Python的仿真平台目前就搜到上面几个,还有一个MadKit文档中介绍有Python实现但是并没有找到任何资料,所以就不考虑了。与Java平台的丰富性相比Python平台确实没有什么优势,而且从相关学习资料还有案例、模型的数量讲,也没有经典的Swarm、NetLogo等平台的多。

  • 所以,如果不考虑编程语言的话,从我调研的结果来看,NetLogo有很大的优势,包括它有GUI界面,使用门槛低,对于不复杂的模型构建是一个很好的选择,编程语言的学习可能需要花去一些学习成本。其他的Java版的平台也有很多常用的,就不再进行更多的比较了。
  • 如果是从支持Python的角度来考虑,首先把Breve和PyABM剔除,因为考虑到适用领域和软件支持它们都不太适合。RepastPy的话目前不太好得出结论,因为关于Repast的Java版资料比较丰富,但是Py版的很少,两个平台之间的模型是否可兼容有待确定。在SimPy、SPADE跟MesaMesa中,SimPy在提供example方面稍好一点,Mesa虽然没有example提供参考,但是它的两个特点(Browser-based visualization 跟Built-in tools for analysis)对于我们的仿真来讲可能会带来一些帮助,当然Python平台弱势还是没有太多可参考的资料。

3. 经典案例

最佳渠道就是直接到平台官网上查找,然后ABM的会议以及其他一些论坛等会有相关模型的收集整理,还有相关论文资料作为参考。
以下是我找到的一些相关网站和论文:

  1. NetLogo官网
  2. ABM网站openabm,包括各种平台的模型、源码。
  3. http://www.pcs.usp.br/~mabs/
  4. http://www.agent-based-models.com/blog/resources/agent-based-models/
  5. Macal C M, North M J. Agent-based modeling and simulation: ABMS examples[C]// Simulation Conference. 2008:101-112.
  6. Helbing D, Balietti S. How to Do Agent-Based Simulations in the Future: From Modeling Social Mechanisms to Emergent Phenomena and Interactive Systems Design[J]. Social Science Electronic Publishing, 2013.
  7. Gilbert, Nigel G. Agent-Based Models[J]. Sage Publications Inc, 2007.
  8. An Introduction to the Repast Software
  9. Davidsson P, Holmgren J, Kyhlbäck H, et al. Applications of Agent Based Simulation[M]// Multi-Agent-Based Simulation VII. Springer Berlin Heidelberg, 2007:15-27.
  10. Introduction to Computational Modeling of Social Systems
  11. Individual(Agent)-Based Modeling with NetLogo A Predator-Prey Example
  12. Macal C M, North M J. Introduction to Agent-based Modeling and Simulation[J]. In: Argonne National laboratory, MCS LANS Informal Seminar. (2006) Available athttp://wwwunix.mcs.anl.gov/~leyffer/listn/slides06/MacalNorth.pdf (access 07 th, 2007:86 – 98.
  13. Agent-based and Individual-based Modeling: A Practical Introduction
  14. AN INTRODUCTION TO AGENT-BASED MODELING
此条目发表在其他分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注