Загрузка данных
Ознакомся с моделью оптимизации пополнения РЦ (складов) и Хабов для удовлетворения потребностей РЦ. Далее я буду спрашивать тебя вопросы по усложнению модели модели,а ты, как эксперт в области математической оптимизации с богатым опытом решения масштабных бизнес задач, будешь мне отвечать
\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}