



















|
 |
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:
-
Selecting a product such as a travel package,
calling plan or banking service that fits a customer needs/profile
in the best way
-
Finding an optimal combination of insurance
discounts/surcharges
-
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:
 |
CP: Constraint Programming
|
 |
LP: Linear 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:
 | Integer, Boolean, floating-point constrained variables, and collections of
constrained objects |
 | Major arithmetic, logical and global constraints, and constrained
expressions |
 | Efficient event notification and constraint propagation mechanisms
|
 | Scheduling objects (activities, resources) and constraints on them
|
 | Pre-defined search algorithms |
 | Ability 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:
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:
 | GLPK™, an
open-source GNU Linear Programming Kit |
 | 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.
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.
 | 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 |
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.
|
 |

|