Reteアルゴリズム
Reteアルゴリズムは、プロダクションシステムでのデータタプル(事実)とプロダクション(ルール)のパターンマッチ機能の実装を論理的に一般化したものである。プロダクションは1つ以上の条件とそれら条件に適合する事実群が揃ったときに実行されるアクション群で構成される。条件群は事実の属性(型指定や識別子など)に関するものである。Reteアルゴリズムには次のような特徴がある:
ノード共有によってある程度の冗長性を排除する。
異なる型の事実群の結合について、部分的なマッチングを保持する。つまり、プロダクションシステムのワーキングメモリに何らかの変化があったとき、全事実を再度評価しなおす必要がなく、変化した部分だけを再評価する。
ワーキングメモリ上からある事実が排除された場合、関連するメモリ内容を効率的に消去できる。
Reteアルゴリズムは、前向き連鎖型のパターンマッチ・エンジン(推論エンジン)の実装方式として広く使われている。
Rete でのルール群は概念的には有向非巡回グラフとなっている。ルール群はメモリ上に格納されたネットワークで表現されるのが一般的である。