AnyLogic 中的自定义过程库块

Custom Process Library Blocks in AnyLogic

可以在 等待块 中更改内部队列行为吗?

元素将代理保存在标准队列中,而是保存在 HashMap 中,以便事件处理程序中的代码可以以较低的代码复杂性执行搜索?

我找到的解决方案是使用迭代器滑动队列中的所有元素,但使用 HashMap 可以更快地找到特定代理是否存在。我不会将全局 HashMap 变量放在主代理的 onStartup 事件处理程序中。

我想你误解了我在另一个问题上说的话。您不会更改 Wait 块的队列行为。您只需添加一个类型为 HashMap(或 LinkedHashMap)的 Collection 来帮助您进行信息管理。该集合将具有密钥 ID 和对象代理,因为搜索结构比搜索 Anylogic Wait 流程建模库元素更有效。

如果您不想为每个 Wait 块创建一个集合,您可以做的是使用新代理创建一个自定义元素。

为此,您创建了一个新的 Agent 类型,并在该 Agent 中放置了一个 In Port 和一个 Out Port 作为进入和退出点。比起放置一个 Wait 块和一个 HashMap 类型的集合来存储信息。您还必须创建一些参数来输入信息(您需要检查订单是否已经存在的其他部门等)。这是更高级的 Anylogic 使用,可能会让初学者感到困惑,所以我不建议在不熟悉 Anylogic 的情况下进入它。