首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AnyLogic -识别缴获的ResourcePool

AnyLogic -识别缴获的ResourcePool
EN

Stack Overflow用户
提问于 2022-03-08 08:41:18
回答 1查看 134关注 0票数 0

我正在AnyLogic混合仿真(DES + Agent )中建模一个服务流程。在这个过程中,我有不同的resourcePools,每个员工在流程中都有一个。我想知道的是,如果我能够通过一个AnyLogic函数获得当前由ResourcePool block.The使用的信息,那么我需要这些信息的原因是,通过使用函数,我将根据所捕获的resourcePool分配不同的延迟(例如,10分钟是rpA,15分钟是rpB)。我附上一个例子来说明我的问题。让我们假设这是我的过程:

我试着遵循本文OtherQuestion中显示的示例

因此,我创建了一个变量myPool

在“获取和”模块中使用。

在resourcePool中

但是,在编译模型时,我经常会收到错误(例如,rpA和rpB中的“Main类型未定义的方法myPool()”,以及捕捉中的“Main类型未定义的方法myPool()”。

我的java技能是非常基本的,所以我并没有真正理解如何编写我在这个问题中所需要的代码,OtherQuestion来解决我的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-08 10:20:22

在给出答案之前,这里有一个重要的背景知识: AnyLogic中的所有东西都是代理。通过延迟ResourceUnitDelayResourcePool本身的东西都是代理的实例。

知道了这一点,这里有一种方法可以获得使用资源池的延迟时间:

代码语言:javascript
运行
复制
double delayTime = (agent.resourceUnitOfPool​(rpA) != null)? 10.0 : 20:0;

上述语句在Java中使用三元表达式。这意味着对第一个agent.resourceUnitOfPool(rpA)进行了计算。该方法“在被捕获的资源单元中返回给定池的资源单元的第一次出现,如果未找到则返回null。”,这意味着:

  • 如果使用rpA,则返回的值将为null,
  • 否则,如果使用rpB,则返回的值将为null。

然而,这并不是一个好的方法。它将与此模型一起工作,但如果您将来需要更改该模型,则可能会不够。

一种很好的方法是创建资源单元类型,并将延迟时间指定为单元属性。有关如何制作自定义资源单元的说明可以找到这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71392139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档