Подготовка курса Имитационное моделирование
Подготовка курса Имитационное моделирование.
Содержание
1 Прагматика
1.1 Предыдущий вариант курса
- Предыдущая инкарнация курса называлась Моделирование информационных процессов.
- В рамках курса предлагались несколько подходов к имитационного моделирования.
- Каждый метод демонстрировался на базе собственного средства моделирования.
- Однако для студентов оказалось сложным осваивать несколько программных средств.
1.2 Разрабатываемый вариант курса
- Предлагается использовать один язык программирования — Julia.
- Для каждого метода имитационного моделирования используется своя библиотека.
- Каждый метод демонстрируется на основе специфической задачи, а также на основе сквозной практической задачи.
- У нас две школы математического моделирования с разными математическими аппаратами:
- дифференциальные уравнения;
- теория массового обслуживания.
- Предлагается демонстрировать применение на основе следующих сквозных задач:
- модель SIR (дифференциальные уравнения);
- модель хищник–жертва (дифференциальные уравнения);
- ? (теория массового обслуживания).
- На каждый раздел имитационного моделирования предлагается выделить 3 лабораторных работы.
- 2 лабораторных работы на специфические задачи, 1 лабораторная работа на сквозные задачи.
- На каждую лабораторную работу по 2 задачи.
2 Используемые разделы имитационного моделирования
- дискретно-событийное моделирование;
- системная динамика;
- агентное моделирование;
- сети Петри.
3 Структура курса
3.1 Установка и настройка программного обеспечения
3.2 Сквозные задачи
- Описываются сквозные задачи.
- Сквозные задачи решаются с помощью методов аналитического моделирования.
- Две сквозных задачи:
- Модель SIR.
- Модель хищник-жертва.
3.3 Агентное моделирование
- Задачи типа взаимодействия множества агентов.
- Модель хищник-жертва:
- Маргаритковый мир:
- Пожар в лесу:
3.4 Сети Петри
- Перенос лабораторных с курса Моделирование информационных процессов.
- Хищник-жертва:
- SIR:
3.5 Дискретно-событийное моделирование
- Задачи теории массового обслуживания.
- Задача ремонта:
- Очередь M/M/c:
3.6 Системная динамика
- Пока не понятно.
- Будем делать позже.
4 Методические материалы
4.1 Лабораторные работы
- Для выполнения лабораторных работ выделяются аудиторные и самостоятельные часы.
- В часы самостоятельных занятий студенты могут работать как в аудитории (дисплейный класс), так и в любом другом месте (по желанию).
- Университет обеспечивает студентов необходимой компьютерной техникой.
- Студентам не запрещается также и использование собственной компьютерной техники (по желанию).
- Предоставление видео-журнала работы входит в методические рекомендации по выполнению лабораторных работ.
- Уровень доступа к видеоматериалам (публичный, по ссылке, приватный) студент выставляет сам (что является его личным решением).
- Защита лабораторных работ перед широкой аудиторией не предусматривается.
- Вопросы по выполнению лабораторных работ можно задать как во время аудиторных занятий, так и во время, предложенное преподавателями для консультаций.
4.2 БРС
| Активность | Количество | Баллы за единицу | Общие баллы |
|---|---|---|---|
| А1 (работа 1) | 1 | 16 | 16 |
| А1 (работы 2–8) | 7 | 12 | 84 |
| 100 |
Активности
- А1: Лабораторные работы. Выполнение.
Разделы
- Р1: Основы имитационного моделирования
- Р2: Агентное моделирование
- Р3: Аппарат сетей Петри
- Р4: Дискретно-событийное моделирование
- Темы
- Подготовка стенда
- Основные модели
- Агентное моделирование
- Реализация основных моделей в агентном подходе
- Аппарат сетей Петри
- Реализация основных моделей в подходе сетей Петри
- Дискретно-событийное моделирование
- Реализация основных моделей в дискретно-событийном подходе
5 Используемые библиотеки
5.1 Идеи реализации
- Идея лабораторных почерпнута из репозитория SIR model in Julia.
- Репозиторий: https://github.com/epirecipes/sir-julia
5.2 Аналитические методы
5.2.1 ModelingToolkit
- Репозиторий: https://github.com/SciML/ModelingToolkit.jl
- Документация: https://docs.sciml.ai/ModelingToolkit/stable/
5.2.2 Modia
- Репозиторий: https://github.com/ModiaSim/Modia.jl
- Документация: https://modiasim.github.io/docs/
5.3 Агентный подход
5.3.1 Agents.jl
- Репозиторий: https://github.com/JuliaDynamics/Agents.jl
- Документация: https://juliadynamics.github.io/Agents.jl
5.4 Сети Петри
5.4.1 Petri.jl
- Репозиторий: https://github.com/AlgebraicJulia/Petri.jl
5.4.2 AlgebraicPetri.jl
- Репозиторий: https://github.com/AlgebraicJulia/AlgebraicPetri.jl
- Документация: https://algebraicjulia.github.io/AlgebraicPetri.jl
5.5 Дискретно-событийное моделирование
5.5.1 ConcurrentSim.jl
- Репозиторий: https://github.com/JuliaDynamics/ConcurrentSim.jl
- Документация: https://juliadynamics.github.io/ConcurrentSim.jl
6 Для СЭД
6.1 Подготовка стенда
6.1.1 Подготовка стенда
Знакомство с экосистемой Julia и пакетом DrWatson как основой для воспроизводимых вычислительных экспериментов. Настройка окружения проекта, управление зависимостями, организация директорий и параметризация запусков через конфигурационные файлы YAML. Создание шаблона проекта, который обеспечит единообразную структуру для всех последующих работ с моделями SIR и «хищник-жертва», а также автоматическое сохранение результатов.
6.1.2 Основные модели
Математическая постановка двух классических динамических систем: эпидемиологической модели SIR (Susceptible–Infected–Recovered) и экологической модели Лотки–Вольтерры «хищник-жертва». Для SIR разбираются система нелинейных ОДУ, базовое репродуктивное число R₀, порог эпидемии и аналитическое поведение компонент. Для «хищник-жертва» выводятся уравнения для численности жертв x и хищников y, поясняются фазовые портреты, стационарные точки, колебательный режим и правило Лотки–Вольтерры.
6.2 Агентное моделирование
6.2.1 Агентное моделирование
Введение в парадигму агентного моделирования, где глобальная динамика возникает из локальных правил поведения множества автономных сущностей. Обсуждаются понятия агента, среды, шага модельного времени, синхронного и асинхронного обновления. Рассматриваются примеры клеточных автоматов и базовые принципы реализации агентных моделей в Julia с акцентом на легковесные структуры, планирование событий и сбор статистики.
6.2.2 Реализация основных моделей в агентном подходе
Превращение моделей SIR и «хищник-жертва» в агентные симуляции. Для SIR агенты — индивидуумы с дискретными состояниями, взаимодействие происходит вероятностным заражением в случайно формируемой контактной сети или на решётке. Для «хищник-жертва» агентами становятся особи хищников и жертв на двумерном поле; задаются правила движения, размножения при накоплении энергии и гибели. Анализируются макроскопические кривые, получаемые усреднением по множеству прогонов, и сравниваются с решением ОДУ.
6.3 Аппарат сетей Петри
6.3.1 Аппарат сетей Петри
Формальный аппарат сетей Петри как инструмент моделирования параллельных дискретно-распределённых систем. Изучается структура сети: позиции, переходы, дуги, кратность дуг, маркировка (разметка). Разбирается правило срабатывания перехода, условия возбуждения, свойство живости, ограниченности, достижимости. Обсуждаются расширения классических сетей Петри — ингибиторные дуги, временны́е и стохастические сети Петри, пригодные для моделирования динамических процессов с задержками и вероятностными решениями.
6.3.2 Реализация основных моделей в подходе сетей Петри
Представление эпидемического процесса SIR в виде стохастической сети Петри, где позиции соответствуют численности восприимчивых, инфицированных и выздоровевших, а переходы — заражению и выздоровлению с экспоненциально распределёнными задержками. Модель «хищник-жертва» строится как трофическая сеть Петри: переходы «рождение жертвы», «поедание» (уничтожение жертвы с одновременным порождением хищника) и «естественная смерть хищника». Анализируются динамика маркировки, средние значения и сопоставление с точечными процессами.
6.4 Дискретно-событийное моделирование
6.4.1 Дискретно-событийное моделирование
Принципы дискретно-событийного подхода (DES), в котором состояние системы изменяется лишь в моменты наступления событий, а время между ними не моделируется. Рассматриваются три стратегии продвижения времени: событийная (event-driven), процессно-ориентированная и пошаговая с постоянным шагом. Детально изучаются календарь будущих событий, генерация случайных потоков, очередность одновременных событий и типичные паттерны реализации на Julia: использование priority queue, цикл обработки событий и сбор временных рядов.
6.4.2 Реализация основных моделей в дискретно-событийном подходе
Кодирование SIR и «хищник-жертва» как дискретно-событийных имитаций. В SIR событиями становятся моменты заражения и выздоровления, запланированные по соответствующим интенсивностям перехода, а при модификации следующего события пересчитываются актуальные интенсивности (алгоритм Гиллеспи для химических реакций). В модели «хищник-жертва» события включают размножение жертвы, поедание и смерть хищника; параметры событий зависят от текущих популяций. Проводится верификация полученных траекторий с эталонными ОДУ и обсуждаются стохастические эффекты исчезновения популяций.
7 Литература
- Кутузов О. И., Татарникова Т. М. Моделирование систем. Имитационный метод. 2-е изд. — Лань, 2024.
- Боев В. Д. Имитационное моделирование систем. — Юрайт, 2024.
- Макаров В. Л., Бахтизин А. Р. и др. Агент-ориентированные модели: учебное пособие. — ГАУГН, 2022.
- Питерсон Дж. Теория сетей Петри и моделирование систем. — М.: Мир, 1984
