Rule Solver™
Home Product Company Contact 
 Integrating BR with Optimization techniques


Home
News
Overview
Examples
Methodology
Components
Rule Repository
Rule Templates*
Architectures
Downloads
Documentation
Step-By-Step*
Support
Add-Ons
Fun Lab*
Jump-Start
Inside Track
Events
What People Say

 

 

   

 

 

Solving Optimization Problems                      Live Demo (Play & Learn)

For real-world problems where many alternatives are available it is too tedious or just impossible to create (and maintain!) thousands of rules to cover every possible combination of problem parameters.  At the same time, Optimization is a well-known technology for calculating the best possible utilization of resources (e.g., people, time, processes, vehicles, equipment, raw materials, supplies, capacity, securities, etc.) needed to achieve a desired result (minimum cost, minimum process time, maximum profit).  An optimization problem is specified as an objective function and a set of constraints over some variables.  A solution to the problem is a set of values for the variables that satisfies the constraints and minimizes/maximizes the objective function.  Here are examples of optimization problems:

  1. Selecting a product such as a travel package, calling plan or banking service that fits a customer needs/profile in the best way

  2. Finding an optimal combination of insurance discounts/surcharges

  3. Assigning the best available resources while scheduling jobs with multiple constraints and preferences.

More real-world examples and a combined use of Rule, Optimization and Workflow Engines were described in this BRForum-2002 presentation. Today an integrated use of BR and Optimization techniques is especially important to address Online Decision Support problems such as online reservation, services scheduling, offer generation, etc.  These online problems are characterized by frequently changing constraints and multiple alternatives with a very limited time to find a close to optimal solution. In all these situations, it makes sense to let business rules to define the search space and then to apply an optimization technique to find the best possible alternative.

Rule Solver    

Modern optimization technology often involves techniques from several disciplines including operations research, artificial intelligence and mathematical logic.  Constraint Programming, Linear and Integer Programming are among the most popular optimization techniques.  OpenRules includes a special component called a Rule Solver that applies these techniques to solve optimization problems defined in the rules-based environment.

 

The following schema 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.

Optimization Techniques

OpenRules uses two major optimization techniques in its Rule Solver implementation:

bullet CP: Constraint Programming
bullet LP: Linear Programming

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:

bulletInteger, Boolean, floating-point constrained variables, and collections of constrained objects
bulletMajor arithmetic, logical and global constraints, and constrained expressions
bulletEfficient event notification and constraint propagation mechanisms
bulletScheduling objects (activities, resources) and constraints on them
bulletPre-defined search algorithms
bulletAbility to write problem-specific constraints and search algorithms.

The current version of the Rule Solver may work with different open source or commercial Java-based constraint solvers including: 
bulletChoco™
bulletILOG JSolver™.

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 may work with two major products:
bulletGLPK™, an open-source GNU Linear Programming Kit
bulletILOG 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.

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.

Key Benefits

bulletOptimized applications generate solutions faster than any other software
bulletOptimization automates your solution process and verifies that the solution adheres to your business rules
bulletOptimization dramatically improves business flexibility, responsiveness to changing circumstances, and ability to test "what if" scenarios
bulletOptimization focuses decisions and resources on business priorities

Optimization Engines Development

OpenRules 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 info@openrules.com.

 



News | Overview | Examples | Methodology | Components | Rule Repository | Rule Templates* | Architectures | Downloads | Documentation | Step-By-Step* | Support | Add-Ons | Fun Lab* | Jump-Start | Inside Track | Events | What People Say | Legal
Copyright © 2004-2008 OpenRules, Inc. All rights reserved