gpt4 book ai didi

java - 处理时间的 Anylogic 移动平均值

转载 作者:行者123 更新时间:2023-11-30 05:54:42 25 4
gpt4 key购买 nike

在我的模型中,我有 9 个不同的服务 block ,每个服务可以产生 9 个不同的特征。每种组合都有不同的延迟时间和标准偏差。例如,特征3在服务 block 8中需要5分钟,偏差为0.05,但在服务 block 4中只需要3分钟,偏差为0.1。

如何永久跟踪每个组合的最后 5 个所需时间并计算平均值(如移动平均值)?我想使用平均值让产品根据比较所有机器过去时间的最短时间来决定为各个功能选择哪个服务 block 。产品代理已经有一个进入服务时间的参数,以及一个通过从离开服务 block 的时间减去进入时间来计算处理时间的参数。

感谢您的支持!

最佳答案

我不确定我是否明白你在问什么,但这可能是一个答案:

要跟踪最后 5 个所需时间,您可以使用分析面板中的数据集,将样本数量限制为 5...

dataset

您将使用dataset.add(yourTimeVariable);更新数据集,这样您就可以将数据集的垂直轴值留空。

我假设每个功能需要 1 个数据集

然后您可以计算您的移动平均线:

dataset.getYMean();

如果您需要 81 个数据集,那么您可以创建一个集合作为元素类型为 DataSet 的 ArrayList在Main属性上,在On Startup中,您可以添加以下代码,它将具有相同的效果。

for(int i=0;i<81;i++){
collection.add(new DataSet( 5, new DataUpdater_xjal() {
double _lastUpdateX = Double.NaN;
@Override
public void update( DataSet _d ) {
if ( time() == _lastUpdateX ) { return; }
_d.add( time(), 0 );
_lastUpdateX = time();
}
@Override
public double getDataXValue() {
return time();
}
} )
);
}

您只需要记住什么对应于什么服务 block 和功能,然后您就可以执行

collection.get(4).getYMean();

并向数据集添加新值:

collection.get(2).add(yourTimeVariable);

关于java - 处理时间的 Anylogic 移动平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53379796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com