代理在 AnyLogic 中同时接收多条消息
Agent receiving several messages at the same time in AnyLogic
假设您有两种代理类型:
- 人口为 10 的代理类型 1
- 人口为 1 的代理类型 2
假设类型 2 有一个状态图,其中包含两个状态,如下所示:
Agent Type 2 statechart
如果类型 1 的所有 10 个代理同时发送相同的消息,或者至少间隔小于图中所示的超时转换,则类型 2 代理处于“状态”时收到的消息会发生什么情况评估贷款人决定”?消息是否被丢弃或排队,直到再次达到状态“waitingForLender”?
首先,我建议您观看我制作的这个 youtube 视频,它解释了消息是如何发送的。 https://www.youtube.com/watch?v=Fe2U8IAhlHM
使用 send 或 deliver 的消息在连接对象中接收,消息被重定向到您在此处定义的不同状态图表。
在你的情况下,你应该自己生成一个队列,其中包含所有已收到的消息(可能使用集合)
如果您的消息是同时发送的,那么您的 10 个代理中有 9 个将从您的状态图中丢弃他们的消息,因为在收到第一个消息后不会有状态图等待消息,但不会从您的连接角度来看...所有消息都已有效接收。
假设您有两种代理类型:
- 人口为 10 的代理类型 1
- 人口为 1 的代理类型 2
假设类型 2 有一个状态图,其中包含两个状态,如下所示: Agent Type 2 statechart
如果类型 1 的所有 10 个代理同时发送相同的消息,或者至少间隔小于图中所示的超时转换,则类型 2 代理处于“状态”时收到的消息会发生什么情况评估贷款人决定”?消息是否被丢弃或排队,直到再次达到状态“waitingForLender”?
首先,我建议您观看我制作的这个 youtube 视频,它解释了消息是如何发送的。 https://www.youtube.com/watch?v=Fe2U8IAhlHM
使用 send 或 deliver 的消息在连接对象中接收,消息被重定向到您在此处定义的不同状态图表。
在你的情况下,你应该自己生成一个队列,其中包含所有已收到的消息(可能使用集合)
如果您的消息是同时发送的,那么您的 10 个代理中有 9 个将从您的状态图中丢弃他们的消息,因为在收到第一个消息后不会有状态图等待消息,但不会从您的连接角度来看...所有消息都已有效接收。