AnyLogic,具有特定代理条件的资源选择

问题描述

我正在使用 Anylogic。我有一个代理客户和五个技术员(他们是资源)。在代理状态图中,我必须插入一个包含 12 个客户可能随机发生的故障的列表。这些失败中的每一个都需要不同的组合技能(在我的模型中存在四种技能)。五名技术人员中的每一个都有不同的技能组合。

Combination cases are in the figure

我使用代理变量“Issue”和一个包含 12 个数字的选项列表(类为“Issue”)对故障进行建模。它可能是正确的? 在 Main 中,在 seize 块中,如何指定每个代理使用哪个技术资源??我知道我必须使用自定义资源选择,但我需要帮助来插入代码。 另一个问题是,是在基于代理的部分中插入 5 名技术人员,还是创建 5 个不同的代理,他们称自己为“技术员 1”、“技术员 2”等等...... 抱歉问了很多问题 非常感谢!

解决方法

你的问题有两部分:

  1. Issue 值之一随机分配给您的 Customer 代理的属性 - 这可以通过在 Customer 代理中创建一个 Issue 类型的参数来完成(我们称之为 { {1}}) 并将其默认值设置为 p_issue。这样,每次创建 Customer 类时,其 randomFrom(Issue.class) 参数都将设置为从 Issue 值范围中随机选择的值。
  2. 将客户与技术人员资源匹配 - 如果您有 5 个单独的资源池,而不是 1 个有 5 名技术人员的资源池,那么最简单的方法是使用 SelectOutput5 块。并且有 5 个抓住每个指向一个水池。在条件字段中,您可以输入以下内容:
p_issue

上述情况适用于将 agent.p_issue == Issue.a || agent.p_issue == Issue.b 等于 p_issuea 的 Customer 代理与指向单个资源池的特定 Seize 进行匹配.


更新:您的参数应该看起来像图像。

enter image description here

注意:这将随机选择问题,因此不能保证每个值都是唯一的,即如果您有 10 个问题值并生成 100 个客户,那么其中大约 10% 将有 b,10 %、p_issue=Issue.a