Rete Algorithm

Rete Algorithm
• The Rete algorithm is an efficient pattern matching algorithm for implementing
production rule systems. Rete has become the basis for many popular expert
systems.
• A naive implementation of an expert system might check each rule against the
known facts in the Knowledge base, firing that rule if necessary, then moving on to
the next rule (and looping back to the first rule when finished). For even moderate
sized rules and facts knowledge-bases, this naïve approach performs far too slowly.
• This provides the basis for a more efficient implementation of an expert system. A
Rete-based expert system builds a network of nodes, where each node (except the
root) corresponds to a pattern occurring in the left-hand-side of a rule. The path from
the root node to a leaf node defines a complete rule left-hand-side. Each node has a
memory of facts which satisfy that pattern.
As new facts are asserted or modified, they propagate along the network, causing
nodes to be annotated when that fact matches that pattern. When a fact or
combination of facts causes all of the patterns for a given rule to be satisfied, a leaf
node is reached and the corresponding rule is triggered.
• The Rete algorithm is designed to sacrifice memory for increased speed. In most
cases, the speed increase over naive implementations is several orders of magnitude
(because Rete performance is theoretically independent of the number of rules in the
system). In very large expert systems, however, the original Rete algorithm tends to
run into memory consumption problems. Other algorithms, both novel and Retebased,
have since been designed which require less memory.

Comments

Popular posts from this blog

Handling of Skew

Fragment-and-Replicate Join

USER INTERFACE DESIGN FOR ANNA UNIVERSITY SYLLABUS