Decision Intelligence Platform

Rule Solver – Constraints with Probabilities

RuleSolver 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 “FlyingAnimalsWithProbabilities” with the following decision variables:

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.

RuleSolver supports the standard decision table column “SolverPostConstraintsWithProbabilities” with two sub-columns “Constraint Expression” and “Probability” like in the above example. Here is another example 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.