如何在 Anylogic 中通过代码实例化一个 Agent

How to instantiate an Agent via code in Anylogic

我在使用 Anylogic 时遇到问题:我正在编写一个函数,我需要在其中声明一个现有代理类型的新项目。 如果我用代码声明它:

MyAgent name = new MyAgent();

一切正常,但是当我尝试执行一个函数来更改内部值时,

name.func();

给我一个NullPointerException,因为声明的MyAgent的内部变量好像不存在。 我错过了什么? 非常感谢您的帮助

某些函数在以编程方式创建的代理中不可用,例如默认的随机数生成器和传递给代理的某些其他实用函数。

所以如果你这样做,例如它不会工作,你会得到一个 NPE(空指针异常)

而总是使用人口 - 除非你知道你不会使用任何这些内部功能。

MyAgent name = add_myAgents();

其中 myAgents 是人口。

当你有人口时使用 add_myAgents() 方法,但如果你不想使用定义的人口,你必须这样做:

MyAgent m=new MyAgent();
m.createAndStart(anyAgent);
m.lognormal(0.1,0.1,5);

createAndStart 为您施展魔法。

anyAgent 实际上可以是您模型的任何现有代理(例如 main),人口仍将在您的 top-level 代理的默认人口中创建,无论您在那里放什么。