Anylogic,将代理拆分为多种不同的代理类型

Posted

技术标签:

【中文标题】Anylogic,将代理拆分为多种不同的代理类型【英文标题】:Anylogic, split an agent in multiple different agent types 【发布时间】:2020-09-12 15:17:49 【问题描述】:

我对任何逻辑中的模拟有疑问。 我有一个必须由资源处理的项目(代理),此服务块的结果是起始对象和两个不同的文档,它们在两个单独的办公室中处理,并且在流程结束时必须链接到有问题的文章。 我找不到将这种划分为 3 个不同代理的方法,或者一般来说,无法对此流程进行建模。 谢谢指教

【问题讨论】:

【参考方案1】:

您可以使用 2 个拆分块生成 2 个独立文档,并通过变量或链接将它们连接到代理...也许每个原始代理都有一个 id,拆分块中的副本将具有类似 agent.id=original.id; 的内容 然后,在处理完文档后,您可以检查哪些文档具有相同的 id 以将它们合并到文章中...

但如果你想变得更复杂,还有以下选项:

创建 2 个输入块(enter1 和 enter2),每个文档一个。我将假设您的文档对应于 2 种不同的代理类型,称为 Document1 和 Document2

在每种代理类型上,您都将添加到代理的链接,以便能够将文档相互连接起来。如果您不知道那是什么,请阅读帮助文档中有关代理链接的更多信息。

在服务块结束时,在退出操作上,您可以执行以下操作:

Document1 doc1=add_Document1();
Document2 doc2=add_Document2();
doc1.linkToDoc2.connectTo(doc2);
enter1.take(doc1);
enter2.take(doc2);

我不知道您的原始代理是否必须连接,但您会遵循相同的原则来做到这一点。

稍后,您只需检查连接的文档是否已完成,以便再次将它们加入文章中。

【讨论】:

非常感谢费利佩!

以上是关于Anylogic,将代理拆分为多种不同的代理类型的主要内容,如果未能解决你的问题,请参考以下文章

相同代理类型的不同延迟时间 (AnyLogic)

Anylogic问题:两个不同的代理有两个不同的服务时间

在 Anylogic 中为代理参数分配不同值的正确方法是啥?

获取不同代理类型 AnyLogic 的等待时间

如何在 Anylogic 中创建与特定代理的连接并为代理显示动画连接

我如何在 AnyLogic 中拆分我的代理,以便一个始终使用一项服务,然后其他人使用另一项服务?