Improve Warehouse Productivity using Order Batching with Python

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

Samir Saci
Towards Data Science

--

Improve Warehouse Productivity using Order Batching with Python
Improve Warehouse Productivity using Order Batching with Python — (Image by Author)

In a Distribution Center (DC), walking time from one location to another during the picking route can account for 60% to 70% of the operator’s working time.

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

(1) Scenario 1: Picking routes with 1 order picked per wave — (Image by Author)

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 Traveling Salesman Problem (TSP) answering the question:

“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 determines the minimum route in the picking process to prepare one or several orders.

💌 New articles straight in your inbox for free: Newsletter
📘 Your complete guide for Supply Chain Analytics: Analytics Cheat Sheet

I. What is Wave Picking?
E-Commerce Warehousing Operations: Improve the picking productivity
1. Assumptions
Picking locations, cart size and operational conditions
2. Initial Picking Strategy
What if the operator prepares only 1 order per wave ?
II. Test several Optimization Algorithms
1. Warehouse Layout with storage location mapping
Each location (x, y) coordinates w
2. Order lines from your Warehouse Management System (WMS)
Data source coming from the system
3. Functions for calculating Picking Route distance
A custom function to measure distances considering the alleys
4. Functions for creating order waves
How to group orders per wave?
III. Results & Next Steps
1. Results of the Initial Experiment
How much distance reduction if we group orders in the same wave?
2. Next Steps: Exploring other batching strategy
Like grouping orders per clusters of locations or using pathfinding algo
3. Statistical Approach: What is the impact of other parameters?
Lean six sigma: a statistical approach to process improvement

💡 Follow me on Medium for more articles related to 🏭 Supply Chain Analytics, 🌳 Sustainability and 🕜 Productivity.

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

(2) Warehouse Picking Carts — (Image by Author)
  1. Items Dimensions: Small and light dimensions items
  2. Picking Cart: lightweight picking cart with a capacity of 10 orders
  3. Picking Route: Picking Route starts and ends at the same location

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

  • Locations: Orders #1 and #2 have common picking locations
  • Zones: orders have picking locations in a common zone
  • Single-line Orders: items_picked/walking_distance efficiency is very low
(3) Scenario 2: Wave Picking applied to Scenario 1 — (Image by Author)

Initial Picking Strategy

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 will 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.

You can find the full code in my GitHub repository: Link
My portfolio with other projects: Samir Saci

💡 Follow me on Medium for more articles related to 🏭 Supply Chain Analytics, 🌳 Sustainability and 🕜 Productivity.

II. Test several Optimization Algorithms

Warehouse Layout with storage location mapping

(5) Warehouse Layout with 2D Coordinates — (Image by Author)

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.

Order lines from your Warehouse Management System (WMS)

(6) Database Schema — (Image by Author)

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, ..).

Functions for calculating Picking Route distance

Function 1: Calculate the distance between two picking locations

(5) Different routes between two storage locations in the warehouse — (Image by Author)

This function will calculate the walking distance from points 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

(6) Next Storage Location Scenario — (Image by Author)

This function will 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 create your picking route from a set of orders to prepare.

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

Code

Functions for creating order waves

Function 1: Create batches of n orders to be picked at the same time

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

Code

Function 2: Listing picking locations of wave_ID picking route

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

Code

💡 Follow me on Medium for more articles related to 🏭 Supply Chain Analytics, 🌳 Sustainability and 🕜 Productivity.

III. Results and Next Steps

Results of the Initial Experiment

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

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

  • Orders Waves: Orders are grouped by chronological order of receiving time from OMS ( TimeStamp)
  • Picking Route: The picking route strategy follows the Next Closest Location logic

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

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

Code

(8) Results for 5,000 order lines with a ratio from 1 to 9 orders per route — (Image by Author)

Next Steps: Exploring other batching strategies

This solution is far from being the most optimal.

  • We can group orders by geographical clusters of Picking Locations to reduce pickers’ walking distance.
  • The next closest location strategy has its limits that can be easily pointed out by picking route records

In the next part, we will conduct a detailed analysis of this first solution to understand the limits and how to improve them.

Statistical Approach: What is the impact of other parameters?

Lean Six Sigma (LSS) is a stepwise approach to continuous improvement following 5 steps (Define, Measure, Analyze, Improve and Control) to improve processes.

I have a series of three articles in which I share three operational cases using LSS statistical methods to solve a problem:

  • Lean Six Sigma with Python — Kruskal Wallis Test
    Assess the effectiveness of warehouse operators by comparing the productivity of two samples of operators.
  • Lean Six Sigma with Python — Logistic Regression
    How much bonus do you need to provide to warehouse operators to reach your productivity targets?
  • Lean Six Sigma with Python — Chi-Squared Test
    Find the root cause of the shortage of drivers impacting your transportation network with a statistical test.

About Me

Let’s connect on Linkedin and Twitter, I am a Supply Chain Engineer using data analytics to improve logistics operations and reduce costs.

If interested in Data Analytics and Supply Chain, look at my website.

--

--

Top Supply Chain Analytics Writer — Follow my journey using Data Science for Supply Chain Sustainability 🌳 and Productivity ⌛