【问题标题】:getting the waiting time for different agent types AnyLogic获取不同代理类型 AnyLogic 的等待时间
【发布时间】:2020-07-06 06:55:02
【问题描述】:

希望你们都平安,

假设我有第一张照片中显示的这个系统。有 2 个源链接到 2 个不同的代理类型。他们从同一个延迟服务。

我的目标:是从第一来源和第二来源中找出代理的等待时间。

我做了什么:我首先使用了“timeMeasureEnd”数据集。我运行了模拟,然后检查了日志中的 datasets_Log。 (见图 2)。

我的问题:我不知道哪些代理来自源 1,哪些来自源 2。它只是给了我基于 FIFO 的代理索引。

我需要一种方法,让我知道每个代理的等待时间,并告诉我代理的类型(或它来自哪个来源)。

我尝试了什么: 1. 我尝试将代理 ID 保存在数据集中,但它没有显示在日志中。 2. 我创建了一个额外的队列并为其分配了一个数据集。在数据集中输入代理 ID 以及等待时间,然后我比较了代理 ID。但这需要很长时间。

我希望我说清楚。

一句话:我要得到代理的来源和等待时间。

谢谢

photo 1 photo 2

【问题讨论】:

    标签: java queue simulation anylogic


    【解决方案1】:

    选项 1:

    只需在您的代理中创建一个名为 source 的变量(可以是整数)

    如果您的代理来自源,则在退出时您可以执行 agent.source=0;如果它来自 source1 你可以做 agent.source=1;

    在延迟之后,您可以使用以下延迟时间

    agent.source==0 ? delayForAgentsComingFromSource : delayForAgentsComingFromSource1 
    

    当然 delayForAgentsComingFromSource 是一个数字。

    选项 2:

    如果您的代理类型是 Meow (source) 和 Meow2 (source1),那么您可以在延迟中执行以下操作:

    agent instanceof Meow ? delayForAgentsComingFromSource : delayForAgentsComingFromSource1
    

    【讨论】:

    • 感谢您的回答.. 但是如果我有 4 个来源,我应该输入什么?
    • 然后我将如何在数据集或日志中显示它。数据集只接受双倍
    • 对于你的第一个问题,你可以在延迟时间内使用一个函数,然后用 ifs 和 elses 返回你想要的数字
    • 第二,我没有看到在数据集或日志中显示的问题......它仍然是一个双重
    猜你喜欢
    • 2020-07-13
    • 2015-10-15
    • 2020-09-12
    • 2020-03-30
    • 2017-10-15
    • 2020-06-07
    • 2022-12-18
    • 2019-06-18
    • 2016-10-12
    相关资源
    最近更新 更多