【问题标题】:How to update statechart probabilities when agent is at specific point in flowchart?当代理处于流程图中的特定点时如何更新状态图概率?
【发布时间】:2018-08-16 23:27:44
【问题描述】:

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

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

作为说明,来自示例模型的两个屏幕截图:FlowchartStatechart.

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

【问题讨论】:

    标签: java anylogic agent-based-modeling


    【解决方案1】:

    有两种选择:

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

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

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

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

    【讨论】:

    • 谢谢你,费利佩。我相信您的第一种方法是最灵活和直观的。
    猜你喜欢
    • 2019-10-31
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 2022-01-10
    • 2020-11-03
    • 1970-01-01
    • 2021-04-25
    • 2020-06-25
    相关资源
    最近更新 更多