基于两个参数的 AnyLogic 优先级队列作为 Java 代码
Posted
技术标签:
【中文标题】基于两个参数的 AnyLogic 优先级队列作为 Java 代码【英文标题】:AnyLogic priority queue based on two parameters as Java code 【发布时间】:2020-04-15 13:23:52 【问题描述】:在 AnyLogic 中,我的代理具有整数参数 agent.size 和 agent.height
在队列中,我想选择具有特定大小的代理,即 agent.size == 5 而不是其他代理。在尺寸领带中,我想选择高度最大的领带。我该如何建模?
我认为我应该在队列模块的基于优先级的部分中定义它。但是,我只能说agent.size
,更大的尺寸将具有更高的优先级。如何调整它以提供层次结构(不是来自数据库输入,而是在运行期间更改参数)?
【问题讨论】:
【参考方案1】:您应该将排队规则设置为“代理比较”。
你必须或多或少这样写一个条件:
agent1.size == 5 && agent1.size == agent2.size ?
agent1.height > agent2.height : agent1.size == 5 ?
true : agent1.size > agent2.size
【讨论】:
太好了。我认为它虽然丢失了。在这里,如果 agent1.size == 5 和 agent2.size == 6 那么这个块代码将选择代理 2,因为条件?不会保持,将选择具有较大尺寸的那个。我认为我需要将其扩展到另一个条件,我说:i)其中一个有 5 号,另一个有另一个尺寸,然后选择第一个; ii) 它们的大小都是 5,然后是你的代码以上是关于基于两个参数的 AnyLogic 优先级队列作为 Java 代码的主要内容,如果未能解决你的问题,请参考以下文章