Работа с неопределённым будущим
The future is uncertain. Yet, nearly all predictive supply chain solutions make the opposite assumption: they assume that their forecasts are correct, and hence roll out their simulations based on those forecasts. Implicitly, the future is assumed to be certain and complications ensue.
С исторической точки зрения, программисты не делали эти предположения без причины: детерминированное будущее было единственным вариантом, который могли обрабатывать первые - а также не первые - компьютеры. Таким образом, хотя неопределенное будущее считалось наилучшим подходом в теории, на практике это даже не было вариантом.
Кроме того, в начале 20-го века были разработаны несколько математических трюков, чтобы обойти эту проблему. Например, классический анализ страхового запаса предполагает, что и сроки поставки и спрос подчиняются закономерности нормального распределения. Предположение о нормальном распределении удобно с точки зрения вычислений, поскольку для моделирования будущего достаточно двух переменных: среднего значения и дисперсии.
И снова предположение о нормальном распределении — как для сроков поставки, так и для спроса — оказалось неверным практически во всех ситуациях, за исключением немногих, и появились осложнения.
Еще в 2012 году в Lokad мы поняли, что классический подход к прогнозированию запасов просто не работает: средние или медианные прогнозы не решали настоящую проблему. Независимо от того, сколько технологий мы задействовали, это не могло работать удовлетворительно.
Таким образом, мы перешли к квантильным прогнозам, которые можно интерпретировать как прогнозирование будущего с преднамеренным уклоном. Вскоре мы поняли, что квантильные прогнозы неизменно превосходят классический анализ страхового запаса, если не потому, что они фокусируются на том, что действительно имеет значение с точки зрения управления цепочками поставок.
Однако, выбирая путь квантильных прогнозов, мы поняли, что в процессе утратили немало вещей. Действительно, в отличие от классических средних прогнозов, квантильные прогнозы не являются аддитивными, поэтому, например, сложно осмыслить сумму этих квантилей. На практике потери оказались не столь значительными, поскольку классические прогнозы и так не имели большого смысла, а их суммирование не являлось разумным вариантом.
Со временем, работая с квантилями, мы поняли, что многие вещи, которые мы принимали как должное, стали намного более сложными: объемы спроса больше нельзя было суммировать, вычитать или корректировать линейно. Короче говоря, двигаясь к неопределенному будущему, мы утратили инструменты для работы с этим неопределенным будущим.
В 2015 году мы представили квантильные сетки. Хотя квантильные сетки еще не были идентичны полнофункциональным вероятностным прогнозам, наш прогнозный движок уже начинал выдавать вероятности вместо квантильных оценок. Распределения вероятностей гораздо выразительнее простых квантильных оценок, и, как оказалось, можно определить алгебру над распределениями.
Хотя термин алгебра может звучать технически, это не так сложно; это означает, что простые операции, такие как сумма, произведение, разность, …, могут быть определены таким образом, который не только математически логичен, но и чрезвычайно важен с точки зрения управления цепочками поставок.
В результате, всего несколько недель назад, мы интегрировали алгебру распределений прямо в Envision, наш язык, специфичный для оптимизации торговли. Благодаря этой алгебре распределений становится простым выполнение_seemingly_ простых операций, таких как суммирование двух неопределенных сроков поставки (скажем, неопределенный срок производства плюс неопределенный срок транспортировки). Суммирование этих двух сроков поставки осуществляется посредством операции, известной как свертка. Хотя сам расчет достаточно технический, в Envision достаточно написать A = B +* C
, где +*
— оператор свертки, используемый для суммирования независимых случайных величин (*).
Благодаря этой алгебре распределений большинство «интуитивных» операций, возможных с классическими прогнозами, возвращаются: случайные величины можно суммировать, умножать, растягивать, возводить в степень и т.д. И хотя за кулисами выполняются относительно сложные вычисления, вероятностные формулы не сложнее обычных формул Excel с точки зрения Envision.
Вместо того чтобы желать, чтобы прогнозы были идеальными, эта алгебра распределений позволяет нам принимать неопределенное будущее: сроки поставки от поставщиков могут варьироваться, объемы поставок могут отличаться от заказанных, спрос потребителей изменяется, товары возвращаются, инвентаризация может быть утрачена или повреждена … Благодаря этой алгебре распределений становится намного проще моделировать большинство таких неопределенных событий с минимальными усилиями по программированию.
Внутри системы обработка распределений довольно ресурсоемка; и, опять же, мы никогда не осмелились бы войти в эти области без платформы облачных вычислений, способной справляться с такого рода нагрузками - в нашем случае Microsoft Azure. Тем не менее, вычислительные ресурсы никогда не были дешевле, и следующий заказ вашей компании на $100k, вероятно, стоит потратить несколько часов работы процессора - менее чем за $1 и выполненные всего за несколько минут - чтобы убедиться, что заказываемые объемы обоснованы.
(*) Случайная величина — это распределение, сумма масс которого равна 1. Это особый тип распределения. Envision может обрабатывать распределения вероятностей (так называемые случайные величины), а также более общие распределения.