Improve Productivity: How to Optimize Scheduling of Products
Business Problem
In manufacturing and production planning use cases, we often come across problem statements to solve for optimal product sequence on a production line. As different combinations of products can have different changeover times, a sub-optimal product sequence can impact the productivity of the production line. Changeover time is defined as the cleanup and/ or setup time required to switch from one product to another. Even with a limited number of products (4 products in the example below), there can be a large number of possible sequences. In this article, we will go through an approach to arrive at an optimal production sequence using optimizer functionality in Anaplan.
Approach
Finding optimal product sequence can be quite complex given the nature of the problem:
- The sequence to be determined is dynamic in nature and will depend on the values of changeover time.
- A changeover matrix is essentially the product dimension transposed on itself. However, we cannot use the same dimension twice in the same module.
- The problem is non-linear in nature.
The approach to solving the problem includes the following:
- Transform the changeover matrix to a format suitable for Anaplan is key. In order to do this, a generic list of changeover placeholders is created. Using this list and the product list, we can store the changeover time between two products in sequence.
- A block approach to scheduling is used for scheduling the products. The blocks are not of the same time duration. Only one product can be scheduled in each block. This will enable us to determine the schedule of products.
- Identifying changeover is a key part of assigning the changeover time and subtracting the same from the overall available production time. This is done using linearization of the multiplication of two variables. (refer to Demystify non-linear optimization: Episode 2)
- Once the changeover time is determined, the production time is added to the same and assessed against the available capacity.
- At the same time, we need to make sure that the demand for the products is satisfied. For this, we will try to reduce the unmet demand for products. Changeover time should also be part of the objective function. This is to ensure optimal changeover even when there is spare capacity.
Configuration
All the input modules need to be created first. The two input modules needed are:
- “Product Properties” to store product demand and throughput
- Changeover matrix to store possible previous product against each product and associated changeover time. C1, C2, C3 are members of the changeover list created.
Refer to the blueprint view for the formulas and structure of the optimizer. The configuration for the optimizer is as follows:
- Identify product scheduled: Variable V01 and constraint C01, C02.
- Identify previous product: Variable V02 and constraint C03.
- Changeover Calculation: Variables V03, V04 and constraints C04, C05, C06, C07.
- Changeover Time Calculation: Variable V05 and constraint C08.
- Changeover Time by Block: Variable V06 and constraint C09.
- Production Quantity & Time: Variables V07, V08 and constraint C10.
- Demand & Capacity: Variables V09, V10 and constraints C11, C12, C13, C14, C15.
- Objective: Minimize the sum of unmet demand penalty and changeover time.
Outcome
Once the optimizer action is configured, the output should reflect the production sequence with minimum changeover time associated. In the below screenshot, the overall available time was 48 hours/ 2,880 minutes and the sequence chosen was Product 2 - Product 3 - Product 4 - Product 1 depending on the changeover times used as an input.
Conclusion
Although the example above focuses on the scheduling of products on a production line, the same logic can have applications in similar types of problem statements. Happy to hear your thoughts on how this can be applied in your business scenario!