# Improve Warehouse Productivity using Order Batching with Python

Design a simulation model to estimate the impact of several Single Picker Routing Problem strategies in your Picking Productivity

Design a simulation model to estimate the impact of several Single Picker Routing Problem strategies in your Picking Productivity

*Article originally published on Medium. *

In a ** Distribution Center (DC),** walking time from one location to another during the picking route can account for

*of the operator’s working time.*

*60% to 70%*Reducing this walking time is the most effective way to increase your DC overall productivity.

This series of articles aims to determine how to design a model to simulate the impact of several picking processes and routing methods to find optimal order picking by using the ** Single Picker Routing Problem (SPRP) **for a two-dimensional warehouse model (axis-x, axis-y).

** SPRP **is a specific application of the general

**answering the question:**

**Traveling Salesman Problem (TSP)**“Given a list of storage locations and the distances between each pair of locations, what is the shortest possible route that visits each storage location and returns to the depot ?”

SPRP is used to determine the minimum route in the picking process to prepare one or several orders.

## I. What is Wave Picking?

For this study, we will use the example of * E-Commerce type* DC where items are stored on 4 level shelves. These shelves are organized in multiple rows (Row#: 1 … n) and aisles (Aisle#: A1 … A_n).

### Assumptions

Small and light dimensions items**Items Dimensions:**lightweight picking cart with a capacity of 10 orders**Picking Cart:**Picking Route starts and ends at the same location**Picking Route:**

Scenario 1, the worst in terms of productivity, can be easily optimized because of

Orders #1 and #2 have common picking locations**Locations:**orders have picking locations in a common zone**Zones:**items_picked/walking_distance efficiency is very low**Single-line Orders:**

The first intuitive way to optimize this process is to combine these three orders in one picking route — this strategy is commonly called ** Wave Picking**.

### Learn more about Picking Productivity

We are going to build a model to ** simulate the impact of several Wave Picking strategies in the total walking distance** for a specific set of orders to prepare.

## II. Test several Optimization Algorithms

1. Warehouse Layout with storage locations mapping

Based on the actual warehouse layout, storage locations are mapped with 2-D (x, y) coordinates that will be used to measure walking distance.

Every storage location is linked to a Reference using **Master Data. (*** For instance, reference #123129 is located in coordinate (xi, yi)). *You can then link every order line to a geographical location for picking.

### 2. Order lines from your Warehouse Management System (WMS)

Order lines can be extracted from your ** WMS Database**, this table should be joined with the Master Data table to link every order line to a storage location and its (x, y) coordinate in your warehouse.

Extra tables can be added to include more parameters in your model like (Destination, Delivery lead time, Special Packing, ..).

### 3. Functions for calculating Picking Route distance

** Function 1: **Calculate the distance between two picking locations

This function will be used to calculate the walking distance from a point ** i (xi, yi)** and

**.**

**j (xj, yj)**** Objective:** return the shortest walking distance between the two potential routes from point i to point j.

Parameters

*y_low: the lowest point of your alley (y-axis)**y_high: highest point of your alley (y-axis)*

**Code**

** Function 2: **the Next Closest Location

This function will be used to choose the ** next location among several candidates **to continue your picking route.

** Objective: **return the closest location as the best candidate

*(**) We will see later that this choice will impact overall productivity.*

**Code**

** Function 3: **Create your picking route and calculate the total walking distance

This function will be used to create your picking route from a set of orders to prepare.

a list of (x, y) locations based on items to be picked for this route**Input:**an ordered sequence of locations covered and total walking distance**Output:**

**Code**

### 4. Functions for creating orders waves

** Function 1: **Create batches of

**orders to be picked at the same time**

**n**order lines data frame**Input:**, number of orders per wave*(df_orderlines)**(orders_number)*data frame mapped with wave number (Column:**Output:**), the total number of waves*WaveID**(waves_number)*

**Code**

** Function 2: **listing picking locations of wave_ID picking route

order lines data frame**Input:**and wave number*(df_orderlines)**(waveID)*list of locations i(xi, yi) included in your picking route**Output:**

**Code**

## III. Results and Next Steps

1. Results

After setting up all necessary functions to measure picking distance, we can now test our picking route strategy with picking order lines.

Here, we first decided to start with a very simple approach

orders are grouped by**Orders Waves:**from OMS**chronological order of receiving time***( TimeStamp)*picking route strategy is following the**Picking Route:**logic**Next Closest Location**

To estimate the impact of wave picking strategy on your productivity, we will run several simulations with a gradual number of orders per wave:

how much walking distance is reduced when the number of orders per route is increased?**Measure Total Walking Distance:**recording the sequence of locations per route for further analysis**Record Picking Route per Wave:**

**Code**

### 2. Next Steps

This solution is far from being the most optimal

- Orders can be grouped by
of Picking Locations to reduce pickers’ walking distance**geographical clusters**

strategy has its limits that can be easily pointed out by picking route records**Next closest Location**

In the next part, we’re going to conduct a detailed analysis of this first solution to understand what are the limits and how we can improve them.