Abstract:
A method and apparatus for minimizing violations of rules in a rule-based system is disclosed. In one embodiment, the method and apparatus is implemented with software tools.

Description:
[0001]    The present application claims priority to the following provisional filed applications entitled Minimization of Business Rules Violations, filed on Aug. 16, 2001, serial No. ______; entitled Hybrid Use of Rule and Constraint Engines, filed on Jun. 25, 2001, serial No. 60/300,951; entitled Consistency Validation for Complex Classification Rules, filed on August 16, serial No. ______, all of which are incorporated herein by reference. 
     
    
     
       FIELD OF THE INVENTION  
         [0002]    The present invention relates generally to the field of expert systems.  
         BACKGROUND OF THE INVENTION  
         [0003]    Business rules are statements of business policies and procedures that drive day-to-day business activity. Rule-based technology provides the ideal architecture for implementing flexible, easy-to-maintain business rule applications, because such applications keep the rules separate from the application code. Rule-based technology is based on rule engines, well known to those skilled in the art as Rete engines and used by most expert systems since 1982. Specialized rule languages and their supporting rule engines are rapidly becoming a must-have element within e-commerce platforms and B2B/B2C applications.  
           [0004]    However, in real-world applications, it is a rare situation where all active rules are satisfied. As a result, practical rules-processing systems seek to find business solutions that satisfy the most important rules, instead of reporting rules violations. Examples of such problems may be found almost in any rule processing system.  
           [0005]    Consider, for example, a typical e-business application familiar to any online trader: a portfolio management system. This system contains a rules-processing subsystem that allows a financial guru to specify business rules, such as, for example, “Allocation of Utility stocks should be within 5 percent to 8 percent,” “Do not buy European stocks except from the UK,” and other rules of a similar nature. Such a rules-processing subsystem assists the portfolio manager to keep managed portfolios intact with these rules during securities trading. The rule engine can naturally inform the user about a violation of any rule. What it cannot do is to recommend the best combination of trading orders that can minimize total rules violations. If consideration is given to the relative importance of different rules and some limitations for the rules violation (e.g., “do not violate this rule for more than 3 percent”), a complex optimization problem of potentially unlimited size will be described. This is a pure optimization problem, which cannot be resolved by the rule engine itself.  
           [0006]    As another example, consider a typical product configuration application: selection of the best calling plan or origination of the financial loan that fits the customer request in the best possible way. Each product (calling plan or loan) has a set of features and each customer could have its own set of requirements/preferences to the product (e.g., average number of peak minutes or minimal monthly payment). The products themselves and the customer preferences could be expressed in form of rules with different importance. In the real-world situations, usually it is not possible to find the exact match between the available and desirable features. It means some of the product configuration rules will be violated. The objective here is to configure such a product which satisfies the most important customer requirements, or in other words, to minimize the total violation of the configuration rules.  
         SUMMARY OF THE INVENTION  
         [0007]    A method and apparatus for minimizing violations of rules in a rule-based system is disclosed. In one embodiment, the method and apparatus is implemented with software tools. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0008]    [0008]FIG. 1 is a schematic diagram showing a functional scheme for minimizing rule violations according to one embodiment. 
     
    
     DETAILED DESCRIPTION  
       [0009]    An ability to be violated is an important attribute of any rule. Therefore, one may express the minimization of rule violations as a constraint satisfaction problem. In one embodiment, each rule is associated with one constrained expression that calculates the possible rule violation, as formulated in the following terms. Using the stockbroker example again, specifically:  
         [0010]    Entities:  
         [0011]    T={T 1 , T 2 , . . . , T t }−a set of rule templates.  
         [0012]    Some examples of the rule templates include:  
         [0013]    (a) Allocation of &lt;sector&gt; should be within &lt;min&gt;% and &lt;max&gt;%  
         [0014]    (b) Minimum number of &lt;peak/offpeak&gt; minutes should be no less than &lt;min&gt; 
         [0015]    Each template specifies a generic business rule with a set of the rule specific parameters.  
         [0016]    Rule Instances:  
         [0017]    Based on the rule templates, one could create rule instances, defined as shown in the expression 
           R   i   j   =R ( T   i   , par   i   j ) 
         [0018]    created from the template T i  by applying the parameter set par i   j .  
         [0019]    Some examples of rule instances include:  
         [0020]    R 1   1 =“Allocation of Technology should be within 20.00% and 30.00%” created from the template (a) by applying the parameter set par 1   1 ={sector=“Technology”, min=20.00, max 30.00} 
         [0021]    R 1   2 =“Allocation of Utilities should be within 0.00% and 10.00%” created from the template (a) by applying the parameter set par 1   2 ={sector=“Utilities”, min=0.00, max=10.00} 
         [0022]    R 2   1 =“Minimum number of peak minutes should be no less than 900” created from the template (b) by applying the parameter set par 2   1 ={peak/offpeak=“peak”, min=900} 
         [0023]    Each rule instance R i   j  has a weight w i   j , which could be considered as a relative “importance” of this rule: 
         0.0 &lt;=w   i   j &lt;=1.0 
         [0024]    Rules may be violated. The violation of any rule instance R i   j  could be expressed in one embodiment as a constrained integer or float expression violation i   j . In one embodiment, when all violations have been created, the optimization problem may be formulated and solved as shown in the following expression: 
         Σ i,j ( w   i   j *violation i   j )→min 
         [0025]    with constraints 
         violation i   j &lt;max_violation i   j  for all i,j. 
         [0026]    In one embodiment, the proposed problem definition and resolution may be accomplished using Exigen software products Exigen Rules™ and Exigen Constrainer™. In one embodiment, all rules could be created based on the rule templates.  
         [0027]    In one embodiment, one may use the Exigen Template Editor to create new or modify existing rule templates. The templates are in one embodiment presented in XML. The presentation part of the template is intuitive and does not require any special knowledge. In most situations, the end user does not touch the templates, and deals only with the rule instances. To express rule violations, in one embodiment one can use Exigen Constrainer™ symbolic constrained expressions directly in the rule language.  
         [0028]    Because the semantics of the rules are in one embodiment presented in the rule templates, the definition of the rules violation is independent of rule parameters. A functional scheme according to one embodiment is presented in FIG. 1. A rule engine  104  creates a constraint satisfaction problem. Then a constraint engine  105  solves the constraint satisfaction problem.  
         [0029]    Thus, the proposed approach and the supporting tools according to one embodiment allow users to solve the practical problem of the typical rule processing system: how to minimize rule violations. A key advantage of this approach is the ability to find the best practical solution in situations where not all active rules may be satisfied at the same time.  
         [0030]    It will be clear to a person knowing the art that the use of minimization of rules violation is not limited to stock trading and calling plans, but has vast other uses; for example, including but not limited to financial planning (both personal, corporate and government), insurance industry, telecom industry (e.g. for priority planning, data routing in bottleneck or emergency situations), power utilities, transport systems, merchandise distribution systems, etc.  
         [0031]    The processes and embodiments as described above can be stored on a machine-readable medium as instructions. The machine-readable medium includes any mechanism that provides (i.e., stores and/or transmits) information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.). The device or machine-readable medium may include a solid state memory device and/or a rotating magnetic or optical disk. The device or machine-readable medium may be distributed when partitions of instructions have been separated into different machines, such as across an interconnection of computers.  
         [0032]    While certain exemplary embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative of and not restrictive on the broad invention, and that this invention not be limited to the specific constructions and arrangements shown and described, since various other modifications may occur to those ordinarily skilled in the art.