Operational business problems can be defined by a set of decision variables and a set of rules that specify relationships between these variables – see the formal definition. This definition considers a decision as a solution of such a problem, but it doesn’t assume anything about ‘HOW’ how decisions will be produced. It means decisions can be found by applying any rule engine, a DMN engine, a constraint or MIP solver, a custom piece of software written in any programming language, a manually provided expert’s decision, or their various combinations.
When a problem specifies an optimization objective, optimal decisions that minimize/maximize this objective can be found. Recently, I concentrated on such business problems and considered several examples of decision models which include various optimization components. Usually, optimization problems require deep understanding of optimization techniques such Constraint Programming (CP) or Linear Programming (LP). However, my goal was to investigate what can be done by business people and where the involvement of optimization experts is necessary. So, I tried to split the problem representation into two parts:
- Business Problem: specifies pure business requirements, creates a business decision model that will prepare necessary data for the optimization part;
- Optimization Problem: defines optimization variables and constraints and uses off-the-shelf constraint or linear solver to find the optimal solution of the problem.
The following examples show 3 decision optimization models that demonstrate an integrated use of rule engines and CP/LP solvers:
- Very simple problem: “Vacation Days“
- More complex problem: “Flight Rebooking“
- Complex problem: “Balanced Assignment“