A place for everything, and everything in its place Benjamin Franklin
Main issue: Decide how to allocate the various storage locations of a uniform storage medium to a number of SKUs.
Policies:
Example of a warehouse with 16 uniform storage locations:
| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 |
Note that \(n\) depends on the inventory levels of all the items.
It is desired to determine the storage space layout for 20 storage spaces in a rectangular \(100\ \text{m} \times 50\ \text{m}\) warehouse (50 storage spaces). A random policy will be used, and the designer wants to minimize the total distance traveled. Each storage space is \(10\ \text{m}^2,\) and the I/O point is located in the middle of the south wall.
| 9 | 8 | 7 | 6 | 5 | 5 | 6 | 7 | 8 | 9 |
| 8 | 7 | 6 | 5 | 4 | 4 | 5 | 6 | 7 | 8 |
| 7 | 6 | 5 | 4 | 3 | 3 | 4 | 5 | 6 | 7 |
| 6 | 5 | 4 | 3 | 2 | 2 | 3 | 4 | 5 | 6 |
| 5 | 4 | 3 | 2 | 1 | 1 | 2 | 3 | 4 | 5 |
| 4 | 4 | ||||||||
| 4 | 3 | 3 | 4 | ||||||
| 4 | 3 | 2 | 2 | 3 | 4 | ||||
| 4 | 3 | 2 | 1 | 1 | 2 | 3 | 4 |
For the same volume and frequency of S/R operations, the random policy requires less storage space than the dedicated policy.
Goal: Enhance the throughput of storage and retrieval operations by reducing travel time/distance.
How?: By allocating the most active units to the most convenient locations.
SKUs that cause a lot of traffic (S/R transactions).
Every SKU \(i\) gets a number of storage locations, \(S_i\), exclusively allocated to it.
\(S_i\) reflects its max. storage needs and it must be determined through inventory activity profiling.
Ideally, given \(n^{\mathrm{SKUs}}\) SKUs, the total n. of products is equal to the n. of storage spaces \(n^{\mathrm{storage}}\): \[ \sum_{i=1}^{n^{\mathrm{SKUs}}}{S_i} = n^{\mathrm{storage}} \]
If LHS < RHS, add a dummy SKU \((n^{\mathrm{SKUs}} +1)\) to take up the remaining space \((n^{\mathrm{storage}} - \sum_{i=1}^{n^{\mathrm{SKUs}}}{N_i})\).
If RHS < LHS, no feasible solution.
| Symbol | Description |
|---|---|
| \(i\) | SKU index |
| \(j\) | Storage location index |
| \(k\) | I/O point index |
| \(n^{\mathrm{IO}}\) | Number of I/O points |
| \(n^{\mathrm{SKUs}}\) | Number of SKUs (supply points) |
| \(n^{\mathrm{storage}}\) | Number of storage locations |
| \(S_i\) | Number of product locations required by SKU \(i\) |
| \(d_{kj}\) | Distance of storage space \(j\) from I/O point \(k\) |
| \(c_{ik}\) | Cost of moving a unit load of item \(i\) to and from I/O point \(k\) |
| \(f_{ik}\) | Number of trips of item \(i\) through I/O point \(k\) |
| \(w_{ij}\) | =\(\frac{\sum_{k=1}^{n^{\mathrm{IO}}} c_{ik} f_{ik} d_{kj}}{S_i}\) |
| \(x_{ij}\) | 1 if location \(j\) is allocated to SKU \(i\); 0 otherwise |
Objective Function
\[ \begin{align*} \min \quad Z & = \sum_{i=1}^{n^{\mathrm{SKUs}}} \sum_{j=1}^{n^{\mathrm{storage}}} w_{ij} x_{ij} \end{align*} \]
All products \(S_i\) of a SKU \(i\) are allocated: \[ \begin{align} \sum_{j=1}^{n^{\mathrm{storage}}} x_{ij} = S_i, \quad i = 1,2,\ldots,n^{\mathrm{SKUs}} \\ \end{align} \]
Every location stores a single product: \[ \begin{align} \sum_{i=1}^{n^{\mathrm{SKUs}}} x_{ij} = 1, \quad j = 1,2,\ldots,n^{\mathrm{storage}} \\ \end{align} \]
Binary domain: \[ \begin{align} \quad & x_{ij} \in \{0,1\}, \quad i = 1,2,\ldots,n^{\mathrm{SKUs}}, \quad j = 1,2,\ldots,n^{\mathrm{storage}} \end{align} \]
Consider two SKUs (\(a\), \(b\)) and three storage locations (1, 2, 3). SKU \(a\) demands 1 storage location (\(S_a = 1\)), and SKU \(b\) demands 2 storage locations (\(S_b = 2\)). The I/O point \(p\) is at the leftmost side of the warehouse, such that \(d_{p1} = 1\), \(d_{p2} = 2\), and \(d_{p3} = 3\). How should the items be allocated to minimize travel costs between the I/O point and the locations under a dedicated policy?
| I/O | 1 | 2 | 3 |
| 1 | 2 | 3 | |
|---|---|---|---|
| I/O | 1 | 2 | 3 |
| a | b | |
|---|---|---|
| I/O | 20 | 10 |
| a | b | |
|---|---|---|
| I/O | 1 | 1 |
| 1 | 2 | 3 | |
|---|---|---|---|
| a | \(\frac{1 \times 20 \times 1 }{1}=20\) | \(\frac{1 \times 20 \times 2 }{1}=40\) | \(\frac{1 \times 20 \times 3 }{1}=60\) |
| b | \(\frac{1 \times 10 \times 1 }{2}=5\) | \(\frac{1 \times 10 \times 2 }{2}=10\) | \(\frac{1 \times 10 \times 3 }{2}=15\) |
| Solution | 1 | 2 | 3 | Travel cost |
|---|---|---|---|---|
| 1 | a | b | b | 20 + 10 + 15 = 45 |
| 2 | b | a | b | 5 + 40 + 15 = 60 |
| 3 | b | b | a | 5 + 10 + 60 = 75 |
| Symbol | Description |
|---|---|
| \(i\) | SKU index |
| \(j\) | Storage location index |
| \(k\) | I/O point index |
| \(n^{\mathrm{IO}}\) | Number of I/O points |
| \(n^{\mathrm{SKUs}}\) | Number of SKUs (supply points) |
| \(n^{\mathrm{storage}}\) | Number of storage locations |
| \(S_i\) | Number of product locations required by SKU \(i\) |
| \(f_{i}\) | Frequency of usage of SKU \(i\) |
| \(w_{j}\) | Distance of storage location \(j\) from the I/O point |
| \(x_{ij}\) | 1 if location \(j\) is allocated to SKU \(i\); 0 otherwise |
Objective Function
Minimizes the total distance of moving the SKUs into and out of their respective areas:
\[ \begin{align*} \min \quad Z & = \sum_{i=1}^{n^{\mathrm{SKUs}}} \sum_{j=1}^{n^{\mathrm{storage}}} \frac{f_{i}}{S_{i}}w_{j} x_{ij} \end{align*} \]
Each SKU is assigned the required number of storage locations: \[ \begin{align} \sum_{j=1}^{n^{\mathrm{storage}}} x_{ij} = S_i, \quad i = 1,2,\ldots,n^{\mathrm{SKUs}} \\ \end{align} \]
Each storage location is assigned only one SKU: \[ \begin{align} \sum_{i=1}^{n^{\mathrm{SKUs}}} x_{ij} = 1, \quad j = 1,2,\ldots,n^{\mathrm{storage}} \\ \end{align} \]
Binary domain: \[ \begin{align} \quad & x_{ij} \in \{0,1\}, \quad i = 1,2,\ldots,n^{\mathrm{SKUs}}, \quad j = 1,2,\ldots,n^{\mathrm{storage}} \end{align} \]
The COI policy can be summarized as follows:
Consider two SKUs (\(a\), \(b\)) and three storage locations (1, 2, 3). SKU \(a\) demands 1 storage location (\(S_a = 1\)), and SKU \(b\) demands 2 storage locations (\(S_b = 2\)). The I/O point \(p\) is at the leftmost side of the warehouse, such that \(d_{p1} = 1\), \(d_{p2} = 2\), and \(d_{p3} = 3\). How should the items be allocated to minimize travel costs between the I/O point and the locations under a COI policy?
| I/O | 1 | 2 | 3 |
| 1 | 2 | 3 | |
|---|---|---|---|
| I/O | 1 | 2 | 3 |
| a | b | |
|---|---|---|
| I/O | 20 | 10 |
| a | b | |
|---|---|---|
| I/O | 1 | 1 |
SKUs are grouped into classes.
Typically, in a warehouse:
Each class is assigned a dedicated storage area.
Item classification:
A, B, or C according to their activity level.A close to the I/O point, class B in the next closest locations, and class C farther away.C (0%–5%)B (5%–20%)A (20%–100%)Warehousing - M-IEM - Breno A. Beirigo