Pattern Recognition Algorithms

In the past, I had to develop a program that acted as a rule evaluator. You had an antecedent and some consecuents (actions), so if the antecedent was changed to justify the actions that were performed.

At that time I used a modified version of the RETE algorithm (there are three versions of RETE, only the first of which is publicly available) comparing the sample for antecedent. We are talking about a large system here with millions of operations per rule, and some operators are "repeated" according to several rules.

I may have to implement it again and again in a different language, and although I am experienced in RETE, does anyone know of other template matching algorithms? Any suggestions or should I continue to use RETE?

+6
algorithm pattern-recognition
source share
1 answer

The TREAT algorithm is similar to RETE, but does not record partial matches. As a result, in some situations it may use less memory than RETE. In addition, if you change a significant amount of known facts, then TREAT can be much faster because you do not need to spend time on retraction.

There's also RETE * , which balances between RETE and TREAT, saving some node connection depending on how much memory you want to use.Thus, you still save some approval time, but also get memory and tap-off time savings depending on of how you set up your system.

You can also check out LEAPS , which uses a lazy rating scheme and includes both RETE and TREAT elements.

I only have personal experience with RETE, but it seems that RETE * or LEAPS is a better, more flexible choice.

+4
source share

All Articles