Результат: ученик проектирует дискретную систему как последовательность состояний, реализует точный переход current → next, проводит воспроизводимые серии и отделяет свойства модели от артефактов алгоритма и экспериментального протокола.

Содержание:

  1. Определить назначение модели

    • реальная или абстрактная система;
    • вопрос, на который должна ответить симуляция;
    • уровень детализации;
    • предположения и упрощения;
    • измеряемые выходные показатели;
    • условия применимости вывода.
  2. Задать параметры и состояние

    • неизменяемые параметры прогона;
    • изменяемое состояние;
    • внешние воздействия;
    • счётчик шага;
    • массивы и структуры;
    • история, если она действительно нужна;
    • допустимые диапазоны всех компонентов.
  3. Определить начальные условия

    • полное состояние перед первым шагом;
    • проверка согласованности;
    • фиксированные и случайные начальные данные;
    • seed как часть конфигурации;
    • воспроизводимое создание исходной траектории.
  4. Формализовать один дискретный шаг

    • точный порядок событий;
    • чтение только состояния current;
    • вычисление состояния next;
    • отдельные локальные величины перехода;
    • одновременные обновления через новый буфер;
    • отказ от преждевременной записи, меняющей семантику модели.
  5. Проектировать управляющий цикл

    • условие продолжения;
    • естественные исходы;
    • MaxSteps как отдельный защитный предел;
    • различие завершившегося и цензурированного прогона;
    • накопление метрик;
    • сохранение конечного состояния.
  6. Формулировать инварианты

    • баланс ресурса;
    • сохранение числа объектов;
    • диапазоны;
    • взаимоисключительные режимы;
    • согласованность связанных массивов;
    • монотонная величина;
    • проверка после каждого шага.
  7. Реализовывать типовые модели

    • ресурсный баланс;
    • система с гистерезисом;
    • очередь и обслуживание;
    • распределение объектов по ячейкам;
    • конечный автомат;
    • клеточная модель;
    • случайное блуждание;
    • аварийная система с несколькими режимами.
  8. Отделять модель от внешней среды

    • чистый метод шага;
    • отдельный управляющий метод прогона;
    • консоль и файлы только на внешней границе;
    • Random как явный параметр;
    • входная конфигурация;
    • форматирование трассы и отчёта.
  9. Проверять малую траекторию вручную

    • малое число шагов;
    • таблица current / воздействие / next;
    • независимый баланс;
    • сопоставление ручной и программной трассы;
    • первое расхождение как объект отладки.
  10. Проверять остановку и исходы

    • достижимость каждого естественного исхода;
    • невзаимоисключительные условия;
    • приоритет проверок;
    • цикл состояний;
    • достижение MaxSteps;
    • недопустимость включения цензурированных прогонов в статистику завершения без отдельной политики.
  11. Проводить воспроизводимую серию

    • фиксированные параметры;
    • список seed;
    • одинаковые внешние сценарии;
    • число прогонов;
    • распределение исходов;
    • среднее, медиана и разброс;
    • доля цензурированных траекторий.
  12. Исследовать чувствительность

    • изменение одного параметра за раз;
    • базовый сценарий;
    • несколько уровней параметра;
    • устойчивость направления эффекта;
    • взаимодействие двух параметров;
    • ограниченность однофакторного вывода.
  13. Исследовать размер дискретного шага

    • одна и та же система при разных шагах;
    • изменение числовой ошибки;
    • изменение порядка событий;
    • сходимость наблюдаемого показателя;
    • артефакт слишком крупного шага;
    • цена более мелкого шага.
  14. Отделять модель от реализации случайности

    • заранее сгенерированные воздействия;
    • одинаковые сценарии для сравниваемых политик;
    • порядок вызовов генератора;
    • смещение из-за досрочной остановки;
    • независимые потоки либо общие сценарии;
    • отсутствие вывода о модели из одного seed.
  15. Подтверждать вывод независимо

    • аналитический баланс;
    • точный перебор малого пространства;
    • вторая реализация перехода;
    • другая структура данных;
    • отдельный набор параметров;
    • сравнение с предельным или упрощённым случаем.
  16. Оформлять технический отчёт

    • спецификация и предположения;
    • состояние и правило перехода;
    • инварианты и условия остановки;
    • методика проверки;
    • экспериментальный протокол;
    • результаты и разброс;
    • подтверждённые выводы;
    • цензурированные данные и известные ограничения.