当被拒绝进入具有访问限制的节点时,如何更改行人目标目的地?

问题描述 投票:0回答:1

在此疏散模型中,我创建了一个 layout,其中行人被模拟从目标线(绿色圆圈)离开房间,并在疏散期间走向 2 个出口之一(红色圆圈)。出口 1 受阻的可能性为 10%,出口 2 受阻的可能性为 50% (here)。当两个出口都可用时,我已经能够对行人进行编码,使其前往相对于其当前位置 (here) 最近的可用出口,其中 availableExits 是 collection。另请参阅已实施的 flowchart

layout 的一个路口,我创建了一个具有访问限制的红色节点,在任何给定时间允许容纳 8 名行人(请参阅属性 here 和实时模型 here)。假设两个出口均可用,并且根据之前提供的所有代码,到达此路口的任何行人都将前往 exit1,因为这是最近的出口。

我想对被拒绝进入节点的行人进行编程,将其目标目的地从 exit1 更改为下一个最近的出口,在本例中为 exit2(模拟人们试图找到一条不太拥挤的疏散路线)。我需要在“拒绝输入时”代码(在节点的属性中)中输入什么才能执行此操作?

anylogic
1个回答
0
投票

您可以调用

cancel(ped)
方法:

即在“输入被拒绝时”代码中,写入

myPedGotoBlock.cancel(agent);

确保将 ShapeRectangle 代理类型设置为您使用的行人类型。

最后,使用 PedGoTo 的底部退出端口来定义被取消的 ped 接下来应该做什么

© www.soinside.com 2019 - 2024. All rights reserved.