Open Your Business Rules!                     
Rules-based Operational Decision Services

Constraint Programming

 

JSR-331 CP API Standard
Modeling and Solving Scheduling and Resource Allocation Problems
Rule Solver™ User Manual

Constraint Programming

Today Constraint Programming (CP) has become a leading technique for solving complex decision support problems in manufacturing, telecom, logistics, finance, and other industries. Among such problems are job scheduling, resource allocation, planning, product configuration, and other optimization problems with many business constraints. CP provides a great foundation for the development of smart "optimization engines" to support different e-businesses.

There are multiple commercial and open source constraint solvers available on the market today. Usually a constraint solver supports the following features:

  1. Integer, Boolean, floating-point constrained variables, and collections of constrained objects

  2. Major arithmetic, logical and global constraints, and constrained expressions

  3. Efficient event notification and constraint propagation mechanisms

  4. Scheduling objects (activities, resources) and constraints on them

  5. Pre-defined search algorithms

  6. Ability to write problem-specific constraints and search algorithms.

JSR-331 "Constraint Programming API"

The latest version of the Rule Solver™ is based on the newest version of the JSR-331 "Constraint Programming API", a Java Community Process (JCP) standard that received the JCP award as "The Most Innovative JSR of 2010". OpenRules CTO Dr. Jacob Feldman is the Specification Lead of this JSR. JSR-331 allows a user to switch between different underlying constraint solvers without any changes in the application code. In particular, the current version of JSR-331 works with the following open source constraint solvers:

You may download JSR-331 from http://openrules.com/jsr331.

Linear and Integer Programming

Linear programming (LP), integer programming (IP), and mixed linear integer programming (MIP), offer a highly efficient implementation of optimization techniques based on the well known simplex algorithm.

OpenRules® utilizes the following LP/MIP products:

  1. GLPK™, an open-source GNU Linear Programming Kit

  2. ILOG CPLEX™, a market leader among commercial linear and integer programming tools.

GLPK is an open source package intended for solving linear programming, mixed integer linear programming, and other related problems.

ILOG CPLEX™ delivers high-performance, robust, flexible optimizers for solving large-scale linear, mixed-integer and quadratic programming problems in mission-critical resource allocation applications.

Other LP/MIP products also can be used.

The hybrid use of constraint and linear engines provides a very powerful approach for solving real-world problems with huge search space and a limited response time.

 

Integrating Rules Solver and Rule Engine

The following diagram describes how the integrated use of Rule Solver™ and Rule Engine can be applied to Online Decision Support:

 

The combination of Rule Engine and Rule Solver allows developers to create Web-based decision support engines with unprecedented power. While business rules could be used to define and modify a business problem, the proper optimization model can be expressed in terms of constraints and solved by a powerful optimization engine.

Key Benefits

  • Optimization solves complex decision support problems when a pure business rules technique stops short

  • Optimized applications generate solutions faster than any other software

  • Optimization automates your solution process and verifies that the solution
    adheres to your business rules

  • Optimization dramatically improves business flexibility, responsiveness to
    changing circumstances, and ability to test "what if" scenarios

  • Optimization focuses decisions and resources on business priorities

Optimization Engines Development

OpenRules, Inc. provides professional services to assist customers in the development of optimization engines integrated with different rule engines. If you are interested, please contact us at support@openrules.com.

Top