如何在 anylogic 中使用状态图控制单个行人类型代理的行为?

How can I control individual pedestrian type agents behavior using statechart in anylogic?

我正在尝试进行行人建模,其中需要控制个别行人行为。我可以使用行人代理的状态图来做到这一点吗?

更新:抱歉,我最初的问题不够清楚

main

jaywalker (agent)statechart

runtime screenshot

jaywalker agent from padsource

在第一张图片(主要)中,我有一个简单的行人模型,其中乱穿马路的人(行人代理)穿过 2 个马路交叉口。最初所有的 jaywalker agent 都处于 "walking" 状态并且颜色为黄色(图:2),但是每当一些 agent 靠近另一个 agent(在 jaywalker agent 表示中显示的三角形内接近意味着),他们发送消息 "HI" 与他们交流。如果有人社交,那么他们会从 "walker" 状态移动到 "socializing" 状态(并变红)并向他的三角范围("field of vision" 三角形)内的其他人发送消息。前 11 次社交是直接通过来自 main 的消息(在模型启动时)完成的,11 个 jaywalker 代理正在接收它并移动到 "socializing" 状态。问题是在我的图表中,它显示了前 11 个社交,但在模型运行期间,代理的颜色没有改变。其次,在这 11 次社交之后,代理人不会社交或向他的三角形内的其他人发送任何消息。

所以,我很困惑如何让我的代理从一个状态图移动到另一个状态图,同时使用行人库对运动行为进行建模。我是否遗漏了连接行人库和代理状态图的任何步骤?

您似乎没有告诉 PedSource 创建类型为 "JayWalker" 的自定义 ped 代理。试试这个:

  1. 删除你的人口,不需要
  2. 确保您的 JayWalker 代理类型在其属性中定义为行人:
  3. 在您的 PedSource 中,确保它创建了 "JayWalker" 个代理,如下所示。 (你应该 select JayWalker 我的屏幕 selects "MyPed")

您可以选择让 PedSource 将创建的 "MyPed" 代理添加到自定义群体中,但您可能不需要。

PS:请理解 PedSource 正在创建代理,不要为此使用您的人口。阅读更多关于 PedSource 和人口的信息,并做一些教程以更好地理解这些基本概念:-)