Вопрос о захвате более одного ресурса в Anylogic

#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: введите описание изображения здесь