Доброе утро, Я новичок на платформе AnyLogic, и я начал изучать его, потому что я хочу использовать его для сопоставления бизнес-процессов компании. Я планирую использовать библиотеку моделей процессов этого инструмента для моделирования различных отделов с целью изучения того, как теперь внедряются информационные потоки между отделами.AnyLogic ассемблер как шлюз
Моя диаграмма будет состоять из элементов '' source '' и разных '' ассемблерных элементов '', и мне бы хотелось, чтобы последние (ассемблеры) работали как шлюзы. Я прилагаю простую диаграмму, чтобы лучше иллюстрировать ситуацию (example).
Предположим, что '' sourceA '' и '' sourceB '' (размещенные в разных отделах) генерируют два разных документа, реализованных с двумя настраиваемыми агентами (например, агенты, генерируемые из '' sourceA '', имеют параметр 'orderID' ' и агенты, генерируемые из '' sourceB '', имеют параметр '' qualityCheckID ''), которые передаются в соответствующих очередях до достижения компонента ассемблера (размещаются в другом отделе). Очереди с высокой вероятностью не выровнены во время имитации (очередь [10] = агент.orderID установлен в 10, а очередь [10] = агент.qualityIDCheck установлена в 9) из-за того, что отделы не синхронизированы. Я хотел бы, чтобы ассемблер работал в качестве шлюза, поэтому он ожидает, что агенты, которые имеют «orderID», равны «qualityCheckID» (это означает, что продукты по определенному заказу были проверены отделом качества).
Чтение документации Я видел, что агенты попадают в порт ассемблера, когда он свободен, и ждут в очереди иначе. Из-за асинхронизации может случиться так, что в ассемблерных портах присутствуют агенты, у которых нет идентификатора orderID, равного qualityCheckID, и в этом случае я не хочу, чтобы был произведен выход ассемблера. Может случиться, что нужный агент находится в очереди, а не в порту, поэтому «ассемблеру» приходится искать внутри очередей, чтобы найти, присутствует ли соответствующий агент, и если он удаляет его из очереди (замените неправильный агент в порт, доставляющий этот последний в очереди и выдающий результат)
Кто-то может помочь мне понять, как этот сценарий может быть реализован.
Спасибо за вашу помощь. Итак, если я правильно понял, я заменяю все ** очереди ** перед элементом ** ассемблера **, с таким количеством ** wait ** блоков (по одному для каждого необходимого объекта), а затем я сделаю проверяйте, когда новый агент входит в один из блоков ** wait **, а затем я освобожу весь необходимый объект, когда совпадение будет выполнено. P.S. Можете ли вы предложить мне текст или веб-учебник, на котором я могу узнать некоторые основы в блоках программ? (Я уже знаю язык Java) –
Да, я думаю, вы поняли концепцию. Программные блоки? Вы имеете в виду, как использовать блоки Anylogic? Когда я сказал «Wait Block», я имел в виду элемент Wait из библиотеки моделирования процессов! – luizfvpereira
С «программным блоком» «Я имею в виду некоторый учебник о том, как закодировать в обработчиках событий. –