Оглавление
Предисловие............................................................................................................................1
Среда разработки и примеры моделей.....................................................................................2
Благодарности.........................................................................................................................3
Введение.................................................................................................................................5
Моделирование.......................................................................................................................5
Проблемы разработки имитационных моделей........................................................................6
AnyLogic — инструмент имитационного моделирования нового поколения...........................8
Структура книги......................................................................................................................9
ЧАСТЬ I. ОБЩИЕ ВОПРОСЫ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ ..........................11
Глава 1. Модели. Наука и искусство моделирования.............................................................13
1.1. Модели процессов и систем............................................................................................13
1.2. Моделирование для поддержки принятия управленческих решений...............................16
1.3. Уровни абстракции и адекватность модели....................................................................17
1.4. Моделирование как наука и искусство...........................................................................19
Глава 2. Виды моделей.........................................................................................................20
2.1. Статические и динамические модели............................................................................20
2.2. Непрерывные, дискретные и гибридные модели...........................................................21
2.3. Детерминированные и стохастические модели..............................................................22
2.4. Аналитические и имитационные модели.......................................................................23
Глава 3. Имитационное моделирование..............................................................................24
3.1. Что такое имитационное моделирование.....................................................................24
3.2. Примеры задач, решаемых с помощью имитационного моделирования.......................25
3.2.1. Система массового обслуживания с тремя устройствами обслуживания...................25
3.2.2. Максимизация прибыли поставщика сервиса для мобильной связи..........................28
3.2.3. Модель роста рынка..................................................................................................29
3.3. Этапы имитационного моделирования.........................................................................30
3.4. Визуализация и анимация............................................................................................33
Глава 4. Имитационное моделирование в среде AnyLogic. Общие понятия.......................34
4.1. Первая модель на AnyLogic.........................................................................................34
4.1.1. Структурная диаграмма............................................................................................37
4.1.2. Окна свойств объектов модели................................................................................38
4.1.3. Окно повеления активного объекта.........................................................................39
4.1.4. Окно редактора анимации активного объекта.........................................................40
4.2. Режим выполнения модели........................................................................................41
4.2.1. Запуск модели.........................................................................................................42
4.2.2. Эксперименты с моделью.......................................................................................43
4.2.3. Управление скоростью выполнения модели и изображением.................................44
4.2.4. Предварительно определенные эксперименты с моделью.......................................44
4.3. Работа с окнами.........................................................................................................45
4.4. Доработка модели......................................................................................................46
4.4.1. Изменение цвета мяча в анимации при отскоке......................................................46
4.4.2. Введение второго мяча в модель.............................................................................48
4.4.3. Произвольные перемещения мяча...........................................................................50
4.5. Основные концепции имитационного моделирования в среде AnyLogic...................52
4.5.1. Две фазы имитационного моделирования...............................................................52
4.5.2. Активные объекты, классы и экземпляры активных объектов................................52
4.5.3. Объектно-ориентированный подход.......................................................................53
4.5.4. Визуальная разработка модели...............................................................................53
4.5.5. Встроенный язык Java............................................................................................54
4.5.6. Средства описания поведения объектов.................................................................54
4.5.7. Имитация нескольких параллельно протекающих процессов.................................55
4.5.8. Модельное и реальное время..................................................................................55
4.5.9. Анимация поведения модели..................................................................................56
4.5.10. Интерактивный анализ модели............................................................................56
4.6. Запуск и проигрывание других моделей...................................................................56
4.7. Заключение...............................................................................................................57
ЧАСТЬ II. СРЕДСТВА ANYLOGIC ДЛЯ ИМИТАЦИОННОГО
МОДЕЛИРОВАНИЯ СИСТЕМ
Глава 5. Разработка простых моделей непрерывных систем........................................61
5.1. Построение простой модели с нуля. Модель сердечных сокращений...................61
5.1.1. Постановка задачи............................................................................................63
5.1.2. Рассматриваемые вопросы................................................................................63
5.1.3. Файлы для контроля..........................................................................................64
5.1.4. Создание нового проекта...................................................................................64
5.1.5. Построение модели...........................................................................................66
5.1.6. Запуск модели...................................................................................................70
5.1.7. Графики (диаграммы)........................................................................................71
5.1.8. Эксперименты...................................................................................................72
5.1.9. Анимация модели..............................................................................................73
5.2. Счетчик (ContinuousCounter)................................................................................78
5.2.1. Рассматриваемые вопросы................................................................................79
5.2.2. Постановка проблемы.......................................................................................79
5.2.3. Модель..............................................................................................................79
5.2.4. Генератор тиков................................................................................................80
5.2.5. Разряд счетчика.................................................................................................81
5.2.6. Корневой объект................................................................................................81
5.2.7. Анимация модели..............................................................................................83
5.3. Заключение: поддержка моделирования непрерывных процессов в AnyLogic .....84
5.3.1. Активные объекты............................................................................................84
5.3.2. Переменные......................................................................................................85
5.3.3. Формулы, системы алгебраических и дифференциальных уравнений...............85
5.3.4. Параметры........................................................................................................86
5.3.5. Визуализация исполнения модели....................................................................87
5.3.6. Эксперименты с моделью.................................................................................88
Глава 6. Разработка моделей дискретно-событийных систем.....................................89
6.1. Порты и сообщения. Дискретная модель счетчика..............................................89
6.1.1. Рассматриваемые вопросы...............................................................................90
6.1.2. Структура модели............................................................................................90
6.1.3. Представление сигнала как сообщения............................................................90
6.2. Реагирующие системы (reactive systems) и стейтчарты.......................................93
6.3. Модель пешеходного перехода: переключение состояний в стейтчартах............97
6.3.1. Постановка проблемы.....................................................................................97
6.3.2. Рассматриваемые вопросы...............................................................................98
6.3.3. Построение модели.........................................................................................98
6.3.4. Создание анимации.......................................................................................103
6.3.5. Срабатывание перехода по сигналу...............................................................104
6.3.6. Срабатывание перехода по условию..............................................................108
6.4. Системы массового обслуживания: использование библиотеки
стандартных объектов.............................................................................................110
6.4.1. Системы массового обслуживания.................................................................110
6.4.2. Постановка проблемы....................................................................................111
6.5. Средства AnyLogic для разработки дискретно-событийных моделей................115
6.5.1. События.........................................................................................................115
6.5.2. Таймеры........................................................................................................117
6.5.3. Стейтчарты....................................................................................................118
6.5.4. Непосредственное порождение событий........................................................118
6.5.5. Сообщения и порты.......................................................................................118
6.5.6. Шаги выполнения модели.............................................................................118
6.5.7. Библиотека Enterprise Library.........................................................................119
6.6. Заключение......................................................................................................120
Глава 7. Сведения о языке Java, необходимые для разработки моделей
на AnyLogic ...121
7.1. Примитивные типы данных и переменные............................................................122
7.1.1. Числовые типы...................................................................................................122
7.1.2. Булевский тип....................................................................................................123
7.1.3. Символьный тип................................................................................................123
7.1.4. Переменные.......................................................................................................124
7.1.5. Выражения и оператор присваивания................................................................124
7.2. Сложные типы данных..........................................................................................127
7.2.1. Строки...............................................................................................................127
7.2.2. Отладочная печать.............................................................................................128
7.2.3. Тип Color...........................................................................................................129
7.2.4. Массивы............................................................................................................137
7.2.5. Многомерные массивы.....................................................................................138
7.2.6. Динамические массивы....................................................................................138
7.3. Функции.............................................................................................................139
7.3.1. Вызов методов классов.....................................................................................139
7.3.2. Функции: методы класса, определенные пользователем...................................140
7.4. Управление потоком вычислений в Java.............................................................141
7.4.1. Операторы........................................................................................................141
7.4.2. Блоки................................................................................................................142
7.4.3. Условные операторы........................................................................................142
7.4.4. Операторы цикла..............................................................................................142
7.4.5. Операторы Java в моделях AnyLogic..................................................................143
7.5. Классы и объекты в AnyLogic..............................................................................144
7.5.1. Классы и экземпляры классов...........................................................................144
7.5.2. Конструктор класса..........................................................................................145
7.5.3. Структура модели в AnyLogic...........................................................................145
7.5.4. Наследование классов.......................................................................................148
7.6. Иерархия структуры в модели AnyLogic..............................................................149
7.6.1. Доступ к элементам реплицированных экземпляров активных объектов..........150
7.7. Доступ к объектам модели по иерархии ее структуры.........................................152
7.7.1. Доступ к переменным и параметрам объектов класса.......................................152
7.7.2. Доступ к переменным и объектам включающего объекта. Функция getOwner()..153
7.7.3. Ключевое слово this............................................................................................154
7.7.4. Примеры.............................................................................................................155
7.8. Заключение............................................................................................................156
Глава 8. Примеры моделей, разработанных с использованием языка Java.....................157
8.1. Игра "Жизнь" (life)..................................................................................................157
8.1.1. Постановка задачи...............................................................................................157
8.1.2. Построение модели..............................................................................................158
8.1.3. Дополнительные переменные и функции.............................................................159
8.1.4. Алгоритм изменения состояния ячеек..................................................................160
8.1.5. Улучшение модели..............................................................................................163
8.2. Модель "Сбор урожая" (Harvest).............................................................................164
8.2.1. Постановка задачи...............................................................................................164
8.2.2. Абстрагирование при построении модели...........................................................165
8.2.3. Предположения о движении объектов модели.....................................................165
8.2.4. Представление процесса сбора урожая................................................................166
8.2.5. Выделение общей логики поведения объектов....................................................166
8.2.6. Анимация............................................................................................................176
8.3. Заключение............................................................................................................177
ЧАСТЬ III. МЕТОДОЛОГИЧЕСКИЕ ВОПРОСЫ
ИСПОЛЬЗОВАНИЯ МОДЕЛЕЙ
Глава 9. Компьютерный эксперимент..........................................................................181
9.1. Детерминированные задачи принятия решений.
Задачи типа what-if (что-если)......................................................................................182
9.2. Простой эксперимент............................................................................................183
9.3. Анализ чувствительности модели. Эксперимент
для варьирования параметров......................................................................................185
9.4. Система оптимизации общего назначения OptQuest..............................................187
9.5. Оптимизационный эксперимент в AnyLogic..........................................................189
9 6. Пример оптимизации............................................................................................190
9.6.1. Структура модели...............................................................................................190
9.6.2. Параметры модели..............................................................................................191
9.6.3. Статистические характеристики модели.............................................................193
9.6.4. Проблема оптимизации. Целевая функция.........................................................193
9.6.5. Целевая функция................................................................................................199
9.7. Заключение...........................................................................................................201
Глава 10. Разработка и анализ стохастических моделей в среде AnyLogic....................203
10.1. Анализ в условиях неопределенности..................................................................203
10.2. Случайные величины и их распределения...........................................................205
10.3. Метод Монте-Карло............................................................................................208
10.4. Имитационный эксперимент в условиях неопределенности...............................210
10.5. Принятие решений в условиях неопределенности...............................................215
10.6. Пример модели принятия решения в условиях неопределенности.
Динамика использования алкоголя (Alcohol Use Dynamics).........................................216
10.6.1. Постановка проблемы......................................................................................216
10.6.2. Описание модели.............................................................................................218
10.6.3. Структура модели............................................................................................219
10.6.4. Активный объект Agent...................................................................................219
10.6.5. Активный объект AgentGroup..........................................................................223
10.6.6. Активный объект Model..................................................................................224
10.6.7. Анимация........................................................................................................224
10.7. Заключение........................................................................................................225
Глава 11. Организация взаимодействия AnyLogic с другими приложениями..............226
11.1. Использование файлов JA\A и JAR....................................................................226
11.2. Работа с текстовыми файлами...........................................................................227
11.3. Интеграция с базами данных.............................................................................228
11.4. Вызов внешних приложений из AnyLogic..........................................................230
11.5. Вызов модели из внешних приложений.............................................................230
11.6. Вызов DLL из моделей AnyLogic........................................................................231
11.7. Использование RM1...........................................................................................231
11.8. Заключение........................................................................................................232
ЧАСТЬ IV. СОВРЕМЕННЫЕ ПАРАДИГМЫ
В ИМИТАЦИОННОМ МОДЕЛИРОВАНИИ
Глава 12. Динамические системы...............................................................................235
12.1. Простая динамическая система: система управления бойлером.........................235
12.2. Блок-диаграмма системы управления в пакете Simulink.....................................237
12.3. Реализация модели динамической системы в среде AnyLogic............................238
12.4. Построение моделей с иерархической структурой.............................................241
12 5. Блочный метод реализации моделей динамических систем
в среде AnyLogic........................................................................................................242
12.6. Мяч, прыгающий по ступенькам.......................................................................243
12.6.1. Описание модели............................................................................................243
12.7. Модель выравнивания цен.................................................................................245
12.8. Заключение........................................................................................................245
Глава 13. Системная динамика...................................................................................247
13.1. Нотация и основные идеи системной динамики................................................248
13.2. Концепция и терминология системной динамики..............................................251
13.3. Средства AnyLogic для построения моделей системной динамики.
Модель развития эпидемии........................................................................................253
13.4. Модель развития эпидемии................................................................................254
13.5. Пример модели, представляющей сложные взаимные
зависимости переменных: модель Лоренца.................................................................256
13.6. Пример разработки модели. Модель распространения инноваций
и новых продуктов......................................................................................................258
13.7. Простая модель развития популяции..................................................................262
13.8. Более сложная модель развития популяции: демографическая
модель города.............................................................................................................264
13.9. Средства AnyLogic для структуризации моделей системной динамики..............267
13.10. Модель развития популяции с учетом возрастных групп..................................269
13.11. Заключение.......................................................................................................273
Глава 14. Дискретно-событийное моделирование.......................................................274
14.1. Низкоуровневые средства моделирования дискретных систем в AnyLogic.........275
14.2. Парадигма блочного моделирования...................................................................276
14.3. Системы массового обслуживания......................................................................277
14.4. Библиотека Enterprise library................................................................................278
14.5. Упрощенная модель отделения скорой помощи..................................................280
14.5.1. Процесс обслуживания пациентов...................................................................280
14.5.2. Структура имитационной модели....................................................................281
14.5.3. Создание сети на анимации модели.................................................................282
14.5.4. Ресурсы модели................................................................................................284
14.5.5. Определение сети на структурной диаграмме..................................................285
14.5.6. Определение процесса обслуживания в системе..............................................286
14.6. Заключение.........................................................................................................290
Глава 15. Мноюатентные системы..............................................................................291
15.1. Агенты в AnyLogic.............................................................................................292
15.2. Поведение агентов.............................................................................................292
15.3. Интерфейс агентов.............................................................................................293
15.4. Архитектура агентных моделей..........................................................................294
15.5. Взаимодействие агентов со средой....................................................................295
15.6. Взаимодействие агентов с другими агентами....................................................297
15.7. Агенты в пространстве......................................................................................297
15.8. Пример агентной модели: Инфицированные муравьи.......................................302
Наблюдение модели...................................................................................................302
Описание модели.......................................................................................................303
Активный объект Ant (муравей).................................................................................303
Корневой активный объект Model.............................................................................307
Анимация модели......................................................................................................309
15.9. Заключение.......................................................................................................310
Глава 16. Использование различных парадигм при разработке моделей....................311
16.1. Агентные и системно-динамические модели......................................................311
16.2. Модель, разработанная в рамках различных подходов........................................314
16.3. В каких случаях нужно строить агентные модели..............................................316
16.4. Заключение........................................................................................................318
ЧАСТЬ V. ПРИМЕРЫ МОДЕЛЕЙ ДЛЯ РАЗЛИЧНЫХ
ОБЛАСТЕЙ ПРИМЕНЕНИЯ
Глава 17. Стратегическое планирование....................................................................321
Глава 18. Динамика развития города (Urban Dynamics)..............................................325
18.1. Город как сложная система................................................................................325
18.2. Пример агентной модели развития города (Urban Dynamics Agent Based)..........327
18.2.1. Общее описание модели.................................................................................327
18.2.2. Модель...........................................................................................................329
18.2.3. Использование модели для анализа возможных решений...............................331
Глава 19. Информатика и коммуникация...................................................................332
19.1. Алгоритм распределенного завершения.............................................................332
19.1.1. Постановка проблемы.....................................................................................332
19.1.2. Алгоритм........................................................................................................333
19.1.3. Модель базовых вычислений..........................................................................334
19.1.4. Модель алгоритма распределенного завершения............................................339
19.2. Заключение.......................................................................................................342
Глава 20. Модели коллективного поведения.............................................................343
20.1. Задача о синхронизации цепи стрелков (Firing Squad Problem)..........................343
20.2. Постановка проблемы.......................................................................................343
20.3. Идея решения....................................................................................................344
20.4. Описание модели..............................................................................................345
20.4.1. Модель Генерала............................................................................................345
20.4.2. Модель Сержанта...........................................................................................346
20.4.3. Модель стрелка..............................................................................................347
20.4.4. Корневой объект............................................................................................347
20.4.5. Визуализация поведения цепи стрелков.........................................................348
20.5. Анимация модели..............................................................................................348
20.6. Упражнения с моделью.....................................................................................349
20.7. Модель Heat Bugs (Тепловые жуки)..................................................................350
20.7.1. Формальная постановка задачи......................................................................351
20.7.2. Модель...........................................................................................................351
20.7.3. Модель жука..................................................................................................352
20.7.4. Модель среды.................................................................................................352
20.8. Заключение.......................................................................................................353