【问题标题】:How to make condition for queue?如何为队列创造条件?
【发布时间】:2022-01-14 17:53:07
【问题描述】:

我想让代理在到达 selectOutput5 时不进入队列,如果队列已满(如果已满则进入接收器)。 我试图将“if-else”放入“Actions”部分

但我真的不知道要使用哪个参数(尝试使用 queue.sizequeue.capacity 但我不知道如何正确编码),请帮忙。不确定我是否通过尝试将 if-else 放入 selectOutput5 的操作中做正确的事情

模型如下所示:

【问题讨论】:

  • Actions 部分仅适用于您想要执行的代码,如果它们确实退出了 out 选项之一

标签: anylogic


【解决方案1】:

您需要对他们应该进入哪个队列的条件进行编码,然后如果不满足条件,它将评估下一个退出选项。

见下例

如果队列大小小于 5,它只会进入队列 1,否则它将评估队列 2 的队列大小,如果两者都已满,则进入出口。

Actions 部分仅适用于您想要执行的代码,前提是它们确实退出了 out 选项之一。

【讨论】:

  • 我忘了说:代理必须按概率选择队列。所以我在每个队列上都有 0.3/0.5/0.5/0.2/0.2 并且我正在考虑在哪里放置条件以使它们在队列满时不进入队列。
  • @rreskey 查看我更新的示例图片和队列大小的一些虚拟值,只需将其替换为您的实际值即可。如果您觉得它有帮助,请记得接受我的回答;如果您认为它有用,请点赞;-)
【解决方案2】:

放一个selectOutputOut 块,在那里选择条件。并在您的条件下方输入:yourQueue.size()>=yourQueue.capacity()。当此条件为真时,将这些发送到Sink 块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 2020-12-04
    • 2017-01-09
    • 1970-01-01
    • 2015-07-23
    • 2022-01-23
    相关资源
    最近更新 更多