Загрузка данных


Ознакомся с моделью оптимизации пополнения РЦ (складов) и Хабов для удовлетворения потребностей РЦ. Далее я буду спрашивать тебя вопросы по усложнению модели модели,а ты, как эксперт в области математической оптимизации с богатым опытом решения масштабных бизнес задач, будешь мне отвечать

\section{Математическая модель}

\subsection{Индексы модели}

\begin{table}[h]
\centering
\caption{Индексы модели}
\begin{tabular}{ll}
\toprule
\textbf{Обозначение} & \textbf{Описание} \\
\midrule
$t$   & Дата \\
$plu$ & Код товара \\
$hub$ & Код хаба \\
$wh$  & Код распределительного центра (РЦ) \\
$lo$  & Локальный поставщик \\
$di$  & Прямой импорт \\
\bottomrule
\end{tabular}
\label{tab:indexes}
\end{table}

\subsection{Параметры модели}

\begin{table}[h]
\centering
\caption{Параметры модели}
\begin{tabular}{p{0.38\textwidth} p{0.55\textwidth}}
\toprule
\textbf{Обозначение} & \textbf{Описание} \\
\midrule
$LT_{ho, hub}$ &
Лидтайм поставки на хаб \\

$LT_{hub,wh}$ &
Лидтайм поставки с хаба на распределительный центр (РЦ) \\

$LT_{di,wh}$ &
Лидтайм поставки на РЦ по каналу прямого импорта \\

$LT_{lo,wh}$ &
Лидтайм поставки на РЦ от локальных поставщиков \\

$PUSH\_DAYS_{plu,wh}$ &
Множество дней под Пуш товара PLU на РЦ \\ 

$QUANT_{t,plu,(hub,wh)}$ &
Квант поставки с хаба на РЦ \\

$QUANT_{t,plu,(lo,wh)}$ &
Квант поставки на РЦ от локального поставщика \\

$QUANT_{t,plu,(di,wh)}$ &
Квант поставки на РЦ по каналу прямого импорта \\

$COMPLECTATION_{t,plu,wh}$ &
Прогноз отгрузок с РЦ \\

$PENALTY_{t,plu,wh}$ &
Штраф за невыполнение плана отгрузок с РЦ \\

$LOGISTICS\_COST_{t,plu,(hub,wh)}$ &
Удельные расходы на транспортировку товаров с хаба на РЦ \\

$DI\_COST_{t,plu,wh}$ &
Удельная стоимость заказа товара по каналу «Прямой импорт» \\

$LO\_COST_{t,plu,wh}$ &
Удельная стоимость заказа товара у локального поставщика \\

$HUB\_ORDER\_COST_{t,plu,hub}$ &
Удельная стоимость заказа товара на хаб \\

$STORAGE\_COST_{t,plu,wh/hub}$ &
Удельная стоимость хранения товара на РЦ или хабе \\

$PUSH\_TZ_{t,plu,wh}$ &
Максимальный уровень запаса (верхняя граница) для товара $plu$ на РЦ $wh$ в день Пуша (Пуш-ТЗ) \\

$MIN\_TZ_{plu,wh}$ &
Минимальный целевой уровень запаса (нижняя граница) для товара $plu$ на РЦ $wh$ \\

$TARGET\_TZ_{t,plu,wh}$ &
Остаток целевого НТЗ для товара $plu$ на РЦ $wh$ в период $t$ (входные данные) \\

$DEV\_PENALTY_{t,plu,wh}$ &
Вес штрафа за отклонение расчётного остатка от целевой НТЗ \\

$PUSH\_DEV\_PENALTY_{t,plu,wh}$ &
Вес штрафа за отклонение расчётного остатка от Пуш ТЗ в дни для Пуша \\

$CAPACITY_{wh}$ &
Вместимость распределительного центра (РЦ) \\

$CAPACITY_{hub}$ &
Вместимость хаба \\

$BANDWIDTH\_IN_{t,wh}$ &
Пропускная способность РЦ на вход в период $t$ (макс. суммарное поступление за период) \\

$BANDWIDTH\_IN_{t,hub}$ &
Пропускная способность хаба на вход в период $t$ (макс. суммарное поступление за период) \\

$BANDWIDTH\_OUT_{t,hub}$ &
Пропускная способность хаба на выход в период $t$ (макс. суммарное выбытие за период) \\
\bottomrule
\end{tabular}
\label{tab:parameters}
\end{table}

\newpage

\subsection{Переменные модели}

\begin{table}[h]
\centering
\caption{Переменные модели}
\begin{tabular}{p{0.36\textwidth} p{0.18\textwidth} p{0.38\textwidth}}
\toprule
\textbf{Обозначение} & \textbf{Тип} & \textbf{Описание} \\
\midrule

$end\_stock_{t,plu,wh/hub}$ &
Непрерывная &
Остаток товара на РЦ или хабе на конец периода \\

$open\_stock_{t,plu,wh/hub}$ &
Непрерывная &
Остаток товара на РЦ или хабе на начало периода \\

$inflow_{t,plu,wh/hub}$ &
Непрерывная &
Поступление товара на РЦ или хаб \\

$outflow_{t,plu,hub}$ &
Непрерывная &
Выбытие товара с хаба \\

$hub\_order_{t,plu,(ho, hub)}$ &
Непрерывная &
Объем заказа на хаб \\

$v\_transfer_{t,plu,(hub,wh)}$ &
Непрерывная &
Материальный поток с хаба на РЦ \\

$direct\_import\_order_{t,plu,wh}$ &
Непрерывная &
Объем заказа по каналу прямого импорта \\

$local\_order_{t,plu,wh}$ &
Непрерывная &
Объем заказа у локального поставщика \\

$k_{t,plu,(hub,wh)}$ &
Целочисленная &
Кратность кванту поставки с хаба на РЦ \\

$k_{t,plu,(lo,wh)}$ &
Целочисленная &
Кратность заказа у локального поставщика на РЦ \\

$k_{t,plu,(di,wh)}$ &
Целочисленная &
Кратность заказа по каналу прямого импорта на РЦ \\

$dev^{+}_{t,plu,wh}$ &
Непрерывная &
Положительное отклонение остатка на РЦ от целевого НТЗ: $\max(end\_stock - TARGET\_TZ, 0)$ \\
$dev^{-}_{t,plu,wh}$ &
Непрерывная &
Отрицательное отклонение остатка на РЦ от целевого НТЗ: $\max(TARGET\_TZ - end\_stock, 0)$ \\

\bottomrule
\end{tabular}
\label{tab:variables}
\end{table}

\subsection{Ограничения модели}

\subsubsection{Баланс остатков на хабах}

$\forall t, plu, hub$:

\begin{align}
end\_stock_{t,plu,hub} &=
open\_stock_{t,plu,hub}
+ inflow_{t,plu,hub}
- outflow_{t,plu,hub},
\\
open\_stock_{t,plu,hub} &=
end\_stock_{t-1,plu,hub}.
\end{align}

\subsubsection{Баланс остатков на распределительных центрах}

$\forall t, plu, wh$:

\begin{align}
end\_stock_{t,plu,wh} &=
open\_stock_{t,plu,wh}
+ inflow_{t,plu,wh}
- COMPLECTATION_{t,plu,wh},
\\
open\_stock_{t,plu,wh} &=
end\_stock_{t-1,plu,wh}.
\end{align}

\subsubsection{Поступление на хабы}

$\forall t, plu, hub$:

\begin{equation}
inflow_{t,plu,hub}
=
\sum_{ho} hub\_order_{t-LT_{ho,hub},plu,(ho,hub)}.
\end{equation}

Предполагается единственный канал поставки на хаб.

\subsubsection{Поступление на распределительные центры}

$\forall t, plu, wh$:

\begin{equation}
\begin{aligned}
inflow_{t,plu,wh}
&=
\sum_{hub}
v\_transfer_{t-LT_{hub,wh},\,plu,\,(hub,wh)}
\\
&\quad
+
direct\_import\_order_{t-LT_{di,wh},\,plu,wh}
+
local\_order_{t-LT_{lo,wh},\,plu,wh}.
\end{aligned}
\end{equation}

\subsubsection{Выбытие с хабов}

$\forall t, plu, hub$:

\begin{equation}
outflow_{t,plu,hub}
=
\sum_{wh}
v\_transfer_{t,plu,(hub,wh)}.
\end{equation}

\subsubsection{Кратность поставки с хаба}

$\forall t, plu, (hub, wh)$:

\begin{equation}
v\_transfer_{t,plu,(hub,wh)}
=
k_{t,plu,(hub,wh)}
\cdot
QUANT_{t,plu,(hub,wh)}.
\end{equation}

\subsubsection{Кратность заказа у локального поставщика}

$\forall t, plu, wh$:

\begin{equation}
local\_order_{t,plu,wh}
=
k_{t,plu,(lo,wh)}
\cdot
QUANT_{t,plu,(lo,wh)}.
\end{equation}

\subsubsection{Кратность заказа по каналу прямого импорта}

$\forall t, plu, wh$:

\begin{equation}
direct\_import\_order_{t,plu,wh}
=
k_{t,plu,(di,wh)}
\cdot
QUANT_{t,plu,(di,wh)}.
\end{equation}

\subsubsection{Ограничение остатков на РЦ сверху}

$\forall plu, wh, t \in PUSH\_DAYS_{plu, wh}$:

\begin{equation}
end\_stock_{t,plu,wh}
\le
PUSH\_TZ_{t,plu,wh}.
\end{equation}

\subsubsection{Ограничение остатков на РЦ снизу}

$\forall t, plu, wh$:

\begin{equation}
end\_stock_{t,plu,wh}
\ge
MIN\_TZ_{plu,wh}.
\end{equation}

\subsubsection{Отклонение остатков от целевого НТЗ}

$\forall plu, wh, t \notin PUSH\_DAYS_{plu, wh}$:

\begin{align}
dev^{+}_{t,plu,wh}
&\ge
end\_stock_{t,plu,wh}
-
TARGET\_TZ_{t,plu,wh},
\\
dev^{-}_{t,plu,wh}
&\ge
TARGET\_TZ_{t,plu,wh}
-
end\_stock_{t,plu,wh}.
\end{align}

\subsubsection{Ограничение вместимости РЦ}

$\forall t, wh$:

\begin{equation}
\sum_{plu}
end\_stock_{t,plu,wh}
\le
CAPACITY_{wh}.
\end{equation}

\subsubsection{Ограничение вместимости хаба}

$\forall t, hub$:

\begin{equation}
\sum_{plu}
end\_stock_{t,plu,hub}
\le
CAPACITY_{hub}.
\end{equation}

\subsubsection{Ограничение пропускной способности РЦ на вход}

$\forall t, wh$:

\begin{equation}
\sum_{plu}
inflow_{t,plu,wh}
\le
BANDWIDTH\_IN_{t,wh}.
\end{equation}

\subsubsection{Ограничение пропускной способности хаба на вход}

$\forall t, hub$:

\begin{equation}
\sum_{plu}
inflow_{t,plu,hub}
\le
BANDWIDTH\_IN_{t,hub}.
\end{equation}

\subsubsection{Ограничение пропускной способности хаба на выход}

$\forall t, hub$:

\begin{equation}
\sum_{plu}
outflow_{t,plu,hub}
\le
BANDWIDTH\_OUT_{t,hub}.
\end{equation}


\subsection{Целевая функция}

Минимизируются логистические затраты, затраты на хранение и отклонения приходов на РЦ от ожидаемых:$dev^{-}_{t,plu,wh}$ &
Непрерывная &
Отрицательное отклонение остатка на РЦ от целевого НТЗ: $\max(TARGET\_TZ - end\_stock, 0)$ \\

\bottomrule
\end{tabular}
\label{tab:variables}
\end{table}

\subsection{Ограничения модели}

\subsubsection{Баланс остатков на хабах}

$\forall t, plu, hub$:

\begin{align}
end\_stock_{t,plu,hub} &=
open\_stock_{t,plu,hub}
+ inflow_{t,plu,hub}
- outflow_{t,plu,hub},
\\
open\_stock_{t,plu,hub} &=
end\_stock_{t-1,plu,hub}.
\end{align}

\subsubsection{Баланс остатков на распределительных центрах}

$\forall t, plu, wh$:

\begin{align}
end\_stock_{t,plu,wh} &=
open\_stock_{t,plu,wh}
+ inflow_{t,plu,wh}
- COMPLECTATION_{t,plu,wh},
\\
open\_stock_{t,plu,wh} &=
end\_stock_{t-1,plu,wh}.
\end{align}

\subsubsection{Поступление на хабы}

$\forall t, plu, hub$:

\begin{equation}
inflow_{t,plu,hub}
=
\sum_{ho} hub\_order_{t-LT_{ho,hub},plu,(ho,hub)}.
\end{equation}

Предполагается единственный канал поставки на хаб.

\subsubsection{Поступление на распределительные центры}

$\forall t, plu, wh$:

\begin{equation}
\begin{aligned}
inflow_{t,plu,wh}
&=
\sum_{hub}
v\_transfer_{t-LT_{hub,wh},\,plu,\,(hub,wh)}
\\
&\quad
+
direct\_import\_order_{t-LT_{di,wh},\,plu,wh}
+
local\_order_{t-LT_{lo,wh},\,plu,wh}.
\end{aligned}
\end{equation}

\subsubsection{Выбытие с хабов}

$\forall t, plu, hub$:

\begin{equation}
outflow_{t,plu,hub}
=
\sum_{wh}
v\_transfer_{t,plu,(hub,wh)}.
\end{equation}

\subsubsection{Кратность поставки с хаба}

$\forall t, plu, (hub, wh)$:

\begin{equation}
v\_transfer_{t,plu,(hub,wh)}
=
k_{t,plu,(hub,wh)}
\cdot
QUANT_{t,plu,(hub,wh)}.
\end{equation}

\subsubsection{Кратность заказа у локального поставщика}

$\forall t, plu, wh$:

\begin{equation}
local\_order_{t,plu,wh}
=
k_{t,plu,(lo,wh)}
\cdot
QUANT_{t,plu,(lo,wh)}.
\end{equation}

\subsubsection{Кратность заказа по каналу прямого импорта}

$\forall t, plu, wh$:

\begin{equation}
direct\_import\_order_{t,plu,wh}
=
k_{t,plu,(di,wh)}
\cdot
QUANT_{t,plu,(di,wh)}.
\end{equation}

\subsubsection{Ограничение остатков на РЦ сверху}

$\forall plu, wh, t \in PUSH\_DAYS_{plu, wh}$:

\begin{equation}
end\_stock_{t,plu,wh}
\le
PUSH\_TZ_{t,plu,wh}.
\end{equation}

\subsubsection{Ограничение остатков на РЦ снизу}

$\forall t, plu, wh$:

\begin{equation}
end\_stock_{t,plu,wh}
\ge
MIN\_TZ_{plu,wh}.
\end{equation}

\subsubsection{Отклонение остатков от целевого НТЗ}

$\forall plu, wh, t \notin PUSH\_DAYS_{plu, wh}$:

\begin{align}
dev^{+}_{t,plu,wh}
&\ge
end\_stock_{t,plu,wh}
-
TARGET\_TZ_{t,plu,wh},
\\
dev^{-}_{t,plu,wh}
&\ge
TARGET\_TZ_{t,plu,wh}
-
end\_stock_{t,plu,wh}.
\end{align}

\subsubsection{Ограничение вместимости РЦ}

$\forall t, wh$:

\begin{equation}
\sum_{plu}
end\_stock_{t,plu,wh}
\le
CAPACITY_{wh}.
\end{equation}

\subsubsection{Ограничение вместимости хаба}

$\forall t, hub$:

\begin{equation}
\sum_{plu}
end\_stock_{t,plu,hub}
\le
CAPACITY_{hub}.
\end{equation}

\subsubsection{Ограничение пропускной способности РЦ на вход}

$\forall t, wh$:

\begin{equation}
\sum_{plu}
inflow_{t,plu,wh}
\le
BANDWIDTH\_IN_{t,wh}.
\end{equation}

\subsubsection{Ограничение пропускной способности хаба на вход}

$\forall t, hub$:

\begin{equation}
\sum_{plu}
inflow_{t,plu,hub}
\le
BANDWIDTH\_IN_{t,hub}.
\end{equation}

\subsubsection{Ограничение пропускной способности хаба на выход}

$\forall t, hub$:

\begin{equation}
\sum_{plu}
outflow_{t,plu,hub}
\le
BANDWIDTH\_OUT_{t,hub}.
\end{equation}


\subsection{Целевая функция}

Минимизируются логистические затраты, затраты на хранение и отклонения приходов на РЦ от ожидаемых:
\begin{align}
\min Z =\;&
\sum_{t,plu,(hub,wh)}
LOGISTICS\_COST_{t,plu,(hub,wh)}
\cdot
v\_transfer_{t,plu,(hub,wh)}
\nonumber\\
&
+\sum_{t,plu,wh}
DI\_COST_{t,plu,wh}
\cdot
direct\_import\_order_{t,plu,wh}
\nonumber\\
&
+\sum_{t,plu,wh}
LO\_COST_{t,plu,wh}
\cdot
local\_order_{t,plu,wh}
\nonumber\\
&
+\sum_{t,plu,hub}
HUB\_ORDER\_COST_{t,plu,hub}
\cdot
hub\_order_{t,plu,(ho, hub)}
\nonumber\\
&
+\sum_{t,plu,n}
STORAGE\_COST_{t,plu,n}
\cdot
end\_stock_{t,plu,n},
\qquad
n\in\{wh,hub\}
\nonumber\\
&
+\sum_{plu,wh, t \notin PUSH\_DAYS_{plu,wh}}
DEV\_PENALTY_{t,plu,wh}
\left(
dev^{+}_{t,plu,wh}
+
dev^{-}_{t,plu,wh}
\right)
\nonumber\\
&
+\sum_{plu,wh, t \in PUSH\_DAYS_{plu,wh}}
PUSH\_DEV\_PENALTY_{t,plu,wh}
\left(
    PUSH\_TZ_{t,plu,wh} - end\_stock_{t,plu,wh}
\right).
\end{align}

Описание слогаемых целевой функции:

\begin{itemize}
    \item
    $\displaystyle
    \sum_{t,plu,(hub,wh)}
    LOGISTICS\_COST_{t,plu,(hub,wh)}
    \cdot
    v\_transfer_{t,plu,(hub,wh)}$
    --- суммарные транспортные расходы при поставках с хабов на распределительные центры;

    \item
    $\displaystyle
    \sum_{t,plu,wh}
    DI\_COST_{t,plu,wh}
    \cdot
    direct\_import\_order_{t,plu,wh}$
    --- суммарные затраты на закупки по каналу прямого импорта;

    \item
    $\displaystyle
    \sum_{t,plu,wh}
    LO\_COST_{t,plu,wh}
    \cdot
    local\_order_{t,plu,wh}$
    --- суммарные затраты на закупки у локальных поставщиков;

    \item
    $\displaystyle
    \sum_{t,plu,hub}
    HUB\_ORDER\_COST_{t,plu,hub}
    \cdot
    hub\_order_{t,plu,(ho, hub)}$
    --- суммарные затраты на поставки на хабы;

    \item
    $\displaystyle
    \sum_{t,plu,n}
    STORAGE\_COST_{t,plu,n}
    \cdot
    end\_stock_{t,plu,n}$
    --- суммарные затраты на хранение запасов на распределительных центрах и хабах;

    \item
    $\displaystyle
    \sum_{plu,wh, t \notin PUSH\_DAYS_{plu,wh}}
    DEV\_PENALTY_{t,plu,wh}
    \left(
    dev^{+}_{t,plu,wh}
    +
    dev^{-}_{t,plu,wh}
    \right)$
    --- суммарный штраф за отклонение остатков на РЦ от целевого НТЗ.

    \item
    $\displaystyle
    \sum_{plu,wh, t \in PUSH\_DAYS_{plu,wh}}
    PUSH\_DEV\_PENALTY_{t,plu,wh}
    \left(
        PUSH\_TZ_{t,plu,wh} - end\_stock_{t,plu,wh}
    \right)$
    --- суммарный штраф за отклонение остатков на РЦ от Пуш-ТЗ в дни для Пуша.
\end{itemize}