Как связать агентов с диапазоном приоритетов 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 в качестве приоритета, как вы видите на следующем рисунке: приоритет

Затем очередь освободит агентов в соответствии с их приоритетом... сначала с высоким приоритетом, а затем с низким приоритетом.

Другие вопросы по тегам