← Неделя 12

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

Умное саммари · симуляция

Не трогаем мир. Сначала строим модель.

Симуляция нужна, когда прямой эксперимент дорог, опасен, медленен или просто невозможен. Мы оставляем в модели только то, что важно для вопроса, добавляем случайность и смотрим, что получится.

Реальность
→
Модель
→
Много запусков
→
Данные
→
Решение

Когда особенно полезно?

Очереди, больницы, транспорт, ресурсы, редкие события, много сценариев и цена реального эксперимента.

Модель — не копия мира

Она должна быть достаточно хороша для конкретного исследовательского вопроса. Цвет стен можно забыть, если изучаем ожидание в очереди.

Главная ловушка. Красивый виртуальный мир не становится правдой автоматически. Сначала вопрос, потом модель, потом проверка.

Зачем симулировать больницу, а не перестраивать её десять раз?

Чтобы безопасно и дешево сравнивать what-if сценарии до реальных вмешательств.

Что значит «полезная модель»?

Она сохраняет те свойства системы, которые нужны для ответа на наш вопрос, и честно описывает упрощения.
Если модель туалета требует точного цвета кафеля, а вопрос про очередь, возможно, кафель уже победил исследование. 🙂
Лист 1 / 6 · Неделя 12

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

Monte Carlo · закон больших чисел

Один запуск — история. Тысячи — картина.

Monte Carlo повторяет случайный эксперимент много раз. Частота события оценивает вероятность, а среднее по прогонам — средний случайный результат.

Кубик

Для честного кубика P(3)=1/6. При 10 бросках доля троек может гулять, при 1000 — обычно становится устойчивее.

Игла Бюффона

Доля пересечений линий позволяет оценивать π. Это исторический предшественник идеи Monte Carlo.

Бабушка Маша

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

Больше прогонов ≠ правильная модель. Повторения уменьшают случайный шум, но не исправляют неверные предположения.
Что стабилизируется?Доли, средние, распределения, p95 и другие оценки.
Что не исчезает?Неопределённость модели, ошибки кода, плохие данные и неверная метрика.

Почему один удачный виртуальный день не доказывает, что политика хорошая?

Потому что это один случайный исход. Нужно сравнивать распределение результатов по многим дням.

Что даёт закон больших чисел на практическом уровне?

При накоплении независимых повторений средние и доли обычно становятся устойчивее.
Лист 2 / 6 · Неделя 12

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

Три лица симуляции

Статическая, динамическая и agent-based.

🎲

Статическая

Повторяем эксперимент. Время как отдельный механизм не обязательно моделируется.

Примеры: кубик, Бюффон, овербукинг.

⏱

Динамическая

Система живёт во времени: приход → ожидание → ресурс → выход.

Пример: очередь к четырём кабинкам.

🚗

Agent-Based

Отдельные агенты действуют по локальным правилам.

Пример: NetLogo Traffic Basic.

В Traffic Basic нет команды «создай пробку». Машины ускоряются, когда свободно, и тормозят рядом с соседом. Из этих простых реакций возникает сложное коллективное поведение.

Emergent behavior. Глобальная картина может возникнуть из множества простых локальных правил. Поэтому модель иногда объясняет то, что трудно увидеть в одной формуле.

Может ли появиться пробка без аварии?

Да. Волна торможений может возникнуть из локальных реакций машин и распространяться по потоку.

К какому типу относится проект с четырьмя кабинками?

К динамической событийной симуляции: важен порядок приходов, ожидания, освобождения ресурсов и обслуживания.
Лист 3 / 6 · Неделя 12

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

Главный проект · четыре кабинки

Сначала данные. Потом виртуальный туалет.

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

Вход моделиБазовая оценкаСмысл
λ мужчин23.17 / часотдельный пуассоновский поток
λ женщин33.56 / часотдельный пуассоновский поток
λ доступной потребности3.56 / часотдельный пуассоновский поток
Среднее обслуживание M / W / A76.4 / 108.7 / 169.9 секэкспоненциальные времена в учебной модели

A / B

Жёсткое разделение: женские, мужские и отдельная доступная кабинка. Разный баланс кабинок.

C / D

Три универсальные + доступная. В D доступная A+ гибкая, но посетитель с соответствующей потребностью имеет приоритет.

E

Четыре универсальные кабинки. Максимум гибкости, но fairness надо проверять по метрикам.

Пуассон и экспонента — гипотезы модели. Их не назначают «указом преподавателя»: сначала смотрят данные, оценивают параметры и проверяют разумность предположений.

Метрики: avg_wait, ожидание по группам, p95, max_queue, share_wait_over5, utilization. Одного среднего недостаточно.

Почему p95 полезен вместе со средним?

Среднее может скрыть редкие длинные ожидания. p95 показывает хвост: примерно 95% посетителей ждут не дольше этого значения.

Что означает λ=30 человек/час?

В среднем 30 приходов в час, а не ровно один каждые две минуты. Конкретные интервалы между приходами случайны.
Лист 4 / 6 · Неделя 12

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

Симуляция → CSV → Orange

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

Один виртуальный день становится одной строкой таблицы. После сотен и тысяч запусков обычные инструменты анализа данных снова становятся полезными.

параметры + policy → виртуальные дни → CSV → Orange → EDA → модели → вывод
В OrangeВопрос
Box PlotКакие политики дают меньше ожидание и насколько велик разброс?
Scatter PlotКак нагрузка связана с ожиданием и меняется ли картина по policy?
Linear RegressionКакие входные параметры двигают avg_wait или p95?
Logistic RegressionПри каких входах день становится critical_queue?
Data leakage. Если target critical_queue определён через p95, нельзя давать p95 в features. Используйте только то, что известно до получения результата: policy, λ и service times.

What-if analysis: меняем один или несколько параметров по плану и спрашиваем не «что случилось сегодня?», а «как система ведёт себя во множестве сценариев?».

Зачем анализировать данные, которые мы сами сгенерировали?

Чтобы увидеть закономерности в большом пространстве сценариев и понять, какие входы и политики действительно связаны с результатом.

Что является одной строкой основного CSV?

Один виртуальный день/сценарий при заданной политике и наборе входных параметров, вместе с полученными метриками.
Лист 5 / 6 · Неделя 12

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

Verification · Validation · финал

Миллион запусков неправильной модели даёт уверенно неправильный ответ.

Verification

Правильно ли запрограммировали то, что задумали?

Нет двойной занятости, приоритет работает, состояния очереди и кабинок согласованы.

Validation

Достаточно ли модель похожа на реальный процесс для нашего вопроса?

Параметры, распределения и ключевые характеристики сравниваются с наблюдениями и крайними случаями.

Стоп, проверяем! Проверьте код, края, входные данные, число повторов и метрику успеха. Красивая анимация — ещё не аргумент.

ИИ помогает

Прототип кода, гипотезы, идеи метрик, объяснение результатов, черновик статьи.

Человек проверяет

Предположения, данные, код, статистику, интерпретацию и границы применимости.

Формула урока

Статистика + симуляция + анализ данных → осмысленное решение.

Можно ли написать «политика D лучшая всегда»?

Нет. Корректно: «в нашей модели, при таких параметрах и выбранных метриках, D показывает такой-то результат».

Что студент должен унести с урока?

Модель — упрощение; симуляция — эксперимент над моделью; повторения дают устойчивые оценки; данные нужны до и после симуляции; выводы требуют verification, validation и честных ограничений.
Если симулятор выдал ответ с шестью знаками после запятой, это ещё не значит, что реальность подписала договор с шестым знаком. 🙂
Лист 6 / 6 · Неделя 12