Anylogic:如何根据正在使用的资源集设置服务延迟时间

Anylogic: How to set Service delay time depending on the resourceSet being used

基本上我有一个服务可以与两种 ResourceSets 一起工作。假设该服务最好与一名医生和一名护士一起工作,但如果没有护士,也可以只与一名医生一起工作。

现在,假设 Doctor 在没有 Nurse 的情况下工作速度较慢,则服务的延迟时间必须取决于当前使用的资源集(Doctor+Nurse 或 Doctor)。知道我该如何编程吗?

您还应该记住,我的模型有多种服务以相同的方式并行工作,而不仅仅是一条服务线。

谢谢!

您正在使用服务,但对我来说,结合使用占用、延迟和释放可为您提供更大的灵活性。 我所做的是根据下图设置资源选择:

在第一组中让护士先于医生很重要(出于某种原因,anylogic 会选择仅使用医生,否则即使有护士)。

那么,我会写这段代码:

这意味着如果代理只能占用一个资源,则需要更长的时间(15 只是一个随机值)。

在延迟块中,我将处理时间设置为agent.processTime

我使用的拓扑是这样的:

显然这是一种变通方法,并不适用于所有情况。您可以随时更改您验证的条件。我找不到一种方法来检查占用操作选择了哪个资源集。如果您赶时间,这会成功。

希望对您有所帮助, 路易斯