Reducing the Cost of the Linear Growth Effect Using Adaptive Rules with Unlinking and Lazy Rule Evaluation

  • Mark ProctorEmail author
  • Mario Fusco
  • Davide Sottara
  • Tibor Zimányi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11230)


The match cost of Rete [8] increases significantly and approximately linearly with the number of rules [2]. A major part of that cost is the eager creation of cross products within the join nodes in an attempt to materialize rule instantiations. This paper builds on the idea of adaptive rules [1] using the unlinking of nodes, segments of nodes and rules to delay join attempts, which helps mitigate some aspects of the linear growth effect. By delaying the evaluation of a rule until after it’s linked and restricting the propagation to a single path, a lazy goal-driven evaluation behaviour is introduced. The algorithm also preserves node sharing by organising the network into segments and paths of segments; with memory now at node, segment and path levels. This paper presents the design and implementation of this work within the popular Open Source Drools rule engine. Drools also provides a baseline Rete implementation, without these enhancements, against which this work can be benchmarked. The evaluation of the results shows positive improvements over Rete, with no downsides.


RETE Production rules Pattern matching Rule engines Refraction 


  1. 1.
    Acharya, A.: scaling up production systems: issues, approaches and targets 9(01), 67 (1994). Scholar
  2. 2.
    Acharya, A., Tambe, M.: Collection oriented match (1993)Google Scholar
  3. 3.
    Brownston, L., et al.: Programming Expert Systems in OPS5. Addison-Wesley Publishing Co. Inc., Reading (1985)Google Scholar
  4. 4.
    Bassiliades, N., Antoniou, G., Vlahavas, I.: DR-DEVICE: a defeasible logic system for the semantic web. In: Ohlbach, H.J., Schaffert, S. (eds.) PPSWR 2004. LNCS, vol. 3208, pp. 134–148. Springer, Heidelberg (2004). Scholar
  5. 5.
    Browne, J.C., et al.: A new approach to modularity in rule-based programming. In: 1994 Proceedings of the Sixth International Conference on Tools with Artificial Intelligence, pp. 18–25. IEEE (1994)Google Scholar
  6. 6.
    Doorenbos, R.B.: Combining left and right unlinking for matching a large number of learned rules (1994)Google Scholar
  7. 7.
    Doorenbos, R.B.: Production matching for large learning systems (1995)Google Scholar
  8. 8.
    Forgy, C.L.: Rete: a fast algorithm for the many pattern/many object pattern match problem. Artif. Intell. 19(1), 17–37 (1982). Scholar
  9. 9.
    McDermott, J., Newell, A., Moore, J.: The efficiency of certain production system implementations (63), 38 (1977).
  10. 10.
    Miranker, D.P.: TREAT: a better match algorithm for AI production systems; long version. Technical report, Austin, TX, USA (1987)Google Scholar
  11. 11.
    Miranker, D.P., Brant, D.A., Lofaso, B.J., Gadbois, D.: On the performance of lazy matching in production systems, pp. 685–692 (1990)Google Scholar
  12. 12.
    Nayak, P.P., Gupta, A., Rosenbloom, P.S.: Comparison of the rete and treat production matchers for soar, pp. 693–698 (1988)Google Scholar
  13. 13.
    Perlin, M.: Arc consistency for factorable relations. Artif. Intell. 53(2–3), 340–345 (1991)MathSciNetGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  1. 1.Department of Electrical and Electronic EngineeringImperial College LondonLondonUK
  2. 2.Red Hat Inc.RaleighUSA
  3. 3.Biomedical Informatics Department.Arizona State UniversityScottsdaleUSA

Personalised recommendations