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.cpp
is 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.cpp
when one is reading the thesis alongside it. -
rete1.cpp
is a re-implementation ofrete0
with no added feature, which (in my opinion) irons out some of the quirks of therete0
presentation. For one, we don't use a commonReteNode
. I found theReteNode
more confusing than enlightening. We also abandon theleft/right
convention, and simply speak ofalpha-side/beta-side
.