Statechart转移率与实际数值不符咨询:为何5分钟转移人数远超25?
状态转移速率的实际工作机制
- 你设置的“5人/分钟”不是固定每分钟转移5个个体,而是每个处于
state状态的个体,每分钟有对应概率触发转移。具体来说,这个速率对应的是个体的转移率λ(单位:1/分钟),在每个模拟时间步长Δt内,单个个体触发转移的概率是p = 1 - e^(-λ*Δt)。 - 当有N个个体处于
state时,短时间内的期望转移数量是N*λ*Δt,这是统计期望值,实际转移数量会有随机波动。但要注意,这个速率是针对单个个体的,不是整体的转移数量上限。
异常原因分析
- 核心问题是你混淆了“个体转移速率”和“整体转移数量”:初始有1000个个体在
state,按照单个个体5/分钟的转移率,每分钟的期望转移数量是1000*(1 - e^(-5*1)) ≈ 993,这显然远大于你预期的5个/分钟,所以模拟5分钟时转移数量远超25是完全符合该机制的结果。 - 如果你的需求是每分钟固定转移5个个体,不能用带速率的状态转移,建议改用事件触发:设置一个每分钟执行一次的事件,每次从
state状态的个体中随机选取5个,强制转移到state1;或者动态调整个体转移速率,让整体期望转移数量维持在5/分钟(此时单个个体速率应为5/当前处于state的个体数)。
内容的提问来源于stack exchange,提问作者Morshed Dolon
相关产品推荐
相关产品推荐

