如何在 AnyLogic 中获取延迟块中代理的剩余时间?
how to get remaining time of agent in delay block in AnyLogic?
我在延迟块中有三个代理,我想获得在特定 state/interval 处具有最大剩余时间的代理的剩余时间,我想使用 getremainingtime() 方法,但我不知道如何如果延迟块包含多个代理,请使用它。更多详细信息和名称可以在附图中看到。 .
我期待延迟块中单个代理的剩余时间,而延迟块包含多个代理。
您可以使用以下代码片段获取最大剩余延迟时间的代理
double maxRemainingTime = 0;
Agent maxRemainingAgent = null;
for(int i = 0; i < delay.size(); i ++){
if (delay.getRemainingTime(delay.get(i)) > maxRemainingTime) {
maxRemainingAgent = delay.get(i);
maxRemainingTime = delay.getRemainingTime(maxRemainingAgent);
}
}
或者,如果您对流了解一两件事,并且只想要最大时间值而不是代理,则可以在一行代码中获得所有内容
double x = findAll(delay, e -> true).stream().mapToDouble(e -> delay.getRemainingTime(e)).max().orElse(0);
我在延迟块中有三个代理,我想获得在特定 state/interval 处具有最大剩余时间的代理的剩余时间,我想使用 getremainingtime() 方法,但我不知道如何如果延迟块包含多个代理,请使用它。更多详细信息和名称可以在附图中看到。
我期待延迟块中单个代理的剩余时间,而延迟块包含多个代理。
您可以使用以下代码片段获取最大剩余延迟时间的代理
double maxRemainingTime = 0;
Agent maxRemainingAgent = null;
for(int i = 0; i < delay.size(); i ++){
if (delay.getRemainingTime(delay.get(i)) > maxRemainingTime) {
maxRemainingAgent = delay.get(i);
maxRemainingTime = delay.getRemainingTime(maxRemainingAgent);
}
}
或者,如果您对流了解一两件事,并且只想要最大时间值而不是代理,则可以在一行代码中获得所有内容
double x = findAll(delay, e -> true).stream().mapToDouble(e -> delay.getRemainingTime(e)).max().orElse(0);