В моей модели есть несколько свободно движущихся агентов, которые перемещаются к указанным c узлам. Я использую функцию ...
moveTo(node)
... для указания узла, который должен посетить агент. Используя эту функцию, агент проходит кратчайший путь к узлу. Однако макет модели содержит области (например, файлы изображений), которые агент не должен передавать. Прямо сейчас агенты могут путешествовать через эти области, чтобы достичь своего места назначения. Теперь мне интересно, есть ли простой способ разрешить агенту вводить определенные c области в модели при путешествии к узлу.
Я уже взглянул на пример модели "Блуждающие слоны", где слонам разрешено ходить по районам с водой. Решение в том, что если слон встречает воду в направлении, в котором он движется в данный момент, он случайным образом ищет другое направление, пока не найдет его без воды. Однако этот подход не совсем подходит для моей проблемы, поскольку слоны в модели бродят без какого-либо определенного c пункта назначения. Я ищу метод, который работает для агента, который путешествует к определенной c точке. В лучшем случае, агент будет искать кратчайший путь вокруг препятствия, чтобы добраться до места назначения.
Редактировать 1: На следующем рисунке в двух словах показана моя проблема. С левой стороны - структура моей модели, а с правой стороны - диаграмма состояний моего пользовательского агента. Что происходит в модели: 3 источника являются производящими агентами, которые будут задерживаться на неопределенное время (задержка останавливается с помощью stopDelay ()). Каждый раз, когда агент вводит задержку, задержка добавляется в запрос на сбор. Мои обычные проверки чеков в al oop, пока коллекция не содержит хотя бы один запрос. Затем клиент случайным образом выбирает запрос (т.е. объект задержки) для обслуживания. Каждая задержка связана с узлом (коллекция processNodes отображает задержки на узлы). Теперь я хочу привести свой кастомагент к Transporter и переместить его в соответствующий узел. Агент должен избегать столкновений с зачищенными стенами в модели. Я хочу избежать захвата и освобождения ресурсов. Я просто хочу адаптировать поведение агента транспорта из библиотеки обработки материалов к моему агенту.
Редактировать 2: В моем текущем испытательном стенде мой пользовательский агент не рассматривает узел 1 или узел 2. Для тестирования агент должен только пытаться достичь узла без каких-либо коллизий.