Figure 1: Typical warehouse product flow (based on Heragu 2022).
In Table 1, match each row in the “Functions” column with the appropriate Functional Area: 1) Receiving, 2) Shipping, 3) Staging for Cross-Docking, 4) Reserve, and 5) Forward.
| Functional Area | Function |
|---|---|
| Forward | Optimized for order collation and rapid replenishment. |
| Receiving | Pallet loads or individual cartons of products are received. |
| Shipping | Picked order items are staged and value-added services are performed. |
| Staging | In cross-docking, products are sorted for outbound operations. |
| Forward | Performs value-added operations such as labeling or kitting. |
| Staging | Received products are pre-sorted. |
| Receiving | Products are staged briefly and then moved to the shipping area (cross-docking) or the storage area. |
| Reserve | High-density storage equipment is used to maximize space utilization. |
| Forward | Smaller storage area designed for fast order picking. |
| Staging | Items wait temporarily before being moved to the shipping area. |
| Reserve | Stores bulky products for extended periods. |
Goal: Determine the product-flow assignment and the functional-area sizes within the warehouse.
Assumptions:
| Symbol | Description |
|---|---|
| \(i\) | Number of products \(i \in \{1, 2, \dots, n\)} |
| \(j\) | Type of material flow; \(j \in \{1, 2, 3, 4\}\) |
| Symbol | Description |
|---|---|
| \(D_{i}\) | Annual demand rate of product \(i\) in unit loads |
| \(C_{i}^{\mathrm{order}}\) | Order cost for product \(i\) |
| \(P_i\) | Price per unit load of product \(i\) |
| \(C^{\mathrm{carry}}\) | Carrying cost/unit of inventory/year (%) rate |
| \(Q_i\) | Order quantity for product \(i\) (in unit loads) |
| \(T_i\) | Avg. dwell time (in years) per unit load of product \(i\) |
The optimal order quantity is:
\[ \begin{align} Q_i = & \sqrt{\frac{2 \times 3,600 \times 200}{25}} \\ = & 240 \; \text{units}\\ \end{align} \]
Average duration a product stays on the shelf (time between two successive replenishments).
Example of dwell time calculation:
The avg. dwell time is:
\[ \begin{align} T_i = & \frac{240}{2 \times 3,600} = \frac{1}{\underbrace{30}_{\substack{avg. \\ turns}}} \; \text{years (3.2 weeks)}\\ \end{align} \]
The avg. annual load is
\[ \frac{Q_i}{2} = \frac{240}{2} = 120\; \text{units} \]
| Symbol | Description |
|---|---|
| \(C_{ij}^{\mathrm{handle}}\) | Cost of handling a unit load of product \(i\) in material flow \(j\) |
| \(C_{ij}^{\mathrm{store}}\) | Cost of storing a unit load of product \(i\) in material flow \(j\) per year |
| \(\rho_{i}^{\mathrm{R}}\) | Average percentage of time a unit load of product \(i\) spends in the reserve area if product is assigned to material flow 3 |
| \(d_i\) | Ratio of the size of the unit load in the reserve area to that in the forward area |
| \(q_{ij}\) | Break-bulk factor: = \(1\) if product \(i\) is assigned to material flow \(j \in \{1,2,4\}\) = \(\lceil d_i \rceil + 1\) when product \(i\) is assigned to flow \(j =3\) |
Model product flows.
| Symbol | Description |
|---|---|
| \(S^{\mathrm{total}}\) | Total available storage space |
| \(S_{i}\) | Space required for storing a unit load of product \(i\) |
| \(z^{\mathrm{CD}}\), \(z^{\mathrm{R}}\), \(z^{\mathrm{F}}\) | Levels of space available in the vertical dimension in each functional area |
| \(LL_{\mathrm{CD}}\), \(UL_{\mathrm{CD}}\) | Lower and upper storage space limit for the cross-docking area |
| \(LL_{\mathrm{F}}\), \(UL_{\mathrm{F}}\) | Lower and upper storage space limit for the forward area |
| \(LL_{\mathrm{R}}\), \(UL_{\mathrm{R}}\) | Lower and upper storage space limit for the reserve area |
| Symbol | Description |
|---|---|
| \(x_{ij}\) | \(1\) if product \(i\) is assigned to flow type \(j\); \(0\) otherwise |
| \(w^{\mathrm{CD}}\) | Proportion of available space assigned to the cross-docking functional area |
| \(w^{\mathrm{R}}\) | Proportion of available space assigned to the reserve functional area |
| \(w^{\mathrm{F}}\) | Proportion of available space assigned to the forward functional area |
Minimize total material handling and storage costs:
\[ \min \sum_{i=1}^{n}{\sum_{j=1}^{4}{(2C_{ij}^{\mathrm{handle}})D_{i}q_{ij}x_{ij}}} + \sum_{i=1}^{n}{\sum_{j=1}^{4}{\frac{Q_{i}}{2}C_{ij}^{\mathrm{store}}q_{ij}x_{ij}}} \]
Handling costs
Storage costs
Each SKU is assigned to only one type of material flow:
\[ \begin{align} \sum_{j}^{4}{x_{ij}} = 1 & \quad \text{for} \; i = 1,2,3, \dots, n \\ \end{align} \]
If a single product could be allocated to multiple flows:
Example: A manager estimates that a product has demand of 10,000 units and is likely to be split in a 7:3 ratio between reserve and cross-docking. This ratio results in creating two artificial products with demands of 7,000 and 3,000 units.
The SKUs assigned to each area are such that their collective space requirement is within the allotted cubic space.
\[ \begin{align} \sum_{i=1}^{n}{\frac{Q_{i}}{2}S_{i}x_{i1}} &\leq w^{\mathrm{CD}} (z^{\mathrm{CD}}S^{\mathrm{total}}) & \text{Cross docking (flow 1)} \\ \sum_{i=1}^{n}{\frac{Q_{i}}{2}S_{i}x_{i2}} + \sum_{i=1}^{n}{\frac{Q_{i}}{2}\rho_{i}^{\mathrm{R}}S_{i}x_{i3}} &\leq w^{\mathrm{R}}(z^{\mathrm{R}} S^{\mathrm{total}}) & \text{Reserve (flows 2 and 3)}\\ \sum_{i=1}^{n}{\frac{Q_{i}}{2}(1-\rho_{i}^{\mathrm{R}})S_{i}x_{i3}} + \sum_{i=1}^{n}{\frac{Q_{i}}{2}S_{i}x_{i4}} &\leq w^{\mathrm{F}} (z^{\mathrm{F}}S^{\mathrm{total}}) & \text{Forward (flows 3 and 4)}\\ \end{align} \]
Notice that \(\rho_{i}^{\mathrm{R}}\) is the average percentage of time a unit load of product \(i\) spends in the reserve area when assigned to flow \(3\).
Ensures 100% of the space available is allocated to the three areas:
\[ \begin{align} w^{\mathrm{CD}} + w^{\mathrm{R}} + w^{\mathrm{F}} = 1 \quad \end{align} \]
Enforce upper and lower limits on the space that can be allocated to the cross-docking, forward, and reserve areas:
\[ \begin{align} LL_{\mathrm{CD}}\leq w^{\mathrm{CD}} (z^{\mathrm{CD}}S^{\mathrm{total}}) \leq UL_{\mathrm{CD}}\quad \\ LL_{\mathrm{R}} \leq w^{\mathrm{R}} (z^{\mathrm{R}} S^{\mathrm{total}}) \leq UL_{\mathrm{R}}\quad \\ LL_{\mathrm{F}} \leq w^{\mathrm{F}} (z^{\mathrm{F}} S^{\mathrm{total}}) \leq UL_{\mathrm{F}}\quad \end{align} \]
Ensure that the decision variables are non-negative and available space proportions are within the range \([0,1]\):
\[ \begin{align} x_{ij} \in \{0,1\} & \quad \text{for all products} \; i \; \text{and flows} \; j\\ w^{\mathrm{CD}}, w^{\mathrm{R}}, w^{\mathrm{F}} \geq 0 & \quad \text{(proportion of available spaces)} \end{align} \]
Consider that product \(p\) has demand of 10,000 units and is likely to be split in a 7:3 ratio between reserve and cross-docking. However, the variable \(x_{ij}\), where \(i\) is the product and \(j\) is the flow, is binary and can only be assigned to a single flow:
\[ \sum_{j}^{4} x_{ij} = 1 \quad \forall \quad i = 1, 2, 3, \ldots, n \]
How can we adjust the model to deal with this specific situation?
Answer
Replace product \(p\) with two artificial product versions:
Each version can be assigned to one flow. The model then chooses the assignments that minimize total cost.
Warehousing - M-IEM - Breno A. Beirigo