Назначьте приоритет 50% агентам в anylogic

#simulation #anylogic #agent-based-modeling

Вопрос:

Я хочу назначить приоритет своим агентам, а затем поставить их в очередь на основе этого. У меня есть контейнер агента, который имеет два параметра перевозчик (который может быть как грузовиком, так и поездом) и приоритет (которому должно быть присвоено некоторое значение). 50% агентов, где перевозчик=Грузовик, и 50% агентов, где перевозчик=Поезд, должны иметь приоритет 1, а остальные должны быть равны нулю. Как я могу это сделать?

Это моя модель. [Модель]. Я хочу переместить вышеупомянутые агенты из хранилища 1 в блок rackPick по приоритету.

Заранее спасибо.

Ответ №1:

Этого можно достичь, создав целое поле «приоритет» в агенте, а затем установив его равным 0 или 1 на основе случайного(0,5) значения в on at exit действии исходного источника, а затем проверив это поле в очереди для получения приоритета. Это будет не совсем 50%, но довольно близко для достаточно большого числа агентов.

Комментарии:

1. Я тебя не понял. Я хочу выбрать 50% агентов, где агент.перевозчик=грузовик, и 50% агентов, где агент.перевозчик=поезд, а затем назначить агенту.приоритет=1 для этих выбранных агентов. Не могли бы вы подробнее рассказать о том, как использовать random(0.5) здесь?

2. Не могли бы вы уточнить, хотите ли вы сделать это при создании агентов (т. Е. в исходном компоненте) или все агенты создаются одновременно, возможно, в начале моделирования, и вы хотели бы выбрать 50% из 2 разных групп населения?

3. Итак, у меня есть популяция агентов, называемая контейнером, в которой одновременно генерируется 10 агентов. У этого агента контейнера есть перевозчик параметров (значения: грузовик, поезд). Я хочу выбрать 50% агентов, где агент.перевозчик=Грузовик и агент.перевозчик=Поезд, и назначить им приоритет 1. В идеале я хотел бы сделать это перед выходом из блока storage1.

4. В этом случае проще всего использовать тернарный оператор в on Enter действии объекта RackStore ‘storage1’ следующим образом: agent.priority = randomTrue(0.5) ? 1 : 0; для каждого типа (грузовик или поезд).