在 anylogic 中为 50% 的代理分配优先级
Posted
技术标签:
【中文标题】在 anylogic 中为 50% 的代理分配优先级【英文标题】:Assign priority to 50% agents in anylogic 【发布时间】:2021-07-23 20:28:58 【问题描述】:我想为我的代理分配优先级,然后基于此将它们排队。我有一个代理 Container,它有两个参数 carrier(可以是卡车或火车)和 优先级 strong> (将被分配一些值)。承运人=卡车的 50% 代理和承运人=火车的 50% 代理应分配优先级 1,休息应为零。我该怎么做?
这是我的模型。 []。我想优先将上述代理从 storage1 移动到 rackPick 块。
提前致谢。
【问题讨论】:
【参考方案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类型(卡车或火车)。以上是关于在 anylogic 中为 50% 的代理分配优先级的主要内容,如果未能解决你的问题,请参考以下文章