Anylogic 正在将值分配给所有实体,而不是仅分配给一个实体

Anylogic is assigning the value to all entities instead of only one

我的来源在 "On at exit" 字段中有以下代码: TRUCK.ID_number = 参数; 参数 = 参数 + 1;

然后,每辆卡车都会收到一个 ID:1, 2, 3, ...

问题是所有卡车同时循环,看起来每次生成新卡车并运行代码时都会重置所有卡车的 ID。

例如:当在源中创建卡车 4 (ID = 4) 时,所有其他卡车都收到 ID 4,因此我无法知道每辆卡车的正确 ID。

我做错了什么?

几件事。首先,您需要在 onExit 代码框中使用关键字 agent。所以在你的情况下,agent.ID_number=parameter。请仔细阅读 AnyLogic 代码框中随处可见的这些特定关键字。我称之为 "magic lightbulb",另请参阅我关于该主题的博客:

The magic lightbulb

其次,新创建的代理会自动获得一个唯一索引(如果它们属于同一种群)。您可以使用卡车代理中的 getIndex() 方法访问它。

答案是:使用entity.ID_number=参数