Q Anylogic:queue.get(0) +time in queue

Posted

技术标签:

【中文标题】Q Anylogic:queue.get(0) +time in queue【英文标题】:Q Anylogic : queue.get(0) +time in queue 【发布时间】:2016-09-06 16:49:00 【问题描述】:

我不想计算队列的大小,而是想识别每个队列中的不同对象,以便将它们乘以它们的平均处理时间,然后得到队列中的时间。

我尝试使用 queue.get(index) 函数识别队列中的不同对象,但我无法确定该函数返回什么。我想知道队列中的实体来自哪个来源。

例如,我从源 1 =1 调用实体,但如果我这样做 queue.get(0)==1?0.2 :0.3 它不起作用。你有什么想法可以帮助我吗?

提前致谢,

【问题讨论】:

【参考方案1】:

访问队列成员

请求queue.get(index) 将返回代理对象本身。 返回的代理类型将由延迟块的代理类型设置决定。这通常应自动设置为与 Source 的 Agent 类型相同的类型,否则会出现转换错误。

获取来源信息

您从代理名称中获取来源信息的想法行不通,因为该名称与它的来源没有任何联系。

为了识别代理来自哪个来源,最直观的选择是:

    创建和使用自定义代理类型 在此代理类型中,您添加一个变量,您可以在其中保存有关其来源的信息。字段的类型可以是包含源 id 的字符串,也可以是直接包含 Source 对象的“Source”类型 此字段填写在每个来源的“退出时”字段中

当您想识别队列中的来源时,您可以使用该字段进行比较,例如。像这样:

queue.get(index).mySourceId.equals("Source1")?0.2 :0.3

【讨论】:

以上是关于Q Anylogic:queue.get(0) +time in queue的主要内容,如果未能解决你的问题,请参考以下文章

Anylogic PLE:具有泊松分布到达率的源

如何在 AnyLogic 8.4.0 中包含 JAXB 函数?

如何处理dispatch_queue_t dispatch_get_local_queue dispatch_queue_create EXC BAD ACCESS?

访问存储系统 Anylogic 中的特殊存储

Anylogic中银行的离散事件建模

如何从 AnyLogic 数据库表中读取分布信息