基于代理的建模资源

10

我想了解关于基于代理的建模方面有哪些工具包、语言和库,以及它们的优缺点是什么?

一些我所想到的例子包括 Swarm, RepastMASS

10个回答

8
我找到了一份来自2009年6月的调查,回答了你的问题:
代理模型建模和仿真工具调查
Au. R.J. Allan
摘要 代理模型建模和仿真是一种基于离散事件仿真的计算技术,起源于遗传算法,需要高强度计算。它是一种强大的技术,用于模拟动态复杂系统并观察“ emergent ”行为。 ABMS 最常见的应用是社会模拟和优化问题,例如交通流量和供应链。我们将研究在计算科学和工程中的其他应用。 ABMS 已经被改编为在新颖的架构上运行,如 GPGPU(例如 nVidia 使用 CUDA)。 Argonne 国家实验室有一个关于 Exascale ABMS 的网站,并且已经在 IBM BlueGene 上运行了模型,获得了 SciDAC 计划的资金支持。我们计划在 2009 年夏季组织一次关于 ABMS 方法和应用的研讨会。 关键词:代理模型建模,考古学

http://epubs.cclrc.ac.uk/bitstream/3637/ABMS.pdf


6
我推荐使用NetLogo。它是基于Logo(又称Lisp)的IDE+环境+编程语言,可以快速构建多代理模型。我发现,我可以在几个小时内复制(模拟)研究论文中的算法,而其他库可能需要数周才能实现。
您可以在此页面查看我的一些模型。

1

1

我知道这是一个旧帖子,但我认为添加一些额外信息不会有害。有一个专门致力于基于代理的建模的新网站非常棒。该网站包含了多个领域中从事基于代理建模的研究人员的论文、教程、工具和资源链接。


1

虽然这是一个旧帖子,但为了完整起见,还有Anylogicpyabm可以用于代理基础模型。

我在几个环境/语言中编写过代理基础模型。我的观点是,如果你想实现一个相对简单的模型,请使用Netlogo。Netlogo也可用于重度模型(我成功地完成了这个项目),但在某些时候,像Java / Python / C ++这样的编程语言的灵活性超过了Netlogo中可用的本机方法的便利性,特别是当性能成为主要问题时。

Repast变得有点臃肿。如果您是一位经验丰富的程序员,您只需要具备调度事件和绘制随机数的能力,就可以开始构建一个ABM。其余部分(定义代理/环境及其行为)可以由您自己编写。当涉及到管理模型中的对象时,请使用您习惯的常规数据结构(数组/哈希/树等)。为此,我正在开发一个非常轻量级的Java库,名为“ABMUtils”(在github上),它实现了调度程序并包装了随机数生成器。这还处于早期开发阶段,但我希望在未来几个月内充实事物(保持简单)。

1

我猜你是指www.madkit.org。 - rics

1

1

我在2008年OSCON上了解了Dramatis,这是一个Ruby和Python的基于代理的框架。作者(Steven Parkes)在他的博客中有一些参考资料,并且正在运行一个面向语言的Actors discussion list

这个页面在erights.org上提供了一组很棒的参考资料,涉及并探讨了Actors消息传递模型的核心论文。


0

虽然LSD很有趣,但似乎不是一种代理建模工具。 - rics
@rics 为什么你说LSD不是ABM工具?达林顿指的那张纸上也写着,我刚刚检查过了 :/ - heimatlos
更准确地说,我在手册中只看到了一次代理的提及。我认为多层对象结构可以用来实现代理。 - rics

-1

PHP和Java开发人员应该看一下KATO


KATO 不是关于代理模型和仿真的。 - David J.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接