
- •Практикум «Моделирование систем в среде AnyLogic 6.4.1»
- •Введение
- •1. Дискретно – событийное моделирование
- •1.1. Моделирование колебательного процесса
- •Построение модели
- •Запуск модели
- •Размещение графика
- •Настройка презентации модели
- •Определение областей просмотра
- •1.2. Контрольные задания
- •2. Анимация презентации
- •2.1. Движение объекта по заданной траектории
- •2.2. Контрольное задание «Движение по параболе»
- •2.3. Модель «Жизнь»
- •2.4. Контрольное задание «Фигуры»
- •3. Реагирующие системы
- •3.1. Модель светофора для управления движением
- •3.2. Модель пешеходного перехода
- •3.3. Контрольное задание “Переход, управляемый пешеходом”
- •3.4. Контрольное задание “Модель кодового замка”
- •3.5. Модель трех разрядного счетчика
- •3.6. Контрольное задание «Запуск события по истечении контрольного времени»
- •4. Системная динамика
- •4.1. Модель реализации продукта по Бассу
- •4.2. Контрольное задание «Учет повторных покупок»
- •4.3. Контрольное задание «Модель распространения эпидемии»
- •4.4. Моделирование агентов
- •Моделирование покупки товара под влиянием рекламы
- •Сбор статистики
- •Учет влияния общения между потребителями
- •4.5. Контрольное задание «Учет повторных покупок агентами»
- •4.6. Взаимодействие активных классов
- •Активный класс сектора населения
- •Активный класс сектора жилищного строительства
- •Настройка корневого объекта модели
- •4.7. Контрольное задание «Визуализация модели динамики численности населения»
- •5. Задания для самостоятельной работы
- •Приложения Основные сведения о языке программирования Sun Java Классы Java
- •Типы данных Java
- •Присваивание значений в выражениях
- •Операции Java Арифметические операции языка
- •Приоритет в выражениях
- •Управляющие операторы
- •Массивы и их задание
- •Обработка строк
- •Класс Math. Математические функции
- •Обработка исключительных ситуаций
- •Цвет и его кодирование
- •Элементы управления и фигуры презентации Текстовое поле
- •Элемент слайдер
- •Командная кнопка
- •Элемент «Текст»
- •Элемент «Прямоугольник»
- •Список литературы
3.6. Контрольное задание «Запуск события по истечении контрольного времени»
Постройте модель с трех разрядным счетчиком. Когда счетчик выдает показание боле 150 единиц, срабатывает генератор случайных целых чисел имеющих равномерное распределение в диапазоне от 10 до 20. Генератор прекращает работу, когда счетчик насчитывает 300 единиц. Для вывода показаний разрядов счетчика используйте текстовые поля. Вывод случайных чисел производится в текстовое поле с округлением до третьего знака после запятой. Вид работающей модели показан на рисунке 3.23. Генератор случайных чисел активен.
Рис. 3.23. Вид работающей модели
Методические указания:
В класс Counter следует поместить текстовое поле для отображения числа единиц, вместо элемента «Текст». Количество единиц записывается с помощью метода setText(String s) поля.
В поле класса Main нужно поместить два события и переменную-буфер целого типа. Первое событие выполняется циклически и сканирует показания числа единиц разрядов счетчика. Чтобы получить число сгенерированное счетчиком нужно использовать упаковщик типов Java. Для данного случая упаковщик Integer:
intBufer=new Integer (strNumber).intValue()
Где: strNumber – строковое представление числа полученного от счетчика, а intBufer – буфер целого типа, куда записывается число.
Второе событие должно выполняться по условию и генерировать равномерно распределенное число и помещать его в поле вывода. Такое число можно получить, используя встроенную функцию AnyLogic uniform(double min,double max), где min и max границы диапазона генерации числа.
Для управления событием, выполняющимся по условию нужно использовать методы:
reset() – сброс события и перевод его в состояние ожидания выполнения условия его запуска;
restart() – запуск события.
4. Системная динамика
4.1. Модель реализации продукта по Бассу
Модель реализации продукции описывается системой уравнений:
В модели приняты следующие условные обозначения для накопителей:
PotentialAdopters (Потенциальные потребители продукции);
Adopters (Потребители, которые уже купили продукт).
Поток, моделирующий процесс потребления обозначен как AdoptionRate.
В модели используются переменные:
AdoptionFromAd - число потребителей продукта, которые его приобрели под влиянием рекламы;
AdoptionFromWOM - число потребителей продукта, которые его приобрели под влиянием общения с потребителями, которые уже купили продукт.
Интенсивность процесса, приобретения продукта моделируется потоком AdoptionRate.
Константы-параметры модели:
TotalPopulation (Численность населения);
ContactRate (Число контактов);
AdEffectivenes (Эффективность рекламы);
AdoptionFraction (Сила убеждения);
Модель создается с «нуля». Построение модели начинается с создания накопителей PotentialAdopters и Adopters, соединенных потоком AdoptionRate. Для создания модели нужно использовать палитру «Системная динамика».
Что бы создать поток нужно, соединяющий накопители нужно:
Разместить накопители, задать им имена (см. рисунок 4.1).
Рис.4.1. Размещение накопителей
Выделите накопитель PotentialAdopters, затем выполните на нем двойной щелчок левой кнопкой мыши и соедините его с помощью стрелки потока с накопителем Adopters, выполнив на нем двойной щелчок мышью (см. рисунок 4.2).
Рис.4.2. Соединение накопителей. Фаза 1.
Затем нужно присвоить потоку имя AdoptionRate, так как это показано на рисунке 4.3.
Рис.4.3. Накопители, соединенные потоком. Фаза 2.
Примечание. При задании имени потоку следует ввод имени завершить нажатием комбинации клавиш CTRL+ENTER, ответив утвердительно на все последующие запросы. Такая комбинация клавиш автоматически запускает процесс AnyLogiс для контроля за именами в уравнениях модели. Имя, введенное после нажатия комбинации клавиш CTRL+ENTER, автоматически будет проставлено во всех уравнениях модели, где было использовано старое имя.
Затем следует разместить параметры модели и переменные в соответствии с уравнениями модели.
В таблице 4.1. приводятся значения параметров модели.
Таблица 4.1. Параметры динамической модели
-
№
Параметр
Значение
1
TotalPopulation
100000
2
ContactRate
100
3
AdEffectivenes
0,011
4
AdoptionFraction
0,015
Вид модели показан на рисунке 4.4.
Рис.4.4. Модель реализации продукта
Чтобы проследить за процессами, протекающими в модели, следует разместить временные графики.
Первый график показывает динамику изменения числа потенциальных потребителей продукта и числа лиц, которые приобрели продукт.
Для получения наглядных графиков при моделировании следует период обновления выбрать равным 0,25, а количество отображаемых точек задать равным 500.
Настройте эксперимент модели Simulation.
Единицы модельного времени задайте минуты, модель должна останавливаться в заданное время, при достижении модельного времени 100 единиц.
Протестируйте модель. Вид графиков работающей модели должен соответствовать рисунку 4.5.
Рис.4.5. Динамика процессов модели Басса