当代理处于流程图中的特定点时如何更新状态图概率?

How to update statechart probabilities when agent is at specific point in flowchart?

我有一个模型,其中代理(人)流经流程图(流程建模库)。我想根据Person在流程图中的位置更新Person中状态图的转移概率。我该怎么做?

我相信我必须使用 OnChange() 让引擎重新计算转换概率,否则我不知道如何实现。

作为示例,示例模型的两个屏幕截图:Flowchart 和 Statechart.

所以我要的是Person在状态图中的转移概率根据在流程图的哪个分支是不同的。也就是说,Person 的所有实例都以相同的转移概率开始,但是一旦它们到达流程图中的特定点,就应该更新转移概率。

有2个选项:

您可以根据块将代理发送到不同的状态,每个状态对新状态的速率不同。 (在输入块上你发送("message",代理)从一个状态移动到另一个)

第二个选项是创建一个名为 rate 的变量并将其分配给转换。每次移动到新块时,在输入操作中执行 rate=whateverRateYouWant; 发送("message",代理);

该消息将转换到您所在的同一块并更新速率。

记住:一旦定义了速率,就无法更改它,除非您重新进入定义转换速率的状态。