Constraint Optimization Programing Model
Model able to generate a production plan for a week given a set of orders that minimizes the monetary loss .
The plan minimizes the money loss generated by the scraps for fruit and mix yogurt types and the time from changing fruits.
- Yogurt quantities are computed in minutes of work using the kg and the speed of machines
- When starting an order, it starts on a single machine and does not stop until it is finished.
- Yogurt quantities are converted to the corresponding money loss
- The sum of the different money losses is minimized
Constraint Optimization Programming (COP) is a computational approach for solving optimization problems that involve constraints on the variables. This COP model is focus on generating a production plan for a week given a set of orders that minimizes scraps and the washings of the machines reducing the monetary loss.
The problem has been modelled and solved using Minizinc. This language allows us to build restrictions and optimizations such as:
- A machine can only make the yogurts that are compatible.
- A machine cannot switch from a certain yogurt type to another type without a stop to clean in between.
- All the orders must be completed before the deadline
- Maximize the amount of yogurt produced per week
- Minimize the time a machine is down
- Reduce the workload of employees
This model has been implement within the framework of knowlEdge project for validating on of the pilots: Parmalat. Parmalat is an Italian leading company in the milk market in Italy and part of the Lactalis Group. It is accessible through a REST API.
As input, the model should receive the information related to the factory:
- List of machines
- List of yogurt types
- Compatibility machine-yogurt
- Cleaning times machine-yogurt-yogurt
In addition it should receive the infomration relative to the production to be sheduled:
- List of orders id
- yogurt quantities
- deadline in minutes
As a result, for every scheduling request the model finds a list of solutions, for each one it returns the start and end times for each order and the final assignment machine-order. Given that the problem at hand is NP-hard, indicating the complexity of finding an optimal solution, the utilization of search annotations becomes crucial for effectively tackling Constraint Optimization Problems (COP) and NP problems within MiniZinc. For that purpose, several search annotations have been used:
- Restart lubby(100): allow parallel execution and non blocking values for search variables.
- Search annotations to guide the search using the start_time.
HLEG [102]
HLEG [102])