2017-01-27 27 views
0

Я определил популяцию агентов под названием «Продавцы» и один агент с населением 1 «Производитель». «Средние продажи» определяются в статистике агентов продавцов. Теперь я хочу, чтобы Производитель знал разные значения, принятые «Средние продажи» Продавцов. Я думаю, что для этого сообщения я должен отправить сообщение от продавцов, в которых значения «Средние продажи» отправляются производителю. Проблема заключается в том, что все примеры определили сообщение в государственной карте. Как я могу это сделать? Можете ли вы написать мне часть кода для этого действия и где его добавить?взаимодействие между двумя агентами, а не в государственной карте

Спасибо

ответ

1

Агент связи не всегда должны быть с помощью сообщений. (Это просто то, что соответствует ориентированному на statechart взгляду на поведение агента и подчеркивается во многих примерах моделей AnyLogic.) Во многих случаях (как и в вашем) гораздо проще просто получить доступ к информации непосредственно в другом агенте (или его населения).

В вашем случае агенты-изготовители могут непосредственно получить доступ к значению статистики. Скажем, у вас есть популяции manufacturers и sellers в Main, со статистикой AverageSales, как вы сказали. Внутри одного из ваших агентов-производителей вы можете просто сделать main.sellers.AverageSales() для доступа к статистике (то есть перейти до Main с помощью агента связи-верхнего уровня, созданного для вас, а затем в популяции продавцов и получить доступ к статистическому значению через предоставляемая функция).

Посмотрите на помощь для:

  • Advanced моделирования с Java -> Java Основы для AnyLogic -> Где я и как я могу добраться до ...?

  • Примечания к выпуску -> Что нового в предыдущих версиях -> Что нового в AnyLogic 7 -> Ссылка на верхний уровень агента

  • Агентная Modeling -> Сбор статистики по агентам