Монте-Карло: симуляция сроков

Метод Монте-Карло отвечает на вопрос не «когда закончим», а «с какой вероятностью закончим к такой-то дате». Вместо одной цифры он даёт распределение возможных исходов.

Зачем симуляция, а не одна формула

PERT даёт точечную оценку и нормальное приближение. Но у него две слепые зоны:

  • Реальные длительности перекошены: задача чаще затягивается, чем завершается досрочно. Симметричная нормальная кривая это не отражает.
  • При слиянии путей в сети срок = максимум из сходящихся веток. А максимум почти всегда больше среднего каждой ветки — возникает систематическое смещение (merge bias), которое аналитическая формула недооценивает.

Симуляция ловит и то, и другое, потому что честно «проигрывает» сеть много раз.

Как это работает

Одна симуляция — это один «прогон» всего проекта:

  1. Каждой задаче назначается случайная длительность из её распределения (треугольного, построенного по оценкам O / M / P).
  2. По сети считается срок всего проекта в этом прогоне.
  3. Шаги 1–2 повторяются тысячи раз.

Из полученного распределения сроков берутся перцентили. В Такте это 5000 прогонов по сети с треугольным сэмплированием и воспроизводимым генератором случайных чисел (один и тот же вход даёт один и тот же результат).

P50 / P85 / P95

Перцентиль — это срок, в который уложилась заданная доля прогонов:

  • P50 — медиана: половина исходов быстрее, половина дольше.
  • P85 — срок, в который уложились 85 из 100 прогонов. Это оценка для обещаний наружу.
  • P95 — почти гарантия.
 частота
   █
   ██
   ████        P50      P85   P95
   ██████       │        │     │
   ─────────────┴────────┴─────┴──►  дней

Распределение перекошено вправо: «хвост» долгих исходов длиннее, поэтому P85 заметно правее P50 — и это честнее, чем брать среднее.

Наивный vs сетевой MC

Такт считает две симуляции и показывает их рядом:

  • Наивный MC — гоняет по дневной пропускной способности (throughput) команды, без учёта зависимостей. Быстро, но игнорирует структуру работы.
  • Сетевой MC — гоняет по графу зависимостей (той же сети, что и CPM).

Сравнение «наивный vs сетевой» — не украшение, а готовый исследовательский вопрос: даёт ли учёт зависимостей более точный прогноз. Ответ на него проверяется калибровкой.

Где увидеть

Метрики «Симуляция» и «Наивный MC» на карточке сетевого прогноза; отдельная карточка «Monte Carlo» в аналитике — с гистограммой распределения и режимом «что-если» (можно подставить свои вводные и посмотреть сценарий).

Карточка «Monte Carlo» в аналитике: перцентили и распределение исходов.