我知道这是一个旧帖子,但我认为添加一些额外信息不会有害。有一个专门致力于基于代理的建模的新网站非常棒。该网站包含了多个领域中从事基于代理建模的研究人员的论文、教程、工具和资源链接。
虽然这是一个旧帖子,但为了完整起见,还有Anylogic和pyabm可以用于代理基础模型。
我在几个环境/语言中编写过代理基础模型。我的观点是,如果你想实现一个相对简单的模型,请使用Netlogo。Netlogo也可用于重度模型(我成功地完成了这个项目),但在某些时候,像Java / Python / C ++这样的编程语言的灵活性超过了Netlogo中可用的本机方法的便利性,特别是当性能成为主要问题时。
Repast变得有点臃肿。如果您是一位经验丰富的程序员,您只需要具备调度事件和绘制随机数的能力,就可以开始构建一个ABM。其余部分(定义代理/环境及其行为)可以由您自己编写。当涉及到管理模型中的对象时,请使用您习惯的常规数据结构(数组/哈希/树等)。为此,我正在开发一个非常轻量级的Java库,名为“ABMUtils”(在github上),它实现了调度程序并包装了随机数生成器。这还处于早期开发阶段,但我希望在未来几个月内充实事物(保持简单)。我在2008年OSCON上了解了Dramatis,这是一个Ruby和Python的基于代理的框架。作者(Steven Parkes)在他的博客中有一些参考资料,并且正在运行一个面向语言的Actors discussion list。
这个页面在erights.org上提供了一组很棒的参考资料,涉及并探讨了Actors消息传递模型的核心论文。