Anylogic: Как установить время задержки обслуживания в зависимости от используемого набора ресурсов

В основном у меня есть служба, которая может работать с двумя альтернативами ResourceSets. Скажем, служба оптимально работает с одним врачом и одной медсестрой, но также можно работать только с одним врачом, если медсестра недоступна.

Теперь, предполагая, что Доктор работает медленнее без медсестры, время задержки службы должно зависеть от того, какой набор ресурсов используется в данный момент (Доктор + Медсестра или Доктор). Есть идеи, как я могу это запрограммировать?

Вы также должны иметь в виду, что в моей модели несколько служб параллельно работают одинаково, а не только одна линия службы.

Спасибо!


person Tomas Gurovich    schedule 30.11.2016    source источник


Ответы (1)


Вы используете Сервисы, но, на мой взгляд, использование комбинации Seize, Delay и Release дает вам больше гибкости. Я сделал выбор ресурса в соответствии с изображением ниже:  введите описание изображения здесь

Важно, чтобы в первом наборе медсестры были раньше врачей (по какой-то причине anylogic предпочел бы использовать только врача, в противном случае - даже с медсестрой).

Тогда я бы написал этот код:  введите описание изображения здесь

Это означает, что если агент смог захватить только один ресурс, это займет больше времени (15 - это просто случайное значение).

В блоке задержки я бы установил время обработки agent.processTime

Я использую следующую топологию:

введите здесь описание изображения

Очевидно, что это обходной путь, и он будет работать не во всех случаях. Вы всегда можете изменить проверяемые условия. Я не мог найти способ проверить, какой набор ресурсов был выбран операцией захвата. Если вы торопитесь, это поможет.

Надеюсь, что это поможет, Луис

person luizfvpereira    schedule 02.12.2016