基于代理的建模资源[关闭]
-
03-07-2019 - |
解决方案
我在2009年6月发现了一项回答您问题的调查:
基于代理的建模和仿真工具概述
金。 R.J.艾伦
<强>抽象强>结果 基于代理的建模和仿真是计算上的 基于离散事件模拟的苛刻技术 起源于遗传算法。这是一种强大的技术 模拟动态复杂系统并观察&#8220; emergent&#8221;行为。 ABMS最常见的用途是社交模拟和优化 问题,如交通流量和供应链。我们会调查 计算科学和工程的其他用途。 ABMS已经 适用于在GPGPU等新型架构上运行(例如nVidia使用 CUDA)。阿贡国家实验室有一个关于Exascale ABMS的网站 并在SciDAC的资助下在IBM BlueGene上运行模型 程序。我们计划组织一个关于ABMS方法论的研讨会 2009年夏季申请。关键词代理建模, 考古学
其他提示
我还建议 NetLogo 。它是一种基于徽标的IDE +环境+编程语言(基于Lisp),可以让您快速构建多代理模型。我发现我可以在几个小时内从研究文章中复制(模拟)算法,这些算法需要花费数周时间才能与其他库一起实施。
您可以在此页面上查看我的部分型号。
在建模方面,请看一下面向代理的建模语言FAML。这是一篇非常好的学术论文,但根据您的兴趣可能有所帮助: http://ieeexplore.ieee.org/xpl/freepre_abs_all.jsp?isnumber=4359463&arnumber=4967615
我知道这是一个旧线程,但我认为添加一些额外信息不会有什么坏处。有一个很棒的新网站专门用于基于代理的建模。该网站包含指向许多领域中基于代理的建模的论文,教程,工具,资源和研究人员的链接。
你还应该看看 Madkit和Turtlekit
旧线程,但为了完整性,还有 Anylogic 和 pyabm ,可用于ABM。
我有在多种环境/语言中编写基于代理的模型的经验。我的观点是,如果你想实现一个相对简单的模型,请使用Netlogo。也可以将Netlogo用于重型模型(我已成功完成),但在某些时候,java / python / c ++等编程语言的灵活性超过了Netlogo中可用的本机方法的便利性,尤其是当表现成为一个主要问题时。
Repast变得有点臃肿。如果您是一位经验丰富的程序员,那么您真正需要开始构建ABM的是能够安排事件和绘制随机数。其余的(定义代理/环境及其行为)您可以自己制作。在管理模型中的对象时,请使用您习惯使用的常规数据结构(数组/散列/树/等)。为此,我正在开发一个名为“ABMUtils”的非常轻量级的Java库。 (在github上)实现调度程序并包装随机数生成器。这是处于早期开发阶段,但我希望在接下来的几个月里能够充实(保持简单)。
如果您是进化经济学家,您还可以查看模拟开发实验室(LSD)。
PHP和Java开发人员应该查看 KATO 。