0

我需要找到一种基于代理的语言或框架,允许用户“倒带”模型、更改一些参数并查看它如何使用新参数进行开发。基本上 - 一个允许其用户在模拟中进行时间旅行并分支不同时间线的 ABM。

存在这样的东西吗?

4

2 回答 2

0

我不知道是否存在开箱即用的东西,但您通常可以通过使用固定的随机种子来实现非常相似的东西(例如,参见NetLogo 编程指南中关于随机数的部分)。如果您使用相同的种子,一个设计良好的 ABM 平台每次都会给您相同的结果,除非您更改模型中的某些内容:在您的情况下,某些参数会在某些时候发生。

于 2013-04-12T02:35:21.850 回答
0

我认为你需要在这里做两件事

1) 开发一种机制来在每个模型滴答时保存代理的状态和模型状态。这被称为冷冻干燥数据(至少在 Repast 中是这样的)。

2)将每个冻干状态保持在二叉树状结构中。在此示例中,您的根节点成为“未更改的”时间线,并且由于某些更改的参数,任何子节点都是可能的替代方案。

即使对于简单的模型,您对持有许多似是而非的期货的存储需求也成为需要管理的东西。

另外,您打算如何展示模型?Repast Simphony 中的 2D 渲染引擎有一些不足之处,并且在您的屏幕上弹出大量 Java Swing 组件不太可能有效。如果您愿意花时间构建自定义视图来渲染模拟,我建议您查看Crooks的工作,特别感兴趣的是他的论文涵盖松散耦合的 ABM。

于 2013-04-22T20:38:33.573 回答