Anylogic последовательность изменений в сервисном блоке - PullRequest
0 голосов
/ 09 ноября 2018

Уважаемое сообщество AnyLogic,

Я создал модель для оценки различных методов автономного управления.

У меня есть агенты с разными сроками исполнения, и я хочу, чтобы агент с наиболее ранним сроком исполнения был обслужен первым. На данный момент входящие агенты никак не сортируются, а обслуживаются по правилу FIFO.

Есть ли возможность изменить последовательность агентов в служебном блоке без добавления отдельной очереди?

Большое спасибо за ваше время и помощь!

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

Решение Бенджамина хорошо, но если вы настаиваете на том, что не хотите использовать очередь перед служебным блоком, и вам нужно использовать служебный блок, независимо от того, что тогда, вы можете установить приоритеты следующим образом:

how to set priorities

Приоритет вашего агента будет выше, когда наступит срок оплаты.

Поскольку вы уже установили приоритеты внутри своего агента, больше ничего не нужно делать, кроме этого (если только вы не хотите вытеснять).

Но приоритет может быть таким, если вы хотите его настроить (приоритет - это параметр, определенный в вашем агенте): priority setting

0 голосов
/ 09 ноября 2018

Вы можете сопоставить сроки выполнения с приоритетами, как предложил Фелипе.

В качестве альтернативы, более прямым подходом будет использование режима приоритезации очереди «Сравнение агентов». Допустим, у ваших агентов есть параметр "myDueDate" типа Date.

Тогда вы можете просто назначить агентов с наиболее срочной датой исполнения, как показано ниже, по сути говоря, «предпочитая входящего агента1 существующему агенту2, если он более срочный». Входящий агент будет опережать каждого из участников очереди, пока не найдет еще более срочного. enter image description here

...