You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AnyLogic中为三个Source创建的Agent生成唯一数值ID?

AnyLogic多Source生成唯一Agent ID及Queue ID存储方案

1. 全局计数器设置

  • 在模型全局变量区域创建int类型变量globalIdCounter,初始值设为0。用这个变量统一管控所有Source的ID生成逻辑,从根源避免重复。

2. 为Agent添加ID属性

  • 打开你的Agent类(自定义Agent或默认Agent),新增int类型属性agentId,用于存储每个Agent的唯一标识。

3. Source端ID分配代码(On Before Arrival事件)

每个Source的「Actions - On before Arrival」事件中,添加以下代码:

agent.agentId = ++globalIdCounter;
  • 逻辑说明:前置自增操作++globalIdCounter会先将计数器加1,再赋值给当前Agent的ID属性。三个Source共用同一个全局计数器,生成的ID绝对唯一,不会出现重复冲突。

4. Queue存储ID并输出

  • 创建全局List<Integer>类型变量queueIdList,初始值设为new ArrayList<>(),用于按FIFO顺序存储进入Queue的Agent ID。
  • 在Queue的「Actions - On Enter」事件中,添加代码将当前Agent的ID加入列表:
queueIdList.add(agent.agentId);
  • 若需要输出ID列表,可在模型结束事件、自定义按钮点击事件等触发点添加打印代码:
// 输出到AnyLogic内置控制台
traceln("Queue中ID的FIFO顺序:" + queueIdList);
// 或输出到系统控制台
System.out.println("Queue中ID的FIFO顺序:" + queueIdList);

内容的提问来源于stack exchange,提问作者anylogicuser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 10:00:06