Anylogic:为什么我的带有代理变量值条件的 SelectOutput 不起作用?

Anylogic: Why is my SelectOutput with agent variable value condition not working?

我的 Anylogic 模型中有一个 SelectOutput 块,用于测试代理通过流程块的变量 probabilityhub。如果高于0.5,则为false,agent应该down掉。

变量probabilityhubTOD延迟块中给出,如agent.probabilityhub =一些公式。我通过将变量写入延迟块 TOD(如 dataset.add(agent.othervariable,agent.probabilityhub);)出口处的数据集中来检查变量是否正确地提供给了代理,正如您在数据集中看到的那样,它有效probabilityhub 有时会高于 0.5。但是,如下图所示,SelectOutput 始终为真,none 的代理正在关闭...有人知道为什么会这样吗?

延迟块的“退出时”动作发生在 selectOutput 条件计算之后,因此如果您更改退出时动作的概率值,则为时已晚......这在任何逻辑上都是违反直觉的,但事情以相反的顺序发生……这很奇怪,但就是这样

所以改为在“退出时打开”操作中计算它,一切都会起作用