我在 Anylogic 上模拟一个模型,其中代理从队列块流向服务块。我需要使用如下概率分布定义代理在服务中花费的时间:
- 70% 的人在服务中花费了 15 到 30 分钟之间的时间间隔(应该是均匀分布,例如:uniform(15, 30))
- 其中 20% 在 30 到 45 分钟之间
- 其中 10% 在 45 到 60 分钟之间
我已经将一个名为“timeInService”的参数与代理相关联,我想我应该使用它,也许是服务的 Dalay 时间,但我不知道怎么做。
非常感谢!
我在 Anylogic 上模拟一个模型,其中代理从队列块流向服务块。我需要使用如下概率分布定义代理在服务中花费的时间:
- 70% 的人在服务中花费了 15 到 30 分钟之间的时间间隔(应该是均匀分布,例如:uniform(15, 30))
- 其中 20% 在 30 到 45 分钟之间
- 其中 10% 在 45 到 60 分钟之间
我已经将一个名为“timeInService”的参数与代理相关联,我想我应该使用它,也许是服务的 Dalay 时间,但我不知道怎么做。
非常感谢!
关于服务块的延迟,您可以输入以下代码:
uniform()<0.7 ? uniform(15,30) : (uniform()<2/3 ? uniform(30,45) : uniform(45,60))
这会给你你想要的。
另一种选择是在进入服务块之前的块上,您在“退出时”执行此操作:
double rand=uniform();
if(rand<0.7)
agent.timeInService=uniform(15,30);
else if(rand<0.9)
agent.timeInService=uniform(30,45);
else
agent.timeInService=uniform(45,60);
在您提出的服务延迟中agent.timeInService
这是两个可能的选择。