1

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

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

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

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

4

1 回答 1

0

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

在此处输入图像描述

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

请参阅下面的示例

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

在此处输入图像描述

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

在此处输入图像描述

于 2021-11-02T06:44:05.377 回答