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

Я снабдил своего агента штрих-кодом параметров. Ввод представляет собой файл Excel с разными штрих-кодами по мере поступления в источник.

В моей модели четыре разных типа деталей. Часть 1 умножается в модели на разделяемый блок w раз, часть 2 x раз, часть 3 y раз и часть 4 z раз.

Детали проходят через мою модель разными путями. Это означает, что у них разное время и, следовательно, они не возвращаются в раковину в одно и то же время. Поскольку я хочу, чтобы все части одновременно оказались в стоке, я хочу работать с блоком ожидания.

Когда части умножаются, они сохраняют свой уникальный штрих-код.

Пример: часть 3 умножается на y раз. Итак, есть много частей 1 с одним и тем же штрих-кодом. Итак, в блоке ожидания я хочу, чтобы все агенты (части) ждали, пока ВСЕ умноженные части этой части не поступят в блок ожидания непосредственно перед приемником.

Мой подход таков: случай переключения в блоке ожидания после части 1, части 2 и т. д. А потом внутри корпуса код вида: if w agents with the same barcode are inside the wait block, free them. Но не все другие агенты. Таким образом, можно сказать, что этот блок ожидания похож на сортировочную станцию.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
138
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я бы подошел к этому иначе. Вместо блока Wait я бы оставил его как Queue. Затем присоедините его к блоку Pickup. Внутри Pickup выберите While condition is true и введите под условием (при условии, что общее число должно быть 7) (agent.barcode==container.barcode) && (count(queue, q-> q.barcode==agent.barcode)==7 ) .

Всякий раз, когда в систему поступает новый штрих-код, создайте фиктивного агента с agent.barcode, установленным на это значение, и отправьте фиктивного агента в enter1 с кодом вроде enter1.take(agent). Затем этот фиктивный агент будет ждать в queue2, как только счет будет достигнут, он заберет ровно такое количество агентов и отправится на дно. Если хотите, можете поставить блок Dropoff, а затем Sink.

Во-первых, большое спасибо Яшар! Вы мне очень помогли. :) Но одно не работает. Я настроил все в своей модели, как вы предложили, но в моем сценарии фиктивный агент не ждет в очереди 2. На самом деле это просто проходит. Как вы заставили его работать в вашей модели? У вас есть идея, в чем может быть моя вина? Заранее спасибо.

name123 14.10.2022 19:21

они ждут во внутренней очереди самовывоза, что само по себе не является проблемой!

Yashar Ahmadov 17.10.2022 14:10

Привет, @Yashar: не думаю, что это решает мой вопрос :) Посмотрите на этот скриншот моей работающей модели: imgur.com/a/hXOj4YD За короткий промежуток времени все фиктивные (копирующие) агенты прошли и, к сожалению, не ждать в очереди2 (или во внутренней очереди на самовывоз). Поскольку сначала очередь оригиналов пуста, агенты копирования не ждут. У вас есть идея? В моем случае ваш ответ не работает..

name123 28.10.2022 09:03

Исправлена ​​моя проблема. Я реализовал блок ожидания вместо очереди2, которая освобождает сразу всех агентов, если очередь имеет определенную длину. Также я удалил второе слагаемое в условии Яшара. Так что только (agent.caseNumber == container.caseNumber). Я отмечу этот вопрос как ответ, но если у кого-то есть объяснение, почему это не работает, не стесняйтесь комментировать.

name123 30.10.2022 18:31

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