gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 08:47:32 33 4
gpt4 key购买 nike

祝大家平安

假设我有以下流程:2个不同的源、队列、延迟和接收器。我有一个名为“患者”的代理人。

我的目标:为来自第一来源的患者(使用百分比)提供不同的服务率(延迟时间)。换句话说,我想要例如; 10% 的患者(来自来源 1)的延迟时间等于 5 分钟,90% 的患者延迟时间等于 10 分钟。

我所做的:我为代理(患者)分配了一个名为“百分比”的参数。并使用我输入的第一个源的“退出时”

agent.percentage = 1;

然后关于延迟时间我写道:

agent.percentage = 1 ? uniform(0.1);

但是没用,我该怎么办?

最佳答案

您需要两者

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

因此,您的代理参数应称为 sourceNumber 或类似名称(而不是 percentage),您在创建它时进行相应设置(就像您所做的那样)。

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

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

如果您需要更复杂的(例如,两个以上的源替代方案),或者希望它使用 Java if 语句和类似语句更“清晰”,您可以编写一个名为 getDelayTime 返回一个 double 并在延迟时间表达式中包含对该函数的调用。

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

关于java - 相同代理类型的不同延迟时间 (AnyLogic),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60983406/

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