AnyLogic:具有不同优先级的两个客户类别

Posted

技术标签:

【中文标题】AnyLogic:具有不同优先级的两个客户类别【英文标题】:AnyLogic: two customer classes having different priorities 【发布时间】:2021-12-16 14:43:27 【问题描述】:

我了解 AnyLogic/Process Modeling Library 的基础知识,并且即将教授使用 AnyLogic 模拟基本队列,从我使用多年的 Simul8 过渡。

我有两种类型的代理,1 和 2,分别发送到队列 1 和 2,然后它们提供单个“服务”点,因此类型 1 具有更高的优先级(即,只要服务准备好拉工作,如果队列 1 非空,则无论队列 2 的大小如何,它都会从队列 1 中拉出。如何尽可能简单地捕捉到这一点?

看过 Queue 对象的参考页面后,我的初步(未实现的)想法是使用单个队列,并通过 Queue.QUEUING_PRIORITY-基于优先级的选项控制代理优先级。

为了比较,Simul8 软件中的一个解决方案是:将“服务”路由输入规则设置为“优先级”;并为两个队列分配不同的优先级。

【问题讨论】:

你做对了...不需要2个队列 【参考方案1】:

是的,您是对的,您不能使用两个队列,因为从队列中拉出将以循环方式完成。请看下面来自 AnyLogic 培训教科书的屏幕截图

您应该在单个队列中使用排队,并且可以有一个或两个参数化源。

见下例

我有 2 个来源,在每个来源中,我将优先级设置为代理内部的一个局部变量。 Agents from source 1 的变量设置为 1,from source 设置为 0。

然后在队列中,我设置了优先级,以便源 1 的代理始终在前面。

【讨论】:

以上是关于AnyLogic:具有不同优先级的两个客户类别的主要内容,如果未能解决你的问题,请参考以下文章

AnyLogic中的计算动态延迟

在 anylogic 中为 50% 的代理分配优先级

如何将代理关联到优先级范围 Anylogic

在 AnyLogic 中使用代理名称作为 selectOutput 的条件

日期参数随时间更新 Anylogic

如何选择具有优先级第一个表的不同 UNION