Как связать агентов с диапазоном приоритетов Anylogic
Я моделирую модель на Anylogic, состоящую из 4 блоков: source-queue-service-sink.
У меня есть 3 класса приоритета (низкий, средний, высокий), с помощью которых я должен организовать очередь на основе приоритетов. Так:
- 70% агентов должны быть связаны с "высоким";
- 20% агентов для "среды";
- 10% агентов на "низком уровне".
И очередь должна работать так: сначала максимумы, затем средние и минимумы в конце.
Как я могу это сделать? Должен ли я работать с массивами, может быть?
1 ответ
Сначала в вашем агенте должна быть переменная с именем priority... Чтобы случайным образом связать приоритет, значением этой переменной по умолчанию должно быть:
uniform()<0.7 ? 3 : (uniform()<2/3 ? 2 : 1)
Это означает, что 70% агентов будут иметь приоритет 3, 20% будут иметь приоритет =2, а 10% будут иметь приоритет =1
В вашем модуле очереди в ваших свойствах в первом расширенном разделе вы изменяете очередь на "на основе приоритетов" и выбираете agent.priority в качестве приоритета, как вы видите на следующем рисунке:
Затем очередь освободит агентов в соответствии с их приоритетом... сначала с высоким приоритетом, а затем с низким приоритетом.