问题描述
我正在使用 Anylogic。我有一个代理客户和五个技术员(他们是资源)。在代理状态图中,我必须插入一个包含 12 个客户可能随机发生的故障的列表。这些失败中的每一个都需要不同的组合技能(在我的模型中存在四种技能)。五名技术人员中的每一个都有不同的技能组合。
Combination cases are in the figure
我使用代理变量“Issue”和一个包含 12 个数字的选项列表(类为“Issue”)对故障进行建模。它可能是正确的? 在 Main 中,在 seize 块中,如何指定每个代理使用哪个技术资源??我知道我必须使用自定义资源选择,但我需要帮助来插入代码。 另一个问题是,是在基于代理的部分中插入 5 名技术人员,还是创建 5 个不同的代理,他们称自己为“技术员 1”、“技术员 2”等等...... 抱歉问了很多问题 非常感谢!
解决方法
你的问题有两部分:
- 将 Issue 值之一随机分配给您的 Customer 代理的属性 - 这可以通过在 Customer 代理中创建一个 Issue 类型的参数来完成(我们称之为 { {1}}) 并将其默认值设置为
p_issue
。这样,每次创建 Customer 类时,其randomFrom(Issue.class)
参数都将设置为从 Issue 值范围中随机选择的值。 - 将客户与技术人员资源匹配 - 如果您有 5 个单独的资源池,而不是 1 个有 5 名技术人员的资源池,那么最简单的方法是使用 SelectOutput5 块。并且有 5 个抓住每个指向一个水池。在条件字段中,您可以输入以下内容:
p_issue
上述情况适用于将 agent.p_issue == Issue.a || agent.p_issue == Issue.b
等于 p_issue
或 a
的 Customer 代理与指向单个资源池的特定 Seize 进行匹配.
更新:您的参数应该看起来像图像。
注意:这将随机选择问题,因此不能保证每个值都是唯一的,即如果您有 10 个问题值并生成 100 个客户,那么其中大约 10% 将有 b
,10 %、p_issue=Issue.a
等