提问者:小点点

参数变化实验中的NullPointerException与代理统计


在实验开始时,我收到错误消息“迭代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()
;}



共1个答案

匿名用户

找到了问题制造者,但是,我不确定它为什么有效:

不知何故,我在代理中创建的数据集导致statechart中所有代理的状态在每个时间步上自动更新。这在我的模型中是一个问题,因为有些状态应该只是偶尔更新。所以我简单地将数据集移动到main。

我不想推测,但如果你遇到同样的问题,检查你的数据集的位置!