【发布时间】:2021-10-30 00:32:12
【问题描述】:
我遇到了我的一个小组的奇怪行为,我错过了什么吗?
1 到 4 组正在接近一个 pedOutput 块,在第一个出口下存在这种情况:
ped.getGroup().size() <= 2 && v_table02_occupied < 20;
该条件在一段时间内正常工作,正如我所期望的(v_table02_occupied 变量,但是你知道,当这个组进入 pedOutput 块时,它打印为 16。
以前有人看到过类似行为不端的团体吗?
谢谢, 彼得
【问题讨论】:
-
您是否跟踪了“在出口 2”中的组大小以及该变量的值?一旦你这样做了,你的困惑可能会消失,可能是你的一些逻辑错误:)
-
感谢您的回答,不幸的是我仍然找不到错误...我将它们全部追踪并退出 2 始终显示高于 2 的组。我在错误之前的最后一次阅读:
pedGroup size at exit 1 is 4variable is 16 -
v_table02_occupied的完整条件是什么,您的屏幕截图似乎在那里被截断。你的traceln中的variable是什么意思?确保在这里准确和具体:) -
感谢帮助 :) 所以条件 1 中的完整代码是
ped.getGroup().size() <= 2 && v_table02_occupied < 20;v_table02_occupied变量是 Main 中的一个简单整数,初始值为 0。它的唯一目的是限制行人的数量通过出口 1 退出(至 20)。有趣的是,当我在 pedSource 中使用不同的到达次数重新调整模拟时,错误在不同的组(3 个 ped 组)中重复出现。意思是——它在我最初的实验中运行了这么长时间的事实一定是巧合,整个事情都不起作用。
标签: anylogic