В этой статье вы узнаете, что такое seed в DES-симуляции, почему его нужно фиксировать для честного сравнения прогонов и гипотез, а также как читать дельты результатов в списке симуляций. Вы научитесь настраивать воспроизводимость расчёта и интерпретировать изменения метрик между версиями процесса.

Дискретно-событийная симуляция (DES) использует случайные числа для моделирования потока заявок, длительностей задач и других переменных. Seed — это начальное значение генератора случайных чисел. Если seed не задан, каждый запуск симуляции будет давать немного разные результаты из-за случайности. Чтобы сравнить два прогона честно (например, исходную модель и гипотезу с изменёнными параметрами), нужно использовать одинаковый seed. Тогда разница в результатах будет отражать только изменения в модели, а не случайные колебания.

## Где находится настройка seed

Seed настраивается в разделе **«Расширенные настройки»** на экране настройки симуляции (шаг 2, после создания).

1. Откройте симуляцию в режиме редактирования.
2. В левой панели **«Настройка симуляции»** найдите секцию **«Расширенные настройки»** (подпись: «Воспроизводимость результатов»).
3. В поле **«Seed генератора»** введите число или нажмите кнопку **«Сгенерировать seed»**, чтобы система предложила случайное значение.

Если поле пустое, каждый запуск будет случайным. Если seed задан, повторный прогон с теми же настройками даст идентичный результат.

![Секция «Расширенные настройки» с полем «Seed генератора» и кнопками «Сгенерировать seed» / «Сбросить seed»](https://helpdesk.stormbpmn.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdXd0IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--5a0759624ae4e2c83032e2a491202fc71cc21907/seed_settings_panel-e7515b549281e280.png)

## Как фиксировать seed для сравнения

Чтобы сравнить исходный прогон и гипотезу, выполните следующие шаги:

1. Запустите исходную симуляцию с заданным seed (например, 42).
2. Дождитесь завершения расчёта и откройте отчёт.
3. Нажмите кнопку **«Проверить гипотезу»** в шапке отчёта.
4. В диалоге **«Новая гипотеза»** создайте копию симуляции. Система скопирует все настройки, включая seed.
5. Измените только те параметры, которые хотите проверить (например, добавьте ресурс или измените длительность задачи).
6. Убедитесь, что seed в новой симуляции остался тем же (42).
7. Запустите симуляцию.

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

## Как читать дельты в списке симуляций

В списке симуляций (`/app/simulations`) гипотезы отображаются ветками под исходным прогоном. В строке каждой гипотезы показаны метрики **«Здоровье»**, **«Стоимость кейса»**, **«SLA»** и дельта к исходному прогону.

Подпись дельты: **«Изменение относительно исходного прогона»**. Изменения меньше 0,05 % не отображаются, чтобы не засорять список незначительными колебаниями.

Например, если в исходном прогоне «Здоровье» было 78, а в гипотезе — 82, дельта покажет «+4». Если «Стоимость кейса» снизилась с 1 200 ₽ до 1 100 ₽, дельта будет «−100 ₽».

![Строка гипотезы в списке симуляций с дельтами «Здоровье», «Стоимость кейса», «SLA»](https://helpdesk.stormbpmn.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdTB0IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--82ff8e4bd9d8e6eb117b1ed669fe58323bc2e8c7/hypothesis_delta_row-d9bcbd9d87fe6ddb.png)

## Почему важно фиксировать seed

Если seed не задан или отличается между прогонами, разница в результатах может быть вызвана случайностью, а не изменениями в модели. Например, при одном seed время цикла может составить 4,2 часа, а при другом — 4,5 часа, даже если модель не менялась. Это затрудняет оценку реального эффекта от изменений.

Фиксация seed позволяет:

* Сравнить два прогона при одинаковых условиях случайности.
* Убедиться, что изменение метрик вызвано именно изменением параметров модели.
* Воспроизвести результат: если вы запустите симуляцию с тем же seed и теми же настройками, получите идентичный отчёт.

## Частые вопросы

**В: Можно ли сравнить прогоны с разными seed?**\
О: Нет. Разница в результатах будет включать случайные колебания, и вы не сможете точно оценить эффект от изменений. Всегда используйте одинаковый seed для сравнения.

**В: Что делать, если я забыл задать seed перед запуском?**\
О: Запустите симуляцию заново с заданным seed. Кнопка **«Перезапустить»** создаст копию с теми же настройками, но вы сможете изменить seed перед запуском.

**В: Как понять, что дельта в списке — это реальный эффект, а не случайность?**\
О: Если seed одинаков, дельта отражает только изменения в модели. Если seed не задан, дельта может быть случайной. Всегда фиксируйте seed перед сравнением.

## Частые формулировки

«seed», «воспроизводимость», «сравнение прогонов», «дельта результатов», «как сравнить две симуляции», «почему результаты разные при одинаковых настройках», «как зафиксировать случайность в симуляции», «seed в des-симуляции storm bpmn».
