在实验开始时,我收到错误消息“迭代5期间模型中的错误(数字在2、3和5之间变化)”,它指向main中的代理统计数据集,我试图将其添加到实验中的直方图数据集中。是否有可能在代理初始化之前尝试在某个地方收集代理统计信息?
更准确地说,我的设置:我的实验根代理是一个名为“公司”的代理。在该代理中,我添加了数据集“DSUser”,它只是收集位于主代理中的代理统计信息(item. inState(Firm…))。数据集DSUser是我尝试添加到直方图数据集“数据”中的参数变化实验的设置,如下所述。(不幸的是,我还不能添加屏幕截图,我太年轻了…)
在实验中,我使用以下设置:
模拟运行前:data. set();
模拟运行后:data. add(root.DSUser);
DSUser是我从主代理统计收集的数据集。我实验的顶级代理不是主代理(这会有问题吗?)。所以这个过程看起来像这样:在main中收集代理统计信息-
我在控制台中收到一条大错误消息,第一个错误指向
private double _DSPledgeUsers_YValue() {
return
get_Main().firms.NPledgeUsers()
;}
找到了问题制造者,但是,我不确定它为什么有效:
不知何故,我在代理中创建的数据集导致statechart中所有代理的状态在每个时间步上自动更新。这在我的模型中是一个问题,因为有些状态应该只是偶尔更新。所以我简单地将数据集移动到main。
我不想推测,但如果你遇到同样的问题,检查你的数据集的位置!