This is a reference tutorial implementation of the rete pattern matching algorithm, along with GraphViz code to visualize the algorithm as it executes. The implementation is from Robert B. Doorenbos' PhD Thesis: Production Matching for Large Learning Systems.
-
rete0.cppis a faithful implementation from the thesis, to the extent that it has page number markings in the source code to refer to the thesis. It is recommended to readrete0.cppwhen one is reading the thesis alongside it. -
rete1.cppis a re-implementation ofrete0with no added feature, which (in my opinion) irons out some of the quirks of therete0presentation. For one, we don't use a commonReteNode. I found theReteNodemore confusing than enlightening. We also abandon theleft/rightconvention, and simply speak ofalpha-side/beta-side.