【问题标题】:Assign priority to 50% agents in anylogic在 anylogic 中为 50% 的代理分配优先级
【发布时间】:2021-07-23 20:28:58
【问题描述】:

我想为我的代理分配优先级,然后基于此将它们排队。我有一个代理 Container,它有两个参数 carrier(可以是卡车或火车)和 优先级 strong> (将被分配一些值)。承运人=卡车的 50% 代理和承运人=火车的 50% 代理应分配优先级 1,休息应为零。我该怎么做?

这是我的模型。 []。我想优先将上述代理从 storage1 移动到 rackPick 块。

提前致谢。

【问题讨论】:

    标签: simulation anylogic agent-based-modeling


    【解决方案1】:

    这可以通过在代理中创建一个整数“优先级”字段,然后根据原始来源on at exit操作中的随机(0.5)值将其设置为0或1来实现然后检查 Queue 中的该字段以获得优先级。这不会是 50%,但对于足够多的代理来说非常接近。

    【讨论】:

    • 我没听懂你。我想选择 agent.carrier=truck 的 50% 代理和 agent.carrier=train 的 50% 代理,然后为这些选定的代理分配 agent.priority=1。能否请您详细说明如何在这里使用 random(0.5)?
    • 您能否澄清一下您是要在创建代理时(即在 Source 组件中)还是所有代理同时创建,也许是在开始时执行此操作模拟,你想从 2 个不同的人群中选择 50%?
    • 所以,我有一组称为 Container 的代理,其中一次生成 10 个代理。此 Container 代理具有参数载体(值:卡车、火车)。我想选择 50% 的代理,其中 agent.carrier=Truck & agent.carrier=Train 并为他们分配优先级 1。理想情况下,我希望在退出 storage1 块之前执行此操作。
    • 在这种情况下,最简单的做法是在 RackStore 对象 'storage1' 的 on Enter 操作中使用三元运算符,如下所示:agent.priority = randomTrue(0.5) ? 1 : 0; for each类型(卡车或火车)。
    猜你喜欢
    • 2021-08-31
    • 2020-12-18
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    • 2021-07-28
    • 1970-01-01
    相关资源
    最近更新 更多