OpenRules Rule Solver is an open-source tool that adds the power of Constraint and Linear Programming to Business Decision Modeling. It extends OpenRules Decision Manager to support Declarative Decision Modeling and Decision Optimization.
You may look at multiple decision models from Simple Arithmetic Problems to Smart Investments to see how Rule Solver helps define business optimization problems and produce their optimal solutions. One such decision model was created by our intern to ponder the DMCommunlity Challenge “Rental Boats“.
Here is the problem description:
The complete declarative decision model for this optimization problem is described here. I like how supporting business decision variables have been defined using this standard OpenRules decision table which hopefully is intuitive enough without additional explanations:
Then unknown decision variables and relationships between them (constraints) were defined using predefined RuleSolver’s columns such as “SolverDefineVariables”:
To express the problem constraints we needed to define the arrays of unknown decision variables “Sleekboat Variables” and “Racer Variables”:
This is the standard OpenRules decision table with an iteration loop over Boats. For each Boat, it uses Boat’s Type (“Speedhawk”, “Silverbird”, “Catman”, or “Classy”) to add a new Solver’s decision variable to the proper array of yet unknown variables. Then we can post the major problem constraints using this decision table:
I believe these constraints are self-explanatory as well.
We don’t need to tell our decision engine how to solve the problem. Instead, we simply define the optimization objective as “Total Profit”
and use the standard RuleSolver method “SolverMaximize”:
When we executed this decision model using the standard file “test.bat”, it produced the optimal solution:
I especially like that building and executing the decision model all the time we remain inside the standard OpenRules Decision Modeling environment oriented to subject matter experts. In particular, it didn’t require any extra effort (just one click!) to deploy this model as a RESTful decision service, and test it with POSTMAN:
Thus, adding RuleSolver to OpenRules Decision Manager allows our customers to solve complex optimization problems within the standard decision modeling platform and without programming.









