当代理处于流程图中的特定点时如何更新状态图概率?
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",代理);
该消息将转换到您所在的同一块并更新速率。
记住:一旦定义了速率,就无法更改它,除非您重新进入定义转换速率的状态。
我有一个模型,其中代理(人)流经流程图(流程建模库)。我想根据Person在流程图中的位置更新Person中状态图的转移概率。我该怎么做?
我相信我必须使用
OnChange()
让引擎重新计算转换概率,否则我不知道如何实现。
作为示例,示例模型的两个屏幕截图:Flowchart 和 Statechart.
所以我要的是Person在状态图中的转移概率根据在流程图的哪个分支是不同的。也就是说,Person 的所有实例都以相同的转移概率开始,但是一旦它们到达流程图中的特定点,就应该更新转移概率。
有2个选项:
您可以根据块将代理发送到不同的状态,每个状态对新状态的速率不同。 (在输入块上你发送("message",代理)从一个状态移动到另一个)
第二个选项是创建一个名为 rate 的变量并将其分配给转换。每次移动到新块时,在输入操作中执行 rate=whateverRateYouWant; 发送("message",代理);
该消息将转换到您所在的同一块并更新速率。
记住:一旦定义了速率,就无法更改它,除非您重新进入定义转换速率的状态。