我需要找到一种基于代理的语言或框架,它允许用户“倒回”模型,更改一些参数,并查看它如何使用新参数进行开发。基本上-允许用户在模拟中进行时间旅行并分支不同时间线的ABM。
这样的东西真的存在吗?
发布于 2013-04-12 10:35:22
我不知道是否有像你所想的那样的东西开箱即用,但你通常可以通过使用固定的随机种子来实现非常类似的东西(例如,参见section on random numbers in the NetLogo programming guide)。如果您使用相同的种子,一个设计良好的ABM平台每次都会给您相同的结果,除非您在模型中更改了一些东西:在您的情况下,某些参数在某个点上。
发布于 2013-04-23 04:38:34
我认为你需要做两件事
1)开发一种机制来保存代理的状态和模型在每个模型刻度时的状态。这就是所谓的freeze-drying data (至少在Repast中是这样的)。
2)将每个冻干状态保持在二叉树状结构中。在此示例中,根节点成为“未更改”的时间轴,而任何子节点都是由于某些参数更改而可能的替代。
即使对于简单的模型,持有许多看似合理的期货的存储需求也成为需要管理的东西。
另外,你打算如何展示这个模型?Repast Simphony中的2D呈现引擎还存在一些不足之处,让大量Java Swing组件出现在您的屏幕上不太可能有效。如果您愿意花时间构建自定义视图来渲染模拟,我建议您查看Crooks的工作,尤其是他的论文covering loosely coupled ABM's.
https://stackoverflow.com/questions/15946270
复制相似问题