如何在AnyLogic中结合randomTrue与Delay模块实现概率延迟时间?
用AnyLogic的randomTrue实现带概率的Delay延迟时间
要实现50%概率延迟9分钟、25%概率延迟18分钟、25%概率延迟36分钟的需求,直接在Delay模块的Delay time输入框中使用嵌套的randomTrue()表达式即可,逻辑如下:
核心表达式
randomTrue(0.5) ? 9 : (randomTrue(0.5) ? 18 : 36)
逻辑说明
- 第一层
randomTrue(0.5):以50%概率返回true,此时延迟时间取9分钟; - 若第一层判断为
false(对应剩余50%概率),进入第二层randomTrue(0.5):在这50%概率中再以50%概率返回true,对应整体25%概率,延迟时间取18分钟; - 若两层判断均为
false,剩余25%概率下,延迟时间取36分钟。
注意事项
- 确认模型时间单位:如果模型时间单位是秒,需将数值转换为秒(9分钟=540秒,18分钟=1080秒,36分钟=2160秒);
randomTrue()的参数是0到1之间的小数,对应百分比概率,不要输入大于1的数值。
内容的提问来源于stack exchange,提问作者Ehsan Ul Haque
相关产品推荐
相关产品推荐

