Как задержки раскачивают системы: пример с запасом автомобилей

Автор разбирает главу о задержках из книги Донеллы Медоуз Thinking in Systems и строит собственную симуляцию на Elm. В примере менеджер автодилера стремится держать на стоянке запас, равный продажам за день, умноженным на 10. Спрос сначала составляет 20 автомобилей в день, затем поднимается до 22, а в один день происходит всплеск до 70. Продажи в модели равны минимуму из спроса и наличного запаса; во всех показанных сценариях автомобилей хватает.

Без задержек менеджер в конце дня видит продажи, заказывает недостающее количество, а машины прибывают на следующее утро. Такая схема мгновенно реагирует на разовый скачок спроса: после него она может заказать 550 автомобилей вместо обычных примерно 20, а излишек будет долго распродаваться.

Затем автор вводит две задержки. Первая, поставка занимает пять дней. Вторая, реакция на расхождение между текущим и желаемым запасом: при делителе 2 менеджер заказывает только половину недостачи. Сочетание этих параметров приводит к незатухающим колебаниям: пока первые заказы ещё едут, менеджер продолжает заказывать; когда поставки начинают приходить, запас становится чрезмерным, заказы прекращаются, а затем продажи вновь создают дефицит и цикл повторяется.

Попытка реагировать быстрее при тех же пяти днях поставки, но с делителем 1, делает результат ещё хуже. Запас колеблется от 132 до 518 автомобилей при желаемом уровне около 220, а после всплеска на площадке одновременно оказывается до 1160 машин. В симуляции более терпеливая политика с делителем 6 гасит колебания и стабилизирует запас. Вывод автора: задержку нельзя автоматически считать вредной или всегда сокращать; параметры конкретной системы нужно моделировать и проверять данными, а не интуицией.

Ключевые факты

  • Модель поддерживает желаемый запас автомобилей на уровне дневных продаж, умноженных на 10.
  • Спрос меняется с 20 до 22 автомобилей в день и включает однодневный всплеск до 70.
  • При пятидневной поставке и реакции на половину недостачи запас начинает колебаться и не стабилизируется.
  • При немедленном закрытии недостачи запас в примере колеблется от 132 до 518 автомобилей, а после всплеска достигает 1160 машин на площадке.
  • При той же задержке поставки и более медленной реакции, одной шестой недостачи, колебания в симуляции затухают.

Почему это важно

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

Кому это важно

Руководителям и разработчикам, которые управляют запасами, поставками или другими процессами с отложенным результатом. Материал также полезен тем, кто изучает системное мышление и динамические модели.

Как это применить

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

Можно ли доверять

Это учебная модель автора, а не универсальный рецепт: он прямо называет расчёт желаемого запаса упрощённым. Исходные правила симуляции и числа приведены в тексте, а код игрушечного симулятора, по словам автора, опубликован на GitHub.

Риски и подводные камни

Нельзя переносить конкретный делитель 6 на другую систему без проверки: в модели не учитывается, например, усреднение продаж за прошлые дни, которое само добавило бы задержку. Автор также не выводит математическое доказательство неизбежности колебаний для выбранных параметров.

«Сделайте модель своей системы, попробуйте разные параметры, посмотрите, как она себя ведёт.»

— Автор блога