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

AnyLogic中冲压Resource Pool产品变体切换时准备时间实现咨询

冲压资源池变体切换准备时间实现方案

核心思路

为资源池内的每个资源绑定「最后处理的产品变体」标识,实体进入服务前对比变体差异,差异存在时触发准备时间延迟,处理完成后更新资源的变体标识。

具体步骤

  • 给资源添加变体追踪参数
    在资源池的Resource自定义属性中添加currentVariant(推荐用枚举类型,比如ProductVariant,也可使用字符串),初始值设为null,用于记录该资源最后处理的产品变体。

  • 实体进入前的变体判断逻辑
    在实体抵达冲压服务前,添加SelectOutput分支块(或直接在服务的On Enter触发器中处理):

    1. 提前锁定资源池中的可用资源(通过resourcePool.allocate(agent)方法获取分配的资源);
    2. 对比锁定资源的currentVariant与当前实体的productVariant:
      • 若两者不同,将实体导向准备时间Delay块(设置好预设的准备时长);
      • 若相同或资源未处理过任何变体(currentVariant为null),直接进入冲压服务。
  • 更新资源的变体标识
    在冲压服务的On Release触发器中,执行代码更新资源的变体记录:

    Resource usedResource = getReleasedResource();
    usedResource.currentVariant = agent.productVariant;
    
  • 处理资源池初始状态
    第一个进入服务的实体,因资源的currentVariant为null,直接跳过准备时间;处理完成后自动更新标识,后续变体切换时触发准备逻辑。

额外优化建议

  • 用枚举类型定义ProductVariant,避免字符串匹配的错误;
  • 若资源池容量为3,可优先选择同变体的可用资源,减少切换次数(通过resourcePool.find(resource -> resource.currentVariant.equals(agent.productVariant))筛选资源);
  • 准备时间可设置为变体间的差异化时长,比如从A到B和B到A的准备时间不同,可通过HashMap<VariantPair, Double>存储对应时长。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 21:34:52