Abstract
Rules are segments of knowledge which are generally conveyed as, “when some conditions are evaluated as true, then perform some tasks". A rule engine is basically an advanced software system responsible for rules evaluation and execution. While it is easy to add rules, problems arise when their numbers tend to explode exponentially over time due to new business scenario needs. It eventually becomes more complex when an enterprise information system, having configuration model powered by a declarative rule engine, needs to be maintained. Performance significantly degrades when there are thousands of rules, since the engine must figure out every time which rule should be fired when large number of facts arrive for processing, thus rapidly choking up the system. Objective of this paper is to use machine learning techniques to optimize declarative business rules system when the number of rules increases creating performance degradation and complexity issues.
References
C. L. Forgy, “Rete: A fast algorithm for the many pattern/many object pattern match problem,” Artif. Intell., vol. 19, no. 1, pp. 17–37, Sep. 1982, doi: 10.1016/0004-3702(82)90020-0.
H. Dong, J. Fan, and L. Zhang, “An improved rete algorithm based on double hash filter and node indexing for distributed rule engine,” IEICE Trans. Inf. Syst., vol. E96-D, no. 12, pp. 2635–2644, 2013, doi: 10.1587/transinf.E96.D.2635.
Y. W. Wang and E. N. Hanson, “A performance comparison of the Rete and TREAT algorithms for testing database rule conditions,” Proc. - Int. Conf. Data Eng., pp. 88–97, 1992, doi: 10.1109/icde.1992.213202.
F. Ongenae et al., “Towards computerizing intensive care sedation guidelines: Design of a rule-based architecture for automated execution of clinical guidelines,” BMC Med. Inform. Decis. Mak., vol. 10, no. 1, 2010, doi: 10.1186/1472-6947-10-3.
S. Chattopadhyay, A. Banerjee, and N. Banerjee, “A scalable rule engine architecture for service execution frameworks,” Proc. - 2016 IEEE Int. Conf. Serv. Comput. SCC 2016, pp. 689–696, 2016, doi: 10.1109/SCC.2016.95.
D. Liu, T. Gu, and J.-P. Xue, “Rule Engine based on improvement Rete algorithm,” Dec. 2010, doi: 10.1109/icacia.2010.5709916.
“JRuleEngine - OpenSource Java Rule Engine.” http://jruleengine.sourceforge.net/ (accessed May 16, 2021).
“Deeplearning4j.” https://deeplearning4j.org/ (accessed May 16, 2021).
J. Feldman, “Representing and Solving Rule-Based Decision Models with Constraint Solvers,” in Rule-Based Modeling and Computing on the Semantic Web, Springer Berlin Heidelberg, 2011, pp. 208–221.
R. C. Fernandes et al., “A rule-based system proposal to aid in the evaluation and decision-making in external beam radiation treatment planning,” arXiv, pp. 1–20, 2018.
T. Wang, “Machine Learning for Constraint Programming,” 2019.
Q. Cappart, T. Moisan, L.-M. Rousseau, I. Prémont-Schwarz, and A. A. Ciré, “Combining Reinforcement Learning and Constraint Programming for Combinatorial Optimization,” CoRR, vol. abs/2006.0, 2020,[Online]. Available: https://arxiv.org/abs/2006.01610.
