在单一来源下创建和跟踪多种类型的代理

问题描述 投票:0回答:1

我有一个来源,我想要生成 4 种类型的产品。 4 种代理类型是 Type1、Type2、Type3 和 Type4。条件是我只能拥有所有四种代理类型的一个来源。我使用以下代码在源块中成功生成了新代理:

randomTrue(0.2) ? new Type1() : randomTrue(0.375) ? new Type2() : randomTrue(0.6) ? new Type3() : new Type4();

这可行,但是我无法弄清楚如何跟踪每个单独的代理来计算每种代理类型进入和离开系统所需的平均时间。

anylogic
1个回答
0
投票

首先,使用不同的

Source
块,让你的生活更轻松。不同的代理类型可以流入下游 1 个组合流程图,没有问题。

(你的代码使用

new Type1()
会带来很多麻烦,如果你不小心,请避免这样做!)

二、如何衡量:最灵活的是这个:

  1. 在 4 种代理类型中添加一个名为
    double
    myTotalTime
    类型变量,每种类型一个。
  2. 在 4 种代理类型中添加一个名为
    double
    timerStart
    类型变量,每种类型一个。
  3. Source
    块中,您可以简单地使用
    agent.timerStart=time();
  4. 无论你想在哪里完成计时,你都应该使用类型转换(假设有 4 种不同的代理类型流过),类似于
    agent instanceof Type 1 ? ((Type1)agent).myTotalTime = time()-((Type1)agent).timerStart) ...

为了清晰起见,第 4 步最好“外包”到一个单独的函数中

也可以考虑所有 4 种类型的父代理类型,但这有点更高级,如果您不知道自己在做什么,可能会带来许多缺点:)

© www.soinside.com 2019 - 2024. All rights reserved.