#anylogic
#anylogic
Вопрос:
Я работаю над проектом цепочки поставок с AnyLogic. В моей модели, которая похожа на пример доставки продукта в примерах AnyLogic, есть два агента, которые являются Retailer
и Fulfillment center
. У обоих есть свои собственные транспортные средства. То, что я пытаюсь сделать, это использовать транспортные средства so retailers
и Fulfillment centers
использовать транспортные средства друг друга. Что я сделал, так это создал два Ressource Pool
в каждом агенте. Итак, в блоке захвата, как показано ниже на рисунке, я добавил два ressource sets
. На каждой диаграмме состояний каждого транспортного средства, как показано ниже, и после доставки продуктов я сообщил своему транспортному средству вернуться к его первоначальному местоположению, и в этом случае это может быть Retailer
или Fulfillment center
. Однако после моделирования я получил сообщение об ошибке в консоли, в котором сообщается, что мой агент vehicle
, который является пытается перейти к unknown source
Комментарии:
1. Кроме того, ваш код «moveTo (Retailer)» неверен. В вашей модели нет экземпляра агента с именем «Retailer», только класс агента с таким именем. Но ваш ресурс не может переместиться в класс, ему нужен конкретный экземпляр. (прочитайте главу книги «Java для AnyLogic», чтобы понять эти концепции)
Ответ №1:
Если вы поместите 2 ResourcePools в 2 агента, у вас будет всего 4 пула. Но вам нужен только 1 общий пул, верно?
Добавьте только 1 ResourcePool в Main и используйте его из обоих Seize
элементов агента. Вы не сможете выбрать пул в обычном выпадающем списке (поскольку ни в одном агенте нет пула), но вы можете легко использовать динамический код для его указания. Обратите внимание, что приведенный ниже код предполагает, что оба агента встроены в Main: