当前位置: 首页 > 知识库问答 >
问题:

相同代理类型的延迟时间不同(AnyLogic)

祁修平
2023-03-14

希望你们都平安无事

假设我有以下过程:2个不同的源,队列,延迟,和接收器。我有一个叫“病人”的探员。

我的目标:有不同的服务率(延迟时间)的病人谁是来自第一来源(使用百分比)。换句话说,我想有一个例子;10%的患者(来自源1)延迟时间等于5分钟,90%的患者延迟时间等于10分钟。

我所做的:是我为代理(病人)分配了一个名为“百分比”的参数。并使用我键入的第一个源的“On exit”

agent.percentage = 1;

然后在延迟时间上我写道:

agent.percentage = 1 ? uniform(0.1);

但这不起作用,我怎么能这么做?

共有1个答案

陶炫明
2023-03-14

你需要两个

  • 存储代理的来源;
  • 如果它们来自特定源,则随机确定您需要的延迟时间。

因此,您的代理参数应该称为sourceNumber或类似的参数(而不是percentry),您在创建该参数时会相应地设置该参数(正如您所做的那样)。

那么您的延迟时间如下所示(假设90%/10%的分割仅用于源1的代理,其他源的延迟时间为50以示说明):

代理.sourceNumber==1?(随机真(0.1)?5:10):50

如果您需要它更复杂(例如,两个以上的源选项),或者希望它在Java If语句和类似语句中更“易读”,您可以编写一个函数,例如getDelayTime,它返回一个double,并在延迟时间表达式中包含对该函数的调用

注意:如果您需要单个源1代理始终具有延迟时间5或10(如果它们经历了多次延迟),那么您需要在创建它们时进行采样(并在代理中存储它们将进入的延迟时间或它们将获得的延迟时间的指示符)。

 类似资料:
  • 我试图将paralleStream与自定义的ForkJoin池一起使用,该任务执行网络调用。当我使用以下样式时 如果使用parallelStream,那么ForkJoinPool.Common是否以某种方式参与其中?下面是模拟上述两种样式的整个程序

  • 我希望你们都平安无事, 假设我有第一张照片中显示的这个系统。有2个源链接到2个不同的代理类型。他们从同样的延迟送达。 我的目标:是从第一个源找到代理的等待时间,从第二个源找到代理的等待时间。 我所做的:我首先使用了“timemeasureend”数据集。我运行了模拟,然后检查了日志中的datasets_Log。(见图二)。 我的问题是:我无法知道哪些代理来自源1,哪些来自源2。它只是给我基于FIF

  • 我需要编写一个java方法来从一个对象中获取特定的信息。但是,该对象可以是A类型的,也可以是B类型的。下面是我的代码的一部分: 当我这样写它时,它会引发一个错误,说“重复方法”。我怎么才能让这个起作用?

  • 我有5个代理-母线,变压器,发电机,负载,线路。我有一个需要动态连接以上代理的需求。

  • 我使用一个Android库,它要求我创建两个类,每个类继承自不同的类 (具有公共基类) 现在我有这个代码: 我必须复制这个类来创建一个扩展,即使我的两个类共享完全相同的代码。 我简化了示例的代码,但重复可能很重要 我决定将代码放在这两个类之外的静态方法中,并在类重写的方法中调用它们,但我认为必须有一种更干净的方法来做到这一点。 你能帮我解决这个问题吗? 和都继承自。

  • 问题内容: 当与MySQL数据库连接时,我有几种方法可以做同样的事情,保存或加载不同类型的参数。目前,我对每种类型都有不同的方法。如何合并这些方法,以便它们支持不同的类型? 下面是两个非常相似但使用不同类型的方法的示例: 请注意,在该示例中,类型均为数字。在类型完全不同的情况下(例如int和String),如何避免使用近乎重复的方法? 问题答案: 您可以在此处应用 策略 模式。 …