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

Управление связями динамически

Взаимодействие агентов в агентных моделях может быть реализовано различными способами. Если связи между агентами достаточно постоянны, то агенту нужно запоминать тех агентов, которые состоят с ним в какой-то связи. Смысл таких связей может быть, например, следующим: друг, коллега, родитель, ребенок и т.д.

Списки взаимодействий используются, когда агент посылает сообщения своим контактам, см. Взаимодействие агентов.

Если вам необходимо создать больше сетей взаимодействий, вы можете добавить больше связей агентов.

Эти ссылки могут быть указаны при создании агентов или динамически во время имитации. Любой агент может иметь некоторое количество связей - ссылок на другие агенты в той же среде.

Вы можете управлять связями "ручным методом" через функции агента. AnyLogic предоставляет следующие методы для управления связями между агентами:

Одиночная связь
Функция Описание
Agent getConnectedAgent() Возвращает связанного агента.
void connectTo(Agent a) Добавляет указанного агента в список связей этого агента и наоборот.
boolean disconnect() Отсоединяет этого агента от агента, связанного с ним в данный момент.
Коллекция связей
Функция Описание
LinkedList<Agent> getConnections() Возвращает список всех связанных агентов или null, если связей установлено не было.
int getConnectionsNumber() Возвращает количество связанных агентов.
boolean isConnectedTo(Agent a) Проверяет, связан ли этот агент с указанным агентом.
Agent getConnectedAgent(int index) Возвращает связанного агента с заданным номером index.
Agent getRandomConnectedAgent() Возвращает одного случайно выбранного связанного агента.
connectTo(Agent a) Добавляет указанного агента в список связей этого агента и наоборот.
boolean disconnectFrom(Agent a) Отсоединяет этого агента от указанного агента, возвращает false, если они не были связаны.
disconnectFromAll() Отсоединяет этого агента от всех других агентов.
Как мы можем улучшить эту статью?