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

求助:AnyLogic中Agent1注入时机优化实验搭建方案

AnyLogic优化实验搭建方案:Agent1注入时机与Agent2动态对齐

核心思路

你的需求完全可以实现,核心是分两步实验闭环:先采集Agent2的到达数据,再基于数据精准调度Agent1的创建,最终实现无过剩Agent1前提下的装配率最大化。

第一步:采集Agent2到达数据

  1. 在Agent2进入装配队列的触发逻辑中,添加代码记录每个Agent2的到达时间:
    • 新建全局列表agent2ArrivalTimes(类型为double),在Agent2进入队列的事件中执行:
      agent2ArrivalTimes.add(time());
      
    • 也可直接写入外部Excel表格,方便后续读取:
      writeToExcelFile("agent2_arrival_data.xlsx", "Sheet1", time(), rowIndex++);
      
  2. 运行一次基础实验,完整采集所有Agent2的到达时间序列。

第二步:基于采集数据调度Agent1创建

  1. 读取第一步采集的时间数据:
    • 若用全局列表可直接调用;若用Excel,用内置函数读取到列表:
      List<Double> agent2Times = readExcelFile("agent2_arrival_data.xlsx", "Sheet1", 0);
      
  2. 计算Agent1最优注入时间:对每个时间点减去固定加工时长50天,得到agent1CreateTime = agent2Time - 50。
  3. 调度Agent1创建:
    • 使用Schedule块:将计算好的时间序列导入Schedule的时间列表,设置每个时间点创建1个Agent1。
    • 或用自定义事件循环:实验启动时遍历时间列表,为每个时间点创建延迟事件:
      for(double createTime : agent2Times) {
          if(createTime > 0) {
              create_Agent1(createTime - time());
          }
      }
      
  4. 配置Agent1加工流程:设置固定50天加工时长,完成后直接进入装配队列,确保和对应Agent2同步到达Assembler。

关键约束与验证

  • 避免Agent1过剩:严格按照1:1比例,每个Agent2对应创建一个Agent1,无额外创建逻辑。
  • 装配率最大化:Agent1加工完成时间与Agent2到达装配队列时间完全匹配,Assembler可立即启动装配,无等待延迟。
  • 适配可变到达:每次实验前重新采集Agent2到达序列,生成对应Agent1调度计划,完全适配外部表定义的可变到达率。

可选优化:实时动态调度(无需预运行采集)

若不想分两次实验,可直接基于已知的外部表数据实现端到端调度:

  1. 模型初始化时读取外部表中所有Agent2的到达时间戳。
  2. 直接计算Agent1的创建时间,实验启动时一次性调度所有Agent1的创建事件。
  3. 该方式无需预运行,前提是外部表的Agent2到达时间在实验前已明确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 21:57:14