在AnyLogic中...我正在建立一个模型,其中一旦代理B发送A消息,代理A(住在Main)将移动到代理B(住在另一个代理C,例如家中)。 设置"初始位置"时遇到麻烦。代理商B. 我怎样才能指出他特别的家乡" (特工C)?
我试过了: "在指定点":X = this.getLongitude()... "在节点":这个
但没有运气。 有任何想法吗?这有什么意义吗?
答案 0 :(得分:0)
它可以通过多种方式实现。最常见的是基于流程图:代理在Main
到Exit
块处留下流程图。在Exit
阻止的退出操作中,请致电:
agentC.enter.take( agent );
AgentC
类型应该Enter
阻止。在块的属性中,指定输入代理的初始位置。 Enter
可被视为" gate"从另一个空间进入的代理人(如Main
)。
答案 1 :(得分:0)
如果您的代理类型为AgentA
,AgentB
和AgentC
,则按照您的说法进行嵌入(AgentB
s在其家中的人口数量AgentC
{ {1}})然后,每个AgentB
实例都会自动为名为AgentC
的嵌入agentC
提供一个链接(指向上级代理的链接)。
因此,当AgentA
收到来自AgentB
的消息时,您可以执行类似
moveTo(sender.agentC)
或
jumpTo(sender.agentC.getX(), sender.agentC.getY())
(sender
是一个特殊的关键字,指的是发送代理"收到消息"代码块。jumpTo
立即移动到某个地方,而不是以代理的速度移动不幸的是,moveTo
允许您指定另一个代理作为目标,但jumpTo
必须使用坐标或节点。)
请参阅以下帮助部分: