你怎么解释Netlogo中的宏行为?

时间:2015-11-06 21:52:36

标签: netlogo agent-based-modeling

我有兴趣知道人们使用什么策略从模型的结果(从观察到的紧急行为)向后工作,试图回答这个问题:导致这个问题的个体乌龟是什么宏观行为?

2 个答案:

答案 0 :(得分:2)

你是否在问,“考虑到宏观层面的行为,你怎么能猜出管理代理人[龟]的规则?”?或者您是否在问:“鉴于您拥有源代码,如何确定生成宏级行为的源代码是什么?”?

经常,回答第一个问题非常困难。我没有建议。

回答第二个也很难。

一种策略是尝试不同的初始配置,或在代理[turtles]中尝试不同的规则。如果你没有猜测要改变什么,那么首先要做出任意选择,直到你开始猜测,甚至是模糊的直觉。然后改变代码以探索您的猜测是否正确,以及允许您优化猜测的方式。这种策略并不总是有效。

如果这是你想要产生的,那么尝试思考你如何生成宏观行为可能是有用的。您可能不知道答案可能是什么 - 这相当于回答上面的第一个问题 - 但如果您这样做,可能会导致猜测您可以用于前面的策略。

答案 1 :(得分:2)

我在调试时这样做,因为有时我会遇到意外的宏行为,我需要确定它是真实的还是错误的。通常我要做的是设置随机种子然后查看行为中涉及哪些代理以及何时(在NetLogo中打勾)它发生。然后,我会重新运行模型并事先停止几个滴答,并检查我知道将要参与行为的代理,以查看它们或它们的环境是否有异常。宏行为通常是由于代理,环境和事件的交互而发生的,所以我试图在解释它们如何组合以创建行为之前确定这些元素是什么。一旦完成,我通常可以跟踪代码(放入打印语句并检查相关代理)以确定其发生的原因。