Перейти к содержимому

Моделирование работы системы с запаздываниями

Кто читал книгу Питера Сенге «Пятая дисциплина», помнит описание пивной игры. Этот фрагмент произвел на меня сильное впечатление. Но вот выводами я остался неудовлетворен. Сенге не говорит, как преодолеть описанную системную проблему. И вот недавно я прочитал книгу Донеллы Х. Медоуз Азбука системного мышления. – М.: БИНОМ. Лаборатория знаний, 2011. – 344 с.

Один из разделов называется «Система с запаздываниями: склад товаров». Я понял, что́ для Сенге явилось прототипом пивной игры… Сюжеты весьма похожи, а первенство, безусловно, принадлежит Медоуз. Заслуга Донеллы также в том, что она предлагает решение для систем с запаздыванием. К сожалению [моему :)], Медоуз, стремясь не перегружать текст, приводит только описание ситуации и графики, а вот формулы, на основе которых она моделировала графики, она приводит в примечаниях. В настоящей заметке сделана попытка объединить лирику (текстовое описание системы) и математику, которая позволяет найти решение проблемы.

Итак, слово Донелле Медоуз…

Скачать заметку в формате Word, модели в формате Excel

Представьте себе склад какой-либо продукции, предназначенной для продажи (например, новые автомобили на стоянке у дилера), с входным потоком в виде поставок машин с автозавода и выходным потоком в виде продаж конечным потребителям. Теперь представьте управляющую систему обратных связей, предназначенную для того, чтобы поддерживать запас на складе достаточно большим — таким, чтобы можно было обеспечить полноценные продажи в течение десяти дней (рис. 1). Дилеру нужен склад, ведь заказы и поставки не могут совпадать день в день. Заранее предсказать желание покупателя приобрести машину в какой-то конкретный день просто невозможно. К тому же дилер должен учитывать вероятность задержек с поставками от производителя по тем или иным причинам, и на такой случай нужно иметь некоторое количество автомашин в качестве «буфера».

Рис. 1. Схема системы с запаздыванием. Запас автомобилей на стоянке у дилера поддерживается постоянным за счет двух конкурирующих циклов балансирующей обратной связи: один отвечает за продажи, другой — за поставки

Милая девушка-менеджер, работающая в дилерской компании, отслеживает продажи (воспринимаемую ею покупательскую активность), и если ей кажется, что продажи растут, то производителю отправляется увеличенный заказ, чтобы привести запас автомобилей к новому желаемому уровню, достаточному для поддержания более активных продаж на протяжении десяти дней. Более высокие фактические продажи означают, что становятся выше ожидаемые продажи, то есть увеличивается разность между имеющимся и желаемым складским запасом. Увеличивается заказ продукции у изготовителя, увеличиваются поставки, увеличивается запас на складе, достаточный, чтобы поддержать более активные продажи.

В этой системе один балансирующий цикл обратной связи [продажи] уменьшает величину запаса, а конкурирующая с ним балансирующая петля [поставки] поддерживает запас на складе за счет восполнения проданных автомобилей новыми. На рис. 2 показано поведение системы в ответ на увеличение покупательской активности на 10%, причем это поведение вполне ожидаемо.

Рис. 2. Запас автомобилей на стоянке у дилера в ответ на возросшие запросы покупателей увеличивается на 10%, начиная с 25-го дня

Используются следующие обозначения:

Количество автомобилей у дилера (t) = количество автомобилей у дилера (tdt) + (доставка от производителя – продажи) * dt

Начальная величина запаса: кол-во автомобилей у дилера = 200

Время t измеряется в днях

Интервал dt= 1 день

Продолжительность расчета = 100 дней

Добавим в нашу простую систему (изображенную на рис. 1) еще один фактор — запаздывание. С этим явлением в реальной жизни сталкивается каждый из нас. Во-первых, существует задержка в восприятии (в данном случае намеренная). Девушка-менеджер не должна реагировать на каждый случайный всплеск продаж. Прежде чем разместить дополнительный заказ у производителя, ей нужно вычислить средние продажи за последние пять дней, чтобы отсечь случайные провалы и всплески продаж и определить реальные тенденции. Во-вторых, существует задержка в отклике. Даже если точно известно, что нужно дополнительно заказать сколько-то машин, менеджер должна разместить это количество не в одном заказе, а в нескольких. Сначала делается заказ, покрывающий примерно треть предполагаемой дополнительной потребности. Потом еще такой же заказ, и еще один. Фактически, такими частичными дозаказами дилер перестраховывается, чтобы в течение дополнительных трех дней убедиться, что тенденция роста действительно есть. В-третьих, существует еще запаздывание поставок. Изготовителю на заводе нужно пять дней, чтобы получить, обработать и выполнить заказ, доставив продукцию дилеру (рис. 3).

Заметим, что на рис. 2 график построен в предположении, что запаздывание восприятия = 0, запаздывание отклика = 0, запаздывание доставки = 0.

Рис. 3. Запас автомобилей на стоянке у дилера изменяется с учетом трех запаздываний, введенных в схему: запаздывание в восприятии, в отклике и в поставках продукции

Система по-прежнему состоит из двух балансирующих циклов обратной связи, но поведение ее будет совершенно иным. На рис. 4 показано, что же произойдет в системе, если в продажах будет наблюдаться такое же увеличение на 10%, как и в предыдущем случае.

Рис. 4. Изменение запаса автомобилей на стоянке у дилера в ответ на 10%-ное увеличение продаж, если в системе присутствуют запаздывания. Запаздывание восприятия = 5 дней, запаздывание отклика = 3, запаздывание доставки = 5

Дополнительные обозначения и формулы (подробнее см. файл Excel):

Входной поток:

доставка от производителя = 20 машин для значений времени от 0 до 5 дней

или

доставка от производителя = величина заказа производителю (t – запаздывание доставки) для значений времени от 6 до 100 дней

Выходной поток:

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

Преобразования:

запросы заказчиков = 20 автомобилей в день для значений времени от 0 до 25 дней или

запросы заказчиков = 22 автомобиля в день для значений времени от 26 до 100 дней

ожидаемые продажи = продажи, усредненные за время запаздывания восприятия (то есть средние продажи за время равное запаздыванию восприятия)

желаемый запас на складе = ожидаемые продажи * 10

разность = желаемый запас на складе количество автомобилей у дилера

величина заказа производителю = ожидаемые продажи + разность / запаздывание отклика или = 0, в зависимости от того, что больше

Колебания! Простой скачок продаж может привести к тому, что в какой-то момент запас станет нулевым — стоянка опустеет. Казалось бы, девушка-менеджер достаточно предусмотрительна и предпринимает действия только тогда, когда убедится в том, что продажи действительно увеличились и это не кратковременный скачок. Она начинает заказывать больше автомобилей, чтобы покрыть текущие (более высокие) потребности продаж и увеличить запас автомобилей на стоянке. Но на размещение и выполнение заказов нужно время. За это время стоянка ощутимо пустеет, поэтому заказы приходится увеличивать еще и еще — без этого не обеспечить запас, достаточный для поддержания продаж в течение 10 дней.

Запаздывание в балансирующем цикле обратной связи приводит систему к колебаниям

Затем заказанные автомобили начинают прибывать к дилеру, запас на стоянке восполняется — и оказывается, что автомобилей даже больше, чем было нужно для простого восполнения склада! Просто за то время, пока сказывалось запаздывание, наша девушка-менеджер успела заказать слишком много. Она осознает свою ошибку и, чтобы исправить ее, сокращает заказы. Но ранее сделанные заказы (большие!) продолжают прибывать, поэтому с каждым днем она вынуждена заказывать все меньше и меньше. На самом деле, теперь она заказывает меньше, чем нужно, поскольку не знает наверняка, как будут разворачиваться события с продажами дальше. Склад снова начинает пустеть. Колебания около новой желаемой величины запаса продолжаются… На рис. 5 показано, что произойдет несколькими циклами позже.

Рис. 5. Отклик заказов и доставок на увеличение запросов покупателей. А. На 25-й день происходит небольшой, но резкий скачок в продажах. Менеджер воспринимает возросшую активность продаж с запаздыванием, поскольку усредняет количество проданных автомобилей за три дня. Б. Кривая заказов (сплошная линия) и отстающая от нее кривая поставок от изготовителя (пунктирная линия)

Чуть позже будет описано несколько способов погасить такие колебания в величине складского запаса, но прежде всего необходимо понять, почему они вообще возникли. Вовсе не потому, что милая девушка-менеджер бестолкова и не умеет работать. Настоящая причина в том, что она вынуждена работать в рамках системы, в которой не хватает оперативной информации (ее и не может быть), к тому же существует физическое запаздывание между действиями, которые предпринимает менеджер, и откликами на них — изменением запаса автомобилей на стоянке. Никто не знает, как поведут себя покупатели в будущем. Если сейчас они покупают, то это совсем не значит, что завтра они будут покупать так же и столько же. Когда наша девушка-менеджер размещает заказ, она не получает немедленного отклика на него. Такие ситуации встречаются очень часто — нехватка оперативной информации в сочетании с физическими запаздываниями. Подобные колебания встречаются и на складах, и во многих других системах. Попробуйте, например, принять душ и точно отрегулировать температуру, если труба от смесителя горячей/холодной воды до душевой насадки будет длинной — и вы на собственном опыте ощутите все «прелести» колебаний, вызванных запаздыванием.

Каким должно быть запаздывание, чтобы вызвать конкретные колебания в конкретных условиях, — вопрос довольно сложный. На том же примере с автомобилями можно показать, почему.

«С этими колебаниями мириться нельзя! — говорит себе наша девушка. Она способна к обучению и хочет найти способ устранить колебания запаса на вверенном ей складе. — Сокращу-ка я запаздывания. Срок поставки от изготовителя я, конечно, изменить не могу, но со своей стороны реагировать буду быстрее. Можно усреднять данные по продажам не за пять, а за два дня, прежде чем принимать решение об изменении заказа».

На рис. 6 показано, что произойдет, если дилер станет воспринимать рост продаж по усреднению за два дня вместо пяти.

Рис. 6. Изменение запаса автомобилей на стоянке у дилера в ответ на то же 10%-ное увеличение продаж, если дилер будет опираться на усреднение за два дня, а не за пять. Запаздывание восприятия = 2, запаздывание отклика = 3, запаздывание доставки = 5 дней

Как видите, даже если наша девушка-менеджер будет реагировать быстрее, ей это не поможет. Наоборот, ситуация с колебаниями в количестве автомобилей на стоянке станет даже хуже (сравните с рис. 4). Если же вместо уменьшения запаздывания в восприятии она решит уменьшить запаздывание в своем отклике (будет распределять дополнительное количество не по трем заказам, а по двум), все станет еще хуже, причем намного — это показано на рис. 7.

Рис. 7. Изменение запаса автомобилей на стоянке у дилера в ответ на то же 10%-ное увеличение продаж, если отклик дилера будет предусматривать распределение дополнительного количества по двум заказам вместо трех. Запаздывание восприятия = 5, запаздывание отклика = 2, запаздывание доставки = 5 дней

В системе что-то надо менять. Поскольку нашей системой управляет сотрудница, способная к обучению, она попытается принять меры. «У меня есть мощный рычаг, но, похоже, что я его применяю не в том направлении», — говорит себе наша девушка, обладающая задатками системного мыслителя, с грустью наблюдая результаты своих попыток погасить колебания в системе. Подобные плачевные результаты, кстати говоря, встречаются буквально всюду: кто-нибудь, руководствуясь лучшими намерениями, пытается стабилизировать систему с помощью интуитивно понятного рычага, и действительно оказывает на систему очень сильное воздействие, но только совсем не в том направлении, в котором нужно! Это лишь один из множества примеров, как системы могут совершенно неожиданно вести себя при попытке их изменить.

В нашем примере одна из проблем состоит в том, что девушка-менеджер реагирует не слишком медленно, как она сама полагает, а наоборот, слишком быстро. При существующей конфигурации системы дилер реагирует слишком активно. Ситуацию можно улучшить, если вместо того, чтобы размещать дополнительные заказы в два приема, менеджер начнет делить их на шесть частей, распределяя дополнительные запросы по шести заказам. Как показывает рис. 8, это изменение позволяет практически полностью погасить колебания, и система довольно быстро приходит к новому равновесию.

Рис. 8. Изменение запаса автомобилей на стоянке у дилера, если размещать дополнительный заказ в шесть приемов. Запаздывание восприятия = 5, запаздывание отклика = 6, запаздывание доставки = 5 дней

Запаздывания и задержки могут очень сильно влиять на системы — во многом они определяют тип поведения систем. Изменение величины запаздывания может привести к очень серьезным изменениям в поведении системы. (А может и не привести — в зависимости от типа запаздывания и его величины относительно других запаздываний.)

В нашей системе самое важное запаздывание находится вне ответственности менеджера — на задержку поставки машин с завода-изготовителя она повлиять не в силах. Но даже если не касаться не подвластной ей части системы, все равно она может научиться хорошо управлять своими складскими запасами.

Изменение запаздываний в системе может сделать управление системой либо гораздо более простой, либо гораздо более сложной задачей. Это объясняет, почему многие системные мыслители буквально одержимы проблемой запаздываний. Приходится всегда отслеживать, где в системе есть запаздывания, какой они продолжительности, каков их характер — физический или информационный. В динамическом поведении системы невозможно разобраться, если не знать, где и какие в ней присутствуют запаздывания. К тому же системщики знают, что некоторые запаздывания можно использовать как мощные рычаги воздействия. Увеличение или уменьшение запаздывания может привести к радикальным изменениям в поведении систем.

Проблемы отдельно взятого склада, по большому счету, решить несложно. Но представьте себе масштабы проблем, если речь пойдет обо всех непроданных автомобилях в пределах США. Заказы на большее или меньшее количество автомобилей повлияют не только на производство на сборочных заводах и фабриках, выпускающих запчасти, но также и на сталелитейные производства, предприятия по выпуску резины, стекол, текстиля. Будут затронуты также поставщики и производители энергии. В рамках всей сложной системы встречаются задержки в восприятии, запаздывания в производстве, доставке, сборке… А теперь подумайте о том, что существует взаимосвязь между производством автомобилей и количеством рабочих мест: чем больше производство, тем больше в нем занято людей, которые затем купят больше машин. Это усиливающий цикл обратной связи, но он может работать и в противоположном направлении: чем меньше производство, тем меньше рабочих мест, тем ниже продажи, и тем меньше в итоге производство. Учтите, что существует еще один усиливающий цикл обратной связи: спекулянты на бирже покупают и перепродают акции автопроизводителей и их поставщиков, основываясь на недавних результатах экономической деятельности этих предприятий, – подъем продаж вызывает рост стоимости акций, в то время как уменьшение продаж приводит к снижению котировок.

Такая очень большая и сложная система связывает между собой различные отрасли промышленности и обладает самыми разными запаздываниями; в ее разных частях могут возникать колебания, они могут распространяться на другие части, усиливаясь в результате действий спекулянтов и из-за других факторов… Так возникает экономическая цикличность с ее взлетами и падениями. Экономические подъемы и спады происходят не по воле президентов и правителей (хотя, конечно, их действия могут увеличить оптимизм во времена подъемов или углубить пессимизм во времена спадов). Экономические системы чрезвычайно сложны; в них огромное количество балансирующих циклов обратной связи с запаздываниями, поэтому им изначально присуща склонность к колебаниям.

3 комментария для “Моделирование работы системы с запаздываниями”

  1. Спасибо за статью. Не понял про автодилеров — математически доказалось, что их деятельность невозможна?

  2. Возможно Вас заинтересует книга «Изучение производственной системы Тойоты с точки зрения организации производства»

  3. Дмитрий Харланов

    Такое решение, как описано в статье, на самом деле не решает проблему эффекта кнута в логистических цепях с большим количеством посредников. Решать проблему колебаний спроса надо методами ПРОГНОЗИРОВАНИЯ СПРОСА. Например, вышеописанная девушка могла бы рассчитывать индекс относительной силы (RSI), чтобы предвидеть, будет ли спрос в следующем месяце расти или снижаться. Я делал такие расчеты с целью прогнозирования динамики поступающих заказов для одного приборостроительного завода, индекс RSI давал правильный сигнал на рост/спад заказов примерно в 80 % случаев.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *