Order picking optimization in warehouses and supermarkets with OptaPlanner
source link: https://blog.kie.org/2021/12/order-picking-optimization-in-warehouses-and-supermarkets-with-optaplanner.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Order picking optimization in warehouses and supermarkets with OptaPlanner
During the pandemic year, we saw many stores and supermarkets adapt their business in several ways. Sometimes these changes occurred from day to day.
For example, as a consequence of the sharp decrease in customer physical visits, online orders increased exponentially.
How many of them were prepared to deal optimally with this increase…?
In this blog post, we present the new OptaPlanner order-picking quickstart that shows how to complete online orders in an optimized way!
The order picking problem
The order picking problem consists of a set of orders that need to be prepared for delivery to various customers. Each order is composed of a set of order items (the requested products). These products are located on shelves in the warehouse or in the supermarket and occupy a specific volume of space.
To complete the orders, there is a set of available trolleys that follow a calculated path in the supermarket and pick the order items. One order item is picked on each step of this path.
The location of the products within the warehouse determine the path of the trolley, and the space in each trolley is divided into a number of buckets with a specified capacity.
The goal of the order picking problem is to calculate a picking plan that provides the path for each trolley and considers the following constraints:
- The distance to travel by the trolleys is minimized.
- All the order items must be picked.
- Items from different orders mustn’t be mixed in the same bucket, so enough buckets must be reserved for each of the orders that will be prepared on the same trolley.
- The bucket’s capacity is not exceeded by the total volume of the items on it.
- The splitting of an order into different trolleys should be minimized.
The following image shows a simplified view of the order picking problem input data and calculated picking plan:
Warehouse structure
To formulate the problem, the warehouse is defined as a set of shelves organized into columns and rows.
Products are located on the left or right side of a specific shelf, on a specific row. The shelf, side, and row determine the product location.
The new quickstart
Project structure
The following image shows the maven project that comprises the quickstart:
The server side code is in the src/main/java
directory and is organized in four packages:
@PlanningSolution
and the @PlanningEntity
.solverContains the ConstraintProvider
implementation.restContains the REST API used by the client-side code to start and stop solving, and to retrieve the best solution to display.The client code is in the src/main/resources/META-INF/resources/
directory.
This directory has an index.html
file that contains the basic HTML structure and loads the app.js
file that calls the server’s REST API and makes the web page dynamic.
Planning domain model
Order picking constraints
The order picking constraints are implemented using the Constraint Streams API, and they can be found in the org.acme.orderpicking.solver.OrderPickingConstraintProvider
class.
The following constraints are provided:
The conjunction of the minimizeDistanceFromPreviousTrolleyStep
constraint applied to every step on the path, and the minimizeDistanceFromLastTrolleyStepToPathOrigin
constraint, enforces the entire path minimization.
Execution explained
When you first start the order picker, you will see that no picking plan or paths are calculated. No worries, it’s perfectly fine because the solver isn’t executed yet.
Let’s take a moment to take a look at the initial data set before starting the solver. You use the Unassigned tab to do this.
Unassigned entities
The information about the unassigned trolleys and orders is shown on the different sub-tabs.
Before starting the solver, you can view all of the elements in the initial data set on this tab. However, as soon the solver starts solving, you will see that elements start disappearing from this tab. Good news, they’re becoming part of the picking plan!.
Unassigned trolleys
Unassigned Order_1
Solver execution
Click the Start button to start the solver. When the solver is started, you’ll see that the Picking plan tab will start showing the information about the calculated plan.
Trolley navigation
Use the Map tab to view a representation of how the different trolleys navigate the warehouse according to the calculated paths.
Recommend
-
74
What is the fastest way to read a getter from a Java class without knowing the class at compilation time? Java frameworks often do this. A lot. And it can directly influence their performance. So let’s benchmark different approaches, such as...
-
49
OptaPlanner finally supports multithreaded incremental solving.The speedup is spectacular. Even with just a few CPU cores, it triples the score calculation speed.See the results below. To activate it, a single extra line in the configuration suf...
-
36
Over the years, politicians have redrawn electoral voting lines to gain an unfair advantage.This has led to district boundaries with shapes that have no obvious pattern or reason other than political gain.When districts are redrawn you can sway...
-
18
A BPMN diagram models a Business Process. When the BusinessProcess involves optimization at some step,OptaPlanner can help you quickly find an optimal solution.Now with Kogito, it is easier than ever before to integrateOptaPlanner into your BPMN...
-
9
May 23, 2021 ...
-
10
Swedish Co-op supermarkets shut due to US ransomware cyber-attackBy Joe TidyCyber security reporter, BBC NewsPublished55 minutes agoimage copyrightGustav Ceder
-
4
Wednesday, 13 October 2021 00:01 iTWireTV interview: eftpos announces eQR code payments platform with support of big Aussie banks, supermarkets and fintechs By
-
6
OptaPlanner documentation turns over a new leaf OptaPlanner documentation turns over a new leafFor years,
-
6
最近一段时间,因为忙于【易排(EasyPlan)规划平台】的设计与开发工作,平台的一些功能设计,需要对OptaPlanner的各种特性作更深入的研究与应用。慢慢发现,OptaPlanner进入8.X版本之后,变化还是挺大的。对于我个人的项目、平台及咨询工作,这些变化中,大部分...
-
4
Dennis Komolikow April 6, 2023 1 minute read...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK