Результат: ученик проектирует дискретную систему как последовательность состояний, реализует точный переход current → next, проводит воспроизводимые серии и отделяет свойства модели от артефактов алгоритма и экспериментального протокола.
Содержание:
-
Определить назначение модели
- реальная или абстрактная система;
- вопрос, на который должна ответить симуляция;
- уровень детализации;
- предположения и упрощения;
- измеряемые выходные показатели;
- условия применимости вывода.
-
Задать параметры и состояние
- неизменяемые параметры прогона;
- изменяемое состояние;
- внешние воздействия;
- счётчик шага;
- массивы и структуры;
- история, если она действительно нужна;
- допустимые диапазоны всех компонентов.
-
Определить начальные условия
- полное состояние перед первым шагом;
- проверка согласованности;
- фиксированные и случайные начальные данные;
seedкак часть конфигурации;- воспроизводимое создание исходной траектории.
-
Формализовать один дискретный шаг
- точный порядок событий;
- чтение только состояния
current; - вычисление состояния
next; - отдельные локальные величины перехода;
- одновременные обновления через новый буфер;
- отказ от преждевременной записи, меняющей семантику модели.
-
Проектировать управляющий цикл
- условие продолжения;
- естественные исходы;
MaxStepsкак отдельный защитный предел;- различие завершившегося и цензурированного прогона;
- накопление метрик;
- сохранение конечного состояния.
-
Формулировать инварианты
- баланс ресурса;
- сохранение числа объектов;
- диапазоны;
- взаимоисключительные режимы;
- согласованность связанных массивов;
- монотонная величина;
- проверка после каждого шага.
-
Реализовывать типовые модели
- ресурсный баланс;
- система с гистерезисом;
- очередь и обслуживание;
- распределение объектов по ячейкам;
- конечный автомат;
- клеточная модель;
- случайное блуждание;
- аварийная система с несколькими режимами.
-
Отделять модель от внешней среды
- чистый метод шага;
- отдельный управляющий метод прогона;
- консоль и файлы только на внешней границе;
Randomкак явный параметр;- входная конфигурация;
- форматирование трассы и отчёта.
-
Проверять малую траекторию вручную
- малое число шагов;
- таблица
current / воздействие / next; - независимый баланс;
- сопоставление ручной и программной трассы;
- первое расхождение как объект отладки.
-
Проверять остановку и исходы
- достижимость каждого естественного исхода;
- невзаимоисключительные условия;
- приоритет проверок;
- цикл состояний;
- достижение
MaxSteps; - недопустимость включения цензурированных прогонов в статистику завершения без отдельной политики.
-
Проводить воспроизводимую серию
- фиксированные параметры;
- список
seed; - одинаковые внешние сценарии;
- число прогонов;
- распределение исходов;
- среднее, медиана и разброс;
- доля цензурированных траекторий.
-
Исследовать чувствительность
- изменение одного параметра за раз;
- базовый сценарий;
- несколько уровней параметра;
- устойчивость направления эффекта;
- взаимодействие двух параметров;
- ограниченность однофакторного вывода.
-
Исследовать размер дискретного шага
- одна и та же система при разных шагах;
- изменение числовой ошибки;
- изменение порядка событий;
- сходимость наблюдаемого показателя;
- артефакт слишком крупного шага;
- цена более мелкого шага.
-
Отделять модель от реализации случайности
- заранее сгенерированные воздействия;
- одинаковые сценарии для сравниваемых политик;
- порядок вызовов генератора;
- смещение из-за досрочной остановки;
- независимые потоки либо общие сценарии;
- отсутствие вывода о модели из одного
seed.
-
Подтверждать вывод независимо
- аналитический баланс;
- точный перебор малого пространства;
- вторая реализация перехода;
- другая структура данных;
- отдельный набор параметров;
- сравнение с предельным или упрощённым случаем.
-
Оформлять технический отчёт
- спецификация и предположения;
- состояние и правило перехода;
- инварианты и условия остановки;
- методика проверки;
- экспериментальный протокол;
- результаты и разброс;
- подтверждённые выводы;
- цензурированные данные и известные ограничения.

