【发布时间】:2021-09-05 03:01:16
【问题描述】:
在 AnyLogic 中,我试图根据代理内部的变量创建一个小服务循环。出于某种原因,我的变量没有像我预期的那样改变,我无法让它工作。
在我的 selectHowMany 块中,我有以下代码,应该修改客户群体中的变量:
ped.howMany = ped.howMany + 1.0
ped.howMany = ped.howMany + 2.0
ped.howMany = ped.howMany + 3.0
ped.howMany = ped.howMany + 4.0
ped.howMany = ped.howMany + 5.0
my model with selectHowMany block open
然后,我希望输出确定 ped 应该去服务还是下沉,这取决于 howMany 变量是否大于 1。为此,我在客户群中有另一个布尔变量 isItEnough,在 output 块中有“if”语句。
if(agent.howMany < 1.0){
agent.isItEnough = false;
}
条件:
agent.isItEnough = true
最后,在每个服务块的出口处,我都有以下代码,因此变量实际上是根据行人的动作进行修改的:
ped.howMany = ped.howMany - 1.0
我的意图是,进入selectHowMany 街区的行人将定义客户群体中的变量,以确定该行人将使用服务街区之一的次数。
无论我如何尝试,行人都不会使用块(无论它退出哪个 selectHowMany 输出),所以修改变量是不正确的。 ped 处于连续循环中,它永远不会到达 sink。
希望有人能帮助我。
非常感谢, 彼得
【问题讨论】:
-
嗨@Peter,在这个问题上付出了很大的努力,很乐意提供帮助。但是,我可以建议您缩短这个问题并简化它,以便在一分钟左右的时间内掌握它吗?您应该能够首先将问题浓缩为核心问题,也许可以从您的特定模型中抽象出来。让我们的生活变得简单,请参阅 stackoverflow.com/help/how-to-ask 和 benjamin-schumann.com/blog/2021/4/1/…
-
非常感谢本杰明,反馈很好。我会看看我是否可以通过 Emile 的一些提示来解决它,并将问题改写为更直接。我很抱歉,这并不是我没有阅读如何提问,而是说实话我希望能够验证整个想法,因为我是一个使用任何 Java 的菜鸟。
-
不用担心。但是你更有可能得到简短而甜蜜的问题的好答案。最好请几个人来验证你的整个想法:)