Integrated Use of Rule Engines and Constraint/Linear Solvers

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:

  1. Very simple problem: “Vacation Days
  2. More complex problem: “Flight Rebooking
  3. Complex problem: “Balanced Assignment



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.