← На главную

delay не включен, но это не название, а термин, можно было перевести. Так что это ок. Итоговый ответ: Monte Carlo-симулятор на Elm: искусственная задержка спасает автодилераMonte Carlo-симулятор на Elm: искусственная задержка спасает автодилера

26.07.2026 00:37 · hackernews

_1Автор блога, разбиравший книгу «Thinking in Systems» Донеллы Медоуз, наткнулся на контринтуитивное поведение задержек и написал Monte Carlo симулятор на Elm, чтобы проверить классический пример с менеджером автосалона. Менеджер держит на площадке запас машин, равный продажам за день, умноженным на 10. Продажи стартуют с 20 штук в день, позже вырастают до 22 и дают однодневный всплеск в 70 машин. В идеальном мире без задержек система мгновенно восполняет любую нехватку, но заказывает дико много на пике — 550 машин при норме около 20 — что нереалистично.

Реальность добавляет две задержки. delivery delay — 5 дней от отправки заказа до прибытия машин. response delay — менеджер реагирует не на весь дефицит сразу, а делит его на коэффициент; при делителе 2 и нехватке 30 машин он закажет только 15. Казалось бы, это разумно: система не дёргается из-за случайных всплесков. Но вместе эти две задержки ломают картину. Возникают незатухающие осцилляции: менеджер заказывает всё больше и больше, пока первые машины ещё в пути, а когда они приходят, склад переполнен, и он перестаёт заказывать вовсе, после чего с новыми продажами дефицит возвращается — и цикл повторяется.

Можно подумать, что решение — ускорить реакцию, убрав response delay (делитель 1). Хуже: запасы теперь скачут ещё сильнее, взлетая со 132 до 518 машин, при том что желаемый уровень около 220, а после всплеска на площадку приходится ставить 1160 машин. Это хуже, чем вообще без задержек. Тогда автор попробовал, наоборот, замедлить реакцию и выставил делитель 6: если в конце дня не хватает 30 машин, заказывается только 5. При delivery delay в 5 дней осцилляции затухли, и система стабилизировалась.

Вывод оказался неожиданным: задержки не всегда надо сокращать. В этой модели искусственное удлинение response delay сделало систему предсказуемой и менее расточительной. Медоуз подчёркивает, что короткие обратные связи — не универсальное правило, и призывает моделировать конкретную систему, пробовать разные параметры и опираться на данные, а не на интуицию. Поиграться с параметрами можно в симуляторе на Elm, код выложен на GitHub.

Читать оригинал →