首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AnyLogic:基于Agent仿真的不可达目标

AnyLogic:基于Agent仿真的不可达目标
EN

Stack Overflow用户
提问于 2022-02-18 12:12:15
回答 1查看 133关注 0票数 2

我正在建造一个机场模型,里面有乘客产卵、购物、进食和离开。

大多数乘客冲到他们的GateArea (多边形节点),并在那里等待,直到他们认为这是适当的自由裁量活动。当他们考虑离开GateArea时,他们会产生一个“吃”--或者说“商店”--目标,并被转移到一个与相应商店链接的PedGoTo中。在这一点上,我有时会遇到这样的错误:

代码语言:javascript
复制
java.lang.RuntimeException: root.pGT_F_B2.pedGoToTarget:
Unreachable target: (599.37, 398.48) on level 'name: level' for pedestrian 'id: 46' located at: (467.15, 222.68) on level 'name: level'!
    at com.anylogic.engine.Engine.error(Unknown Source)
    at com.anylogic.engine.Agent.error(Unknown Source)
    at com.anylogic.engine.Utilities.error(Unknown Source)
    at com.anylogic.libraries.pedestrian.PedBlock_xjal.error(Unknown Source)
    at com.anylogic.libraries.pedestrian.PedGoTo_xjal.d(Unknown Source)
    at com.anylogic.libraries.pedestrian.PedGoTo_xjal.c(Unknown Source)
    at com.anylogic.libraries.pedestrian.PedGoTo_xjal.g(Unknown Source)
    at com.anylogic.libraries.pedestrian.PedGoTo_xjal.f(Unknown Source)
    at com.anylogic.libraries.pedestrian.PedGoTo_xjal.d(Unknown Source)
    at com.anylogic.libraries.pedestrian.PedGoTo_xjal.a(Unknown Source)
    at com.anylogic.libraries.pedestrian.PedGoTo_xjal.a(Unknown Source)
    at com.anylogic.libraries.pedestrian.PedGoTo_xjal$1.onEnter(Unknown Source)
    at com.anylogic.libraries.processmodeling.Delay.b(Unknown Source)
    at com.anylogic.libraries.processmodeling.Delay.b(Unknown Source)
    at com.anylogic.libraries.processmodeling.Delay$9.onEnter(Unknown Source)
    at com.anylogic.libraries.processmodeling.InputBlock$1.b(Unknown Source)
    at com.anylogic.libraries.processmodeling.InPort.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.InPort.receiveImmediately(Unknown Source)
    at com.anylogic.libraries.processmodeling.InputBlock$1.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutPort.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutPort.b(Unknown Source)
    at com.anylogic.libraries.processmodeling.PlainTransfer$1.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutPort.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutPort.b(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock.forwardReadyEntityNotification(Unknown Source)
    at com.anylogic.libraries.processmodeling.InputBlock$1.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutPort.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutPort.b(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutPort.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock$2.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock$2.action(Unknown Source)
    at com.anylogic.libraries.processmodeling.AsynchronousExecutor_xjal$a.execute(Unknown Source)
    at com.anylogic.engine.LibraryEventHandler$b.execute(Unknown Source)
    at com.anylogic.engine.Engine.c(Unknown Source)
    at com.anylogic.engine.Engine.fi(Unknown Source)
    at com.anylogic.engine.Engine.n(Unknown Source)
    at com.anylogic.engine.Engine$b.run(Unknown Source)

正如你在图片中所看到的,无论是大门还是商店,都没有被一些静态的障碍物挡住。问题似乎是乘客之间的问题,因为他们似乎互相阻碍。我试着用更少的乘客,这延误了问题(甚至在我使用非常小的数字时解决了问题)。然而,造成这一问题的乘客人数是现实的(约100人),GateArea的大小也是如此。

是否有一种方法可以告诉乘客“推”其他代理来创建一条路径或另一种方法来解决问题而不降低数量(从而降低模拟质量)?

带有错误指示的拥挤门

PS。这是我在StackOverflow上的第一个问题,所以请告诉我如何改进这个问题。我希望能获得足够的声誉,在其他AnyLogic问题上得到更多的答案,因为他们不止一次帮助克服了一些僵局。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-18 12:29:22

假设真的没有任何障碍,除了其他行人,那么可以帮助改善你的情况的参数是行人的直径。减少它意味着行人可以彼此靠近。

您还可以使用ped.setDiameter( X )在模拟的任意点动态更改直径。例如,您可以在特定的时间点将其设置为0,直到行人离开该区域并将其更改为0.5。

经过评论中的讨论,问题似乎不是直径问题。尽管如此,我仍然把它放在上面,因为这可能是一个面临类似问题的人的问题。

真正的问题是,问这个问题的建模者是使用remove(agent)让代理离开行人流程图。一旦使用Enter块将代理发送回流程图,AnyLogic就不再将该代理识别为行人网络中的行人。

因此,不应该使用Enter块,而应该使用pedEnter。后者需要输入行人的外观位置。因为在您的例子中行人并没有真正移动,所以只留下了用于建模的流程图,您可以指定这个位置作为代理的当前位置,如下所示。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71173297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档