在 Anylogic 中添加/注入代理到队列
Posted
技术标签:
【中文标题】在 Anylogic 中添加/注入代理到队列【英文标题】:Add/Inject Agent to Queue in Anylogic 【发布时间】:2016-08-19 05:15:41 【问题描述】:我在 Anylogic 中有一个混合模型,其中我的一些代理必须将部件(也是代理)添加到离散事件模拟队列。
从队列中获取代理是通过queue1.removeFirst();
完成的,但我似乎找不到添加内容的等价物。
我试过addAgentToContents
没有运气...
【问题讨论】:
【参考方案1】:您不能直接将代理添加到队列中。
您可以在它前面放置一个源对象并将其“Arrival defiend by”属性设置为“inject()”。还将其“新代理”类型设置为部件。当您的代理想要将零件添加到队列中时,您可以致电source.inject()
,然后将零件添加到队列中。
或者,如果您已经创建了部分代理,则可以使用代理中的端口并使用连接器将其链接到您的队列。这两个对象都可以在“代理”库中找到。
希望对你有帮助
【讨论】:
谢谢本杰明。我一直在尝试建立连接,但我仍然必须以某种方式“发送”零件。有send
方法,但它只处理消息......你知道怎么做吗?
消息可以是任何类型,而不仅仅是字符串。如果您在 Javadoc 中查看 Port 的“send”方法,它会告诉您参数“msg”的类型是“Object”,这意味着它可以是任何东西。
最终使用 Enter 流程块将 Part 代理“发送”回流程图表
这是我忘记提及的第三个选项...在 AnyLogic 中实现某些目标总是有多种方法,而且通常取决于您现有的结构。
@jacandau 你是如何将代理与队列连接起来的?我使用连接器连接代理和队列,导致此错误“离散事件执行期间出现异常:root.queue.input:InPort 只能连接到 OutPort”以上是关于在 Anylogic 中添加/注入代理到队列的主要内容,如果未能解决你的问题,请参考以下文章