AnyLogic:如何在同一时间批量创建带不同参数的多智能体
同一批次智能体分组分配ID的优化方案
嵌入分组配置逻辑
把各批次的分组规则(比如00:00对应的ID和数量)单独存在代码或模型的配置结构里,比如字典、数组:batch_rules = { "00:00": [(101, 24), (102, 9), (103, 31), (104, ...), (105, ...), (106, ...)], # 其他批次规则按需添加 }读取Excel的time和total后,匹配对应规则,循环每个分组的数量创建智能体并赋值ID,完全不用修改原始Excel,也不会产生冗余数据。
用数据库视图简化数据调用
单独建一张分组规则表(存ID、对应数量),然后在数据库里创建视图,将原始Excel导入的表和规则表关联,动态拆分每个批次的total到对应ID上。查询视图就能得到每个时间点、每个ID对应的创建数量,既保留原始数据的简洁,又能满足分组需求。在创建模块内做循环分配
如果用的是仿真类工具(比如AnyLogic),可以在源模块的创建逻辑里直接处理:先拿到当前批次的总数量和分组规则,然后分阶段创建——先创建24个ID=101的智能体,再创建9个ID=102的,依次类推,直到用完该批次的总数量,不用额外加多个源模块。
内容的提问来源于stack exchange,提问作者M. Müller
相关产品推荐
相关产品推荐

