Decision Intelligence Platform

Rule Solver – Constraints with Probabilities

Rule Solver allows creators of business decision models to post constraints that can be violated based on their relative importance (probability). Let’s consider the sample problem “FlyingAnimals” that defines two constraints:

Now we can post the following constraints with relative importance, some of which can override the others:

Note that this is a multi-hit decision table and under certain conditions multiple constraints (even contradictory ones) will be posted. The first two rules with the probability ALWAYS will be posted as regular “hard” constraints that cannot be violated. All other rules are posted with probabilities, meaning they can be violated. When you run the standard method SolverFindSolution, it should automatically decide which constraints will be violated, making sure that the total constraint violation is minimal.

RuleSolver supports the following “Probability” values with their relative violation costs:

NEVER(0),
VERY_LOW(10),
LOW(25),
BELOW_MID(35),
MID(50),
ABOVE_MID(60),
HIGH(75),
VERY_HIGH(90),
ALWAYS(100);

The probability ALWAYS means that this is a regular “hard” constraint that cannot be violated. The probability NEVER means that this constraint never can be satisfied but its opposite constraint should be satisfied. For example, if you create a constraint “x =5” and post it with probability NEVER, it means that the opposite constraint “x != 5” should be satisfied.

All other probability values allow the constraint to be violated with certain penalties. For instance, probability MID invokes a higher penalty to compare with probability LOW, but a lower penalty to compare with HIGH.

The standard method “SolverPostConstraintsWithProbabilities” supports two forms:

  1. With two sub-columns “Constraint Name” and “Probability” like in the above example, when constraints were already defined.
  2. With five sub-columns when constraints are defined and posted inside the same decision table. Here is the example of defining and posting constraints with probabilities from the project “MapColoringWithProbabilities”:

Here the rules 1-6 post hard constraints and rules 7-9 post constraints with their relative importance.

The regular method Solve:

will call the standard method “SolverFindSolution” to find a solution making sure that the total constraint violation is minimal.