AnyLogic模型中不同流程路径的客户平均耗时计算需求
AnyLogic中计算不同流程路径平均时长的方法
核心思路
通过给客户代理添加时间戳变量,在路径关键节点记录时间,最终计算时间差并统计平均值。
具体操作步骤
Step 1: 给客户代理添加时间变量
在你的客户Agent类型里,新增两个double类型变量,比如pathAStartTime、pathBStartTime,用来记录客户进入对应路径的起始时间。Step 2: 记录路径起始时间
在路径A的入口节点(比如分流后的第一个处理节点),添加如下代码:agent.pathAStartTime = time();同样,在路径B的入口节点添加:
agent.pathBStartTime = time();Step 3: 计算单客户路径时长并统计
在路径A的出口节点(比如路径结束的Sink节点),添加代码计算当前客户的路径时长,并将数据传入统计组件:double pathADuration = time() - agent.pathAStartTime; // 提前添加一个StatisticsCollector组件命名为statsPathA statsPathA.add(pathADuration);路径B的处理逻辑完全一致:
double pathBDuration = time() - agent.pathBStartTime; statsPathB.add(pathBDuration);Step 4: 获取平均时长
模型运行后,打开StatisticsCollector组件的结果面板,直接查看*平均值(Mean)*就能得到对应路径的客户平均花费时长。
额外提示
- 如果路径存在分支合并的情况,要确保只有实际进入该路径的客户才会触发起始时间记录,避免无效统计。
- 要是需要实时展示平均时长,可以添加一个
Text组件,绑定statsPathA.getMean()或statsPathB.getMean()实现动态显示。
内容的提问来源于stack exchange,提问作者tuneKawaii UwU
相关产品推荐
相关产品推荐

