【问题标题】:Anylogic: How to set Service delay time depending on the resourceSet being usedAnylogic:如何根据所使用的资源集设置服务延迟时间
【发布时间】:2017-04-15 07:09:13
【问题描述】:
基本上,我有一个可以使用两种 ResourceSet 替代方案的服务。假设该服务最好与一名医生和一名护士合作,但如果没有护士,也可以只与一名医生合作。
现在,假设 Doctor 在没有 Nurse 的情况下工作较慢,Service 的延迟时间必须取决于当前使用的 resourceSet(Doctor+Nurse 或 Doctor)。知道如何编程吗?
您还应该记住,我的模型有多种服务以相同的方式并行工作,而不仅仅是一条服务线。
谢谢!
【问题讨论】:
标签:
service
resources
delay
anylogic
【解决方案1】:
您正在使用服务,但对我来说,使用 Seize、Delay 和 Release 的组合可以为您提供更大的灵活性。
我所做的是根据下图设置资源选择:
在第一组中让护士先于医生很重要(出于某种原因,anylogic 会选择仅使用医生,否则即使有护士可用)。
然后,我会编写以下代码:
这意味着如果代理只能获取一种资源,则需要更长的时间(15 只是一个随机值)。
在延迟块中,我会将处理时间设置为agent.processTime
我使用的拓扑是这样的:
显然,这是一种解决方法,并不适用于所有情况。您可以随时更改您验证的条件。我找不到检查抓住操作选择了哪个资源集的方法。如果您赶时间,这会解决问题。
希望对您有所帮助,
路易斯