AnyLogic
Развернуть
Размер шрифта

Связывание параметров

Вы можете связать параметр типа агента с параметром вложенного агента (или популяции). В этом случае значение параметра вложенного агента всегда будет равно значению параметра агента верхнего уровня. И если во время выполнения модели вы измените значение параметра верхнего уровня, то соответствующим образом изменится и значение связанного с ним параметра вложенного агента. Если параметр вложенного агента будет, в свою очередь, связан с параметром своего вложенного агента, то изменение будет передано дальше и т.д. Стоит отметить, что механизм передачи значения параметра работает однонаправленно — изменения передаются только параметру агента, находящемуся ниже уровнем в иерархическом дереве модели.

Механизм связывания параметров используется в следующих случаях:

  • Если вам нужно изменить значения параметров сразу нескольких вложенных агентов (которые могут быть даже агентами разных типов). Для этого вам будет нужно просто создать один параметр в типе агента, который содержит эти вложенные агенты, связать с этим параметром параметры вложенных агентов и изменять значение только одного этого параметра.
  • Если вам нужно выполнить многопрогонный эксперимент (например, оптимизацию модели, оптимизируя значения параметров вложенного агента или варьировать параметры вложенного агента с помощью эксперимента варьирования параметров). В этом случае вам будет нужно связать параметры, поскольку эксперименту будут доступны только параметры агента верхнего уровня модели (обычно это Main).
  • Если вам нужно иметь возможность интерактивно менять значения параметров вложенных агентов или популяций с помощью элементов управления (бегунков, текстовых полей и т.д.), расположенных на диаграмме агента верхнего уровня.
Вы можете связывать только параметры одного и того же типа.

Чтобы связать параметр типа агента с параметром вложенного в этот тип агента (или популяции агентов)

  1. Откройте диаграмму типа агента.
  2. Выберите на диаграмме вложенный агент.
  3. В основной секции панели Свойства введите имя параметра агента верхнего уровня в том поле, где задается значение соответствующего параметра популяции. Этому параметру популяции будет передаваться значение указанного параметра типа агента верхнего уровня.

Пример

Демо-модель: Predator Prey Agent Based Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.

В этой модели несколько параметров агента Main связаны с параметрами популяций агентов hares и lynx. Если вы откроете свойства популяции hares, то увидите, что все параметры популяции связаны с другими параметрами (а именно, с параметрами агента верхнего уровня Main).

Например, в качестве значения параметра NumberPerBirth указан параметр HareNumberPerBirth агента Main. Эти два параметра связаны для того, чтобы пользователь модели мог интерактивно изменять значение параметра популяции с помощью бегунка, расположенного на диаграмме агента Main. В данном случае бегунок будет менять значение параметра HareNumberPerBirth агента Main, а за счет установленного связывания автоматически будет меняться и значение параметра NumberPerBirth у агентов из популяции hares.

Для того, чтобы можно было легче понимать существующие взаимосвязи, при выделении элемента модели в графическом редакторе подсвечиваются те элементы, с которыми у выделенного элемента есть взаимосвязь. В левой части изображения видно, как все связанные параметры выделены на диаграмме Main рамочкой.

Как мы можем улучшить эту статью?