OpenRules has announced that its redesigned Rule Solver™ is now JSR-331 compliant. Rule Solver™ is a long time available optimization component of OpenRules® BRMS that allows users to define and solve constraint satisfaction and optimization problems within a business rules environment.
Rules Solver™ includes JSR-331 based templates that allow business analysts to define their CSPs directly in Excel. For example, here is a rules table that defines a Sudoku problem:
An Excel user with simple copy-pastes defines rows, columns, and blocks. The rules table “postSudokuConstraints”with one AlDiff constraint does the entire work.
While JSR-331 does not include (yet!) a scheduling component, OpenRules added a simple package “javax.constraints.scheduler” that extends JSR-331 to handle scheduling and resource allocation problems. It allows a user to express a scheduling problem in terms of activities and resources. Activities may have unknown start, duration and end. Activities may require or produce different resources. Resources may have different types (e.g. recoverable like humans or consumable like money) and their limited capacities may vary over time. The package includes major temporal and capacity constraints specified in accordance with the JSR-331 requirements.
Rules Solver™ includes OpenRules-based templates for scheduling problems. For example, let’s consider 5 different orders (activities) that fire batches of bricks in the oven (a resource with limited capacities). Each order requires certain oven’s capacity as described in the following picture:
With Rules Solver™ a user can define the problem in the following Excel rules tables:
To solve the problem a user specifies the following main method (also in Excel):
Here are the results:
Solution:
A[0 — 1 –> 1) requires Oven[2]
B[3 — 4 –> 7) requires Oven[1]
C[5 — 4 –> 9) requires Oven[1]
D[5 — 2 –> 7) requires Oven[1]
E[11 — 4 –> 15) requires Oven[2]
You may read the proper user manual with a lot of examples at http://openrules.com/pdf/RulesSolver.UserManual.pdf and download and try the software from http://openrules.com/insideTrack.htm#RuleSolver.