如何将概率分布关联到代理 - Anylogic
How to associate a probability distribution to Agents - Anylogic
我正在 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))
这会给你想要的。
另一种选择是在进入服务块之前在块上执行此操作 "on exit":
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
这是两个可能的选择。
我正在 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))
这会给你想要的。
另一种选择是在进入服务块之前在块上执行此操作 "on exit":
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
这是两个可能的选择。