Home

ReteAlgorithmus

Der Rete-Algorithmus, oft als Rete-Netzwerk bezeichnet, ist ein Mustererkennungs- bzw. Matching-Verfahren, das in regelbasierten Expertensystemen eingesetzt wird, um Bedingungen (Left-Hand Side) von Regeln effizient gegen aktuelle Fakten in der Arbeitsbasis abzugleichen. Er wurde von Charles A. Forgy in den frühen 1980er Jahren erstmals formal vorgestellt und gehört zu den bekanntesten Algorithmen für Forward-Chaining.

Der Algorithmus baut ein Netz aus Knotenstrukturen, das aus Alpha-Knoten und Beta-Knoten besteht. Alpha-Knoten prüfen einzelne

Sobald die Bedingungen einer Regel vollständig erfüllt sind, wird eine Regelaktivierung ausgelöst und die Regelkonsequenz ausgeführt.

Zu den bekannten Varianten gehören Weiterentwicklungen wie Rete II und Rete III, die Optimierungen an Speicherbedarf

---

Bedingungen
gegen
die
Faktenbasis,
zum
Beispiel
Merkmale
von
Fakten.
Beta-Knoten
kombinieren
übereinstimmende
Teilmengen
aus
vorherigen
Bedingungen,
um
vollständige
Übereinstimmungen
über
mehrere
Bedingungen
hinweg
zu
bilden.
Die
Ergebnisse
werden
in
Gedächtnissen
abgelegt:
Alpha-Memories
und
Beta-Memories.
Wenn
Fakten
assertiert
werden,
propagieren
sie
schrittweise
durch
das
Netz
und
bauen
sukzessive
Teilmengen
auf.
Der
Rete-Algorithmus
speichert
Zwischenergebnisse,
um
erneutige
Überprüfungen
zu
vermeiden,
wenn
sich
nur
wenige
Fakten
ändern.
Dadurch
eignet
er
sich
besonders
gut
für
große
Regelbasen
mit
vielen
Regeln,
in
denen
häufig
neue
Fakten
hinzukommen
oder
bestehende
Fakten
geändert
werden.
und
Update-Strategien
bieten.
Implementierungen
des
Rete-Algorithmus
finden
sich
in
verbreiteten
Regel-Engines
wie
CLIPS,
Jess
oder
Drools.
Der
Algorithmus
eignet
sich
vor
allem
für
seriell
aufbauende
Produktionen,
hat
jedoch
auch
Einschränkungen,
etwa
bei
sehr
dynamischen
Regelbasen
oder
speicherintensiven
Netzen.