1

我很想知道人们使用什么策略从模型的结果(从观察到的紧急行为)中反向工作以试图回答这个问题:导致这种宏观行为的个体海龟是什么?

4

2 回答 2

2

我在调试时会这样做,因为有时我会得到意想不到的宏观行为,我需要确定它是真实的还是错误的。通常我会做的是设置随机种子,然后查看哪些代理参与了该行为以及何时(在 NetLogo 中打勾)它发生。然后我会重新运行模型并提前停止它几个滴答声,并检查我知道将参与该行为的代理,看看他们或他们的环境是否有什么不寻常的地方。宏观行为通常是由于代理、环境和事件的相互作用而发生的,所以我试图确定这些元素是什么,然后再解释它们如何结合起来创造行为。一旦完成,我通常可以跟踪代码(放入打印语句并检查相关代理)以找出它是如何发生的。

于 2015-11-09T10:03:35.683 回答
2

您是在问,“鉴于宏观层面的行为,您如何猜测管理代理 [海龟] 的规则是什么?”?或者你是在问,“鉴于你有源代码,你如何弄清楚生成宏观行为的源代码是什么?”?

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

回答第二个问题也很困难。

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

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

于 2015-11-08T07:25:01.033 回答