Система моделирования моделирования AnyLogic TM — КиберПедия 

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Система моделирования моделирования AnyLogic TM

2019-08-04 118
Система моделирования моделирования AnyLogic TM 0.00 из 5.00 0 оценок
Заказать работу

 

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

Агентные модели в программе реализуются с помощью специальной Библиотеки агентного моделирования AnyLogic Agent Based Library. Она предоставляет возможность задания функциональности, которая часто требуется в агентных моделях. Библиотека находится в стадии разработки, и на данный момент она содержит только один объект – AgentBase, который, будучи добавлен в класс активного объекта агента, позволяет использовать различные временные и пространственные модели, задавать сети контактов агентов, а также другие важные свойства.

Агенты группируются в популяции. Агенты одной и той же популяции используют одинаковые:

· Временную модель.

· Пространственную модель.

· Сеть.

· Тип взаимодействия.

В одной модели может быть несколько популяций, причем каждая популяция может содержать объекты различных классов. Принадлежность агента той или иной популяции определяется параметром PopulationName объекта AgentBase. Популяция создается при создании первого агента, ссылающегося на ее имя. Она использует значения глобальных параметров из настроек объекта AgentBase этого агента. Агенты, созданные позднее, не будут иметь возможность изменять свойства этой популяции, но должны иметь совместимые настройки.

Инициализация сети и расположения агента внутри популяции производится при наступлении специального события, запланированного на момент времени 0; поэтому она затрагивает все объекты, уже созданные к тому времени при инициализации модели. Вот как это происходит:

1. Если в качестве значения параметра DefaultNetwork не выбран тип ALL IN RANGE, то происходит создание сети

2. Применяется заданное по умолчанию расположение (дискретное или непрерывное)

3. Если в качестве значения параметра DefaultNetwork выбран тип ALL IN RANGE, то происходит создание сети.

В случае дискретного времени, первый шаг («тик часов») будет совершен сразу после инициализации модели. Но обратите внимание, что если в модели на момент времени 0 будут запланированы другие события, то неизвестно, какое из действий будет выполнено раньше – инициализация сети и расположения агентов или какие-то из запланированных событий.

Для всех агентов, динамически создаваемых во время выполнения модели, никакие контакты с другими агентами по умолчанию не устанавливаются.

Объект AgentBase поддерживает две временные модели: непрерывную – CONTINUOUS и дискретную – DISCRETE. Непрерывная модель подразумевает, что агенты сами управляют временем, т.e. они могут иметь таймеры, стейтчарты и уравнения, планирующие какие-то индивидуальные активности во времени. Дискретная модель подразумевает, что агенты работают синхронно и пошагово.

В модели с дискретной временной моделью популяция генерирует события («тики часов») в моменты времени 0, 1, 2… При наступлении каждого такого события выполняется следующая последовательность действий:

· Для всей популяции один раз вызывается код параметра OnBeforeStepGlobal (предполагается, что этот код содержит глобальные действия, не связанные с какими-либо отдельными агентами).

· У каждого агента популяции вызывается код параметра OnBeforeStep

· Для всей популяции один раз вызывается код параметра OnStepGlobal (опять же, предполагается, что этот код содержит глобальные действия, не связанные с какими-либо отдельными агентами)

· Справочное руководство по Agent Based Library

· У каждого агента популяции вызывается код параметра OnStep

Дискретная временная модель не означает, что у агентов не может быть своих активностей – они могут выполнять любые действия параллельно с дискретными «тиками» часов модельного времени.

Объект AgentBase поддерживает две пространственные модели: непрерывную – CONTINUOUS и дискретную – DISCRETE. В моделях с непрерывным пространством каждый агент имеет кординаты (x, y), и не существует никаких ограничений на плотность или расположение агентов в пространстве. Можно управлять расположением агентов, либо изменяя текущие значения координат (параметры Xdynamic и Ydynamic) (тогда должен быть выбран режим управления местоположением агента DYNAMIC USER DEFINED), или используя функции API, отвечающие за передвижение агентов: moveTo, stop, jumpTo, и т.д. (тогда должен быть выбран режим управления местоположением STATIC OR MOBILE).

Начальное расположение агентов в непрерывном пространстве задается параметром DefaultLayoutContinuous. Использование параметров SpaceWidth и SpaceHeight имеет смысл, только если используется заданное по умолчанию расположение агентов. Если используется дискретная модель пространства, то агенты помещаются в ячейки, причем в каждой ячейке может быть не более одного агента. Количество ячеек задается параметрами SpaceRows (количество строк) и SpaceColumns (количество столбцов). Начальное расположение агентов задается параметром DefaultLayoutDiscrete. В дискретном пространстве существует понятие соседства агентов. Тип соседства задается параметром Neighborhood. При типе соседства EUCLIDIAN функция getNeighbors() возвратит объект типа Vector, содержащий всех агентов, находящихся в ячейках, которые имеют общие границы с данной ячейкой (если таковые имеются). Если же будет выбран тип соседства MOORE, то будут также учитываться агенты и в ячейках, соседних с данной по диагонали, то есть, в ячейках, имеющих общие углы с этой ячейкой.

Если Вы создадите анимацию агента, то на анимации активного объекта, содержащего объект агента, агенты будут расположены согласно их текущим координатам.

Каждый агент может иметь контакты с другими агентами этой же популяции (если значение параметра DefaultNetwork не равно NONE). Список всех агентов, соединенных с этим агентом, можно получить с помощью функции getContacts().

Существует несколько предопределенных типов сетей: RANDOM, SCALE FREE, и т.д. Можно использовать один из предопределенных типов сетей, но можно также соединять агентов «вручную» с помощью функций connectTo/disconnectFrom.

Можно использовать сеть для посылки сообщений соединенным агентам с помощью функций sendToRandomContact и sendToAllContacts. Если у агента создана анимация, то при желании можно отобразить на ней линии, показывающие связи между соединенными агентами.

Стандартный тип сети не означает, что агенты не могут иметь каких-то других соединений. Можно задать любую топологию сети взаимодействий агентов, устанавливая и сохраняя соответствующие связи. Например, можно промоделировать семьи, создав в объекте агента переменные Parent и Children, которые будут хранить ссылки на агента-родителя и агентов-детей соответственно.

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

Объект AgentBase также предоставляет механизм обмена сообщениями между агентами. Функции sendTo… используются для пересылки сообщений различного типа агентам той же популяции. При получении агентом сообщения, начинает выполняться код параметра OnReceive. В этом коде можно задать обработчик события получения сообщения, при этом сообщение будет доступно как встроенная переменная message (типа Object), а агент-отправитель сообщения – как переменная sender (типа ActiveObject).

Как обычно, можно задать любой другой механизм взаимодействия между агентами: они могут вызывать функции друг друга, изменять значения переменных, и т.д.

 

 



Поделиться с друзьями:

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.