https://github.com/bollu/rete
An implementation of the rete algorithm from 'Production Matching for Large Learning Systems'
https://github.com/bollu/rete
Last synced: 12 days ago
JSON representation
An implementation of the rete algorithm from 'Production Matching for Large Learning Systems'
- Host: GitHub
- URL: https://github.com/bollu/rete
- Owner: bollu
- Created: 2020-02-20T22:18:59.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-06-09T05:47:06.000Z (over 5 years ago)
- Last Synced: 2025-04-19T20:58:50.971Z (6 months ago)
- Language: C++
- Size: 1.68 MB
- Stars: 82
- Watchers: 2
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# RETE
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](http://reports-archive.adm.cs.cmu.edu/anon/1995/CMU-CS-95-113.pdf).- `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 read `rete0.cpp` when one is reading the
thesis alongside it.- `rete1.cpp` is a *re-implementation* of `rete0` with no added feature,
which (in my opinion) irons out some of the quirks of the
`rete0` presentation. For one, we don't use a
common `ReteNode`. I found the `ReteNode` more confusing
than enlightening. We also abandon the `left/right` convention, and simply
speak of `alpha-side/beta-side`.### Example Rete diagrams to learn from:
##### Test1

##### Test2

##### Test3

##### Test5

##### Test from paper
