对anylogic中的不同任务使用相同的服务块

Posted

技术标签:

【中文标题】对anylogic中的不同任务使用相同的服务块【英文标题】:Using the same service block for different tasks in anylogic 【发布时间】:2021-09-01 03:19:36 【问题描述】:

我目前正忙于一家医院的一个项目。我需要创建一个模拟模型来复制医院的流程。我对医院的一个柜台或服务台有疑问。服务台的工作人员需要执行两项不同的任务,具体取决于患者的类型。如何对服务块进行编程以执行两个不同的任务?现在,enter image description here 我已经使用同一个工作人员将块分成两个不同的块。我还有其他方法可以解决这个问题吗?

【问题讨论】:

【参考方案1】:

服务台的工作人员需要执行两项不同的任务,具体取决于患者的类型。

如果任务仅在持续时间上有所不同,您可以在Service延迟属性中根据患者类型轻松调整任务持续时间(假设您的患者是PatientType1PatientType2类型的代理):

对于更复杂的任务,您可以创建一个函数来返回持续时间并将您的请求患者作为输入参数,例如f_getDelayByPatient(MyPatientType patient) 然后,服务块可以使用“延迟时间”代码部分中的该函数来使用f_getDelayByPatient(agent)为每个到达的患者计算它

【讨论】:

以上是关于对anylogic中的不同任务使用相同的服务块的主要内容,如果未能解决你的问题,请参考以下文章

相同代理类型的不同延迟时间 (AnyLogic)

如何在 Anylogic 的一个流程图中处理不同的材料?

AnyLogic中的计算动态延迟

服务块中的 Anylogic 测量时间

如何对 Anylogic 中的表进行动态引用?

Anylogic - 根据源在延迟块中设置多个延迟时间