Сдам Сам

РАЗРАБОТКА МНОГОАГЕНТНОЙ МОДЕЛИ В ANYLOGIC (ЛАБОРАТОРНАЯ РАБОТА № 3)



Цель работы

Изучить методологию агентного моделирования. Приобрести практиче- ские навыки работы c системой AnyLogic при построении агентных моделей.

Порядок выполнения работы

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

Агенты в AnyLogic

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

При помощи агентов моделируют рынки (агент – потенциальный покупа- тель), конкуренцию и цепочки поставок (агент – компания), население (агент – семья, житель города или избиратель) и мн. др.

В среде AnyLogic можно легко и быстро создавать модели с агентами. Агент естественно реализовывать с помощью базового элемента AnyLogic – ак-


тивного объекта. В модели можно создавать классы активных объектов и далее использовать в модели любое число экземпляров этих классов. Активный объ- ект имеет параметры, которые можно изменять извне, переменные, которые можно считать памятью агента, а также поведение (рис. 40).

 

Интерфейс

 

Рис. 40

 

Параметры могут указывать пол агента, дату рождения и т.д. Перемен- ными можно, например, выразить возраст агента, его координаты в пространст- ве, социальные свойства.

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

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

Задание к лабораторной работе

Создайте новый проект для будущей модели и сохраните его в своей папке.

Первым шагом при создании агентной модели является создание агентов. Для каждого агента задается набор правил, согласно которым он взаимодейст- вует с другими агентами; это взаимодействие и определяет общее поведение системы. В нашей модели агентами будут люди. Создадим агентную модель с помощью Мастера создания модели.



Создание агентной модели

Шаг 1. Щелкните мышью по кнопке панели инструментов Создать. Поя-


вится диалоговое окно Новая модель. Задайте имя новой модели. Щелкните мышью по кнопке Далее.

Шаг 2. Выберите шаблон модели (рис. 41). В связи с тем, что мы хотим создать новую агентную модель, то нужно установить флажок Использовать шаблон моделии выбрать Агентная модельв расположенном ниже списке Выберите метод моделирования. Щелкните мышью по кнопке Далее.

Рис. 41

 

Шаг 3. Создайте агентов, т.е. задайте имя класса агента и количество агентов, которое будет изначально создано в нашей модели. Задайте в качестве имени класса Person и введите в поле Начальное количество агентов1000. Щелкните мышью по кнопке Далее.

Шаг 4. Задайте свойства пространства, в котором будут обитать агенты и выберите фигуру анимации агента. Установите флажок Добавить простран- ствои выберите ниже тип этого пространства – Непрерывное. Задайте размер- ности данного пространства: введите в поле Ширина– 600, а в поле Высота

350. В результате наши агенты будут располагаться каким-то образом в преде- лах непрерывного пространства, отображаемого на презентации модели


областью размером 600´350 пикселей. Не меняйте значения, выбранные в вы- падающих списках Начальное расположениеи Анимация; пусть агенты изначально расставляются по пространству случайным образом, а анимируются с помощью фигурки человечка. Щелкните мышью по кнопке Далее.

Шаг 5. Задайте сеть взаимосвязей агентов (рис. 42). Установите флажок Использовать сетьи оставьте выбранной опцию Случайное. Ниже можно ус- тановите флажок Показывать связи, чтобы отображать на презентации связи между знакомыми (или потенциально могущими встретиться и пообщаться) агентами с помощью линий. Щелкните мышью по кнопке Далее.

Рис. 42

 

Шаг 6. Установите флажок Добавить простое поведение. В результате у агента будет создана диаграмма состояний.

Задание характеристик агента

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


Откройте структурную диаграмму класса Person. Перетащите эле- мент Параметр из палитры Основнаяна диаграмму класса, в окне свойств параметра задайте имя AdEffectiveness, значение по умолчанию – 0.011.

Задание поведения агента

Поведение агента обычно описывается в классе этого агента (в нашей мо- дели это класс Person) с помощью диаграммы состояний (стейтчарт).

Мастер создания моделей уже создал простейшую диаграмму состояний из двух состояний, между которыми существует два разнонаправленных пере- хода. Изменим данный стейтчарт.

1. Откройте структурную диаграмму класса Person. На диаграмме класса вы увидите следующую диаграмму состояний (рис. 43).

Рис. 43

2. Откройте свойства верхнего состояния, переименуйте верхнее состоя- ние в PotentialAdopter. Это начальное состояние. Нахождение стейтчарта в дан- ном состоянии означает, что человек еще не купил продукт.

3. Нижнее состояние назовите Adopter (т.е. человек уже купил продукт).

4. Измените свойства перехода из состояния PotentialAdopter в состояние

Adopter. Этот переход будет моделировать покупку продукта.

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

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


ший продукт, навсегда остается его потребителем, и соответственно перехода из состояния Adopter в состояние PotentialAdopter пока что быть не должно (рис. 44). Чтобы удалить переход, выделите его на диаграмме и нажмите Del.

Рис. 44

 

6. Настройте выполнение модели (рис. 45). В окне свойств эксперимента перейдите на вкладку Модельное времяи задайте останов модели после 8 еди- ниц модельного времени.

Рис. 45

 

7. Постройте проект с помощью кнопки панели инструментов Построить(клавиша F7). Если ошибок в проекте нет, то запустите модель. Вы увидите, как число потенциальных покупателей (синих) переходит в разряд покупателей (красных).









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2017 zdamsam.ru Размещенные материалы защищены законодательством РФ.