Порядок свертки (и применение ее к цепи поставок)

Порядок свертки












Главная » Ресурсы » Здесь
Жоаннес Верморель, июль 2016 г.

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

Принцип работы

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

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

Например, если розничные продавцы знают, что все промоакции приводят к 100-процентному росту продаж, то для корректировки классического прогноза спроса (который не учитывает промоакции) требуется лишь умножить исходные показатели на 2. При работе с вероятностными прогнозами (которые тоже игнорируют промоакции) невозможно просто умножить показатели на 2, потому что сумма показателей должна быть равна 1, и она отражает сумму вероятностей.

Формальное определение

В математике порядок свертки представляет собой $n$-кратный повтор самой свертки. Таким образом, если $x$ — это функция $\mathbb{Z} \to \mathbb{R}$ и если $n$ — неотрицательное целое число, то порядок свертки определяется следующим образом: $$ x^{*n} = \underbrace{x * x * x * \cdots * x * x}_n,\quad x^{*0}=\delta_0 $$ Где $*$ задает операцию свертки, а $δ_0$ — распределение дельта-функции Дирака. Переменная $n$ является _показателем степени_.

Если $x$ — плотность вероятности дискретной случайной переменной $X$ при $x(k)=\mathbf{P}[X=k]$, то порядок свертки может считаться суммой случайных переменных: $$ X^{*n} = \underbrace{X' + X' + X' + \cdots + X' + X'}_n $$ где все $X'$ являются независимыми копиями исходной случайной переменной $X$.

Дробные показатели степени

Порядок свертки, как следует из предыдущего раздела, задается для неотрицательных целых чисел, используемых в качестве показателей степени. С практической точки зрения желательно использовать дробные показатели степени. Например, если рост продаж после промоакции составил всего 50%, то нужно применить порядок свертки равный $n=1.5$. В данном случае мы округляем порядок свертки до произвольного положительного действительного числа, которое будет использовано в качестве показателя степени.

Порядок свертки для $a$, неотрицательного действительного числа, задается следующим образом:

$$ x^{*a} = \mathcal{Z}^{-1} \Big\{ \mathcal{Z}\{x\}^a \Big\} $$ Где $\mathcal{Z}$ представляет собой Z-преобразование дискретного распределения $x$, заданного следующим образом: $$ \mathcal{Z}\{x\} : z \to \sum_{k=-\infty}^{\infty} x[k] z^{-k} $$ и где $\mathcal{Z}\{x\}^a$ является точечным порядком для Z-преобразования, заданным следующим образом: $$ \mathcal{Z}\{x\}^a : z \to \left( \sum_{k=-\infty}^{\infty} x[k] z^{-k} \right)^a $$ Наконец, $\mathcal{Z}^{-1}$ представляет собой обратное Z-преобразование $$ \mathcal{Z}^{-1} \{X(z) \}= \frac{1}{2 \pi j} \oint_{C} X(z) z^{n-1} dz $$ $X(z) = \mathcal{Z}\{x\}(z)$ вводится для удобства прочтения формулы. $C$ представляет собой обратнонаправленный замкнутый путь, охватывающий исходное значение.

Если $a$ является целым числом, то два определения порядка свертки, данные выше, совпадают.

На практике обратное Z-преобразование не всегда может быть определено. Тем не менее есть способы обобщения понятия инверсии Z-преобразования — подобно понятию псевдоинверсии матрицы в линейной алгебре. Подробное описание Z-преобразования выходит за рамки данной статьи.

Благодаря псевдоинверсии Z-преобразования порядок свертки может быть задан для всех случайных переменных компактного носителя и для любых неотрицательных действительных чисел, которые используются как показатели степени.

Синтаксис Envision

Язык программирования Envision от Lokad позволяет применять обобщенный порядок свертки. Порядок свертки доступен через оператор ^*.
y := poisson(3) ^* 4.2 // дробный показатель степени
Из сценария выше видно, как распределение Пуассона, полученное через вызов функции poisson(), может быть свернуто в порядок 4,2.

Для $x$ функций $\mathbb{Z} \to \mathbb{R}$ и $y$ функция $\mathbb{N} \to \mathbb{R}$ мы можем задать порядок свертки $x$ на $y$ следующим образом: $$ x^{*y} = \sum_{k=0}^{\infty} y[k] x^{*k} $$ Envision также поддерживает альтернативное выражение порядка свертки через оператора ^*, как показано в сценарии ниже.
y := poisson(3) ^* exponential(0.05)
Показатель степени представляет собой распределение по экспоненте, полученное через вызов функции exponential().

Применение: запчасти для самолетов

Представим, что у авиакомпании есть флот из 100 одинаковых самолетов. Компании необходимо оптимизировать запас вспомогательных силовых установок (ВСУ), которые являются дорогими и ремонтопригодными запчастями для самолетов. Спрос на ВСУ был спрогнозирован на желаемый период в виде вероятностного прогноза $X$.

Теперь у компании есть возможность купить маленькую компанию-конкурента с 5 одинаковыми самолетами. После присоединения конкурента компания получает больше самолетов и больше пассажиров. Если предположить, что потребность самолетов в ВСУ статистически независима, а самолеты конкурента имеют те же самые потребности, то общий спрос на ВСУ для объединенной компании можно вычислить по формуле: $X^{*\frac{100 + 5}{100}}=X^{*1.05}$.

Список источников