Information Technology Reference
In-Depth Information
darin, eine Frage zu stellen, ob das Fahrzeug vier Räder hat. Die erste Prämisse wäre dem-
nach wahr, was einen Übergang zur zweiten Prämisse zur Folge hätte:
motor=ja
. Auch
hier ergibt die Überprüfung des Arbeitsspeichers, dass
motor
noch keinen Wert besitzt.
Erneut wird in der Regelbasis nach einer Regel gesucht, die die Konklusion
motor=ja
hat. Diese Suche ist ebenfalls erfolglos und erneut wird der Anwender um einen Wert ge-
beten. Dieser antwortet, dass das Fahrzeug einen Motor hat, womit
motor=ja
wahr ist.
Beide Prämissen sind nun wahr. Insofern gilt als bewiesen, dass die Regel
Automobil
wahr ist und damit zutrifft, was die Festlegung
fahrzeugTyp=automobil
impliziert.
Der Arbeitsspeicher enthält nun folgende Fakten:
num_raeder = 4
motor = ja
fahrzeugTyp = automobil
Nach Rückkehr zur ersten Regel erkennt man, dass die erste Prämisse wahr ist. Als
nächstes müssen Werte für
groesse
und
num_tueren
gefunden werden, was wiede-
rum die Konsultation des Anwenders erforderlich macht. Dieser gibt an, dass
groes-
se=mittel
und
num_tueren=3
gelten soll. Damit sind alle Prämissen erfüllt und es
lässt sich schlussfolgern:
fahrzeug=MiniVan
. Der endgültige Arbeitsspeicherauszug
zeigt das hierfür entsprechende Bild:
num_raeder = 4
motor = ja
fahrzeugTyp = automobil
groesse = mittel
num_tueren = 3
fahrzeug = MiniVan
Der Algorithmus der Rückwärtsverkettung führt so etwas wie eine Tiefensuche in der
Regelbasis aus, während er versucht, eine Zielklausel zu beweisen.
5.2.4
Binär-Boolesche Produktionsregeln
In diesem Abschnitt werden Implementierungsdetails beschrieben, die sowohl den boole-
schen Ansatz als auch den Ansatz der Fuzzy-Logik betreffen. Weiterhin werden die beiden
Hauptarten von Inferenzalgorithmen veranschaulicht, die in regelbasierten Systemen ver-
wendet werden, nämlich die Vorwärts- und die Rückwärtsverkettung. Alle besprochenen
Klassen sind im Paket
de.cc.pr
Regel enthalten. Einen groben Überblick verschafft
das folgende UML-Diagramm (Abb.
5.2
).
Die Klasse
Rule
wird verwendet, um eine einzelne Regel darzustellen und enthält Me-
thoden für die Unterstützung des Schlussfolgerungsvorgangs. Jede Regel hat das Daten-
element
name
, einen Verweis auf das übergeordnete Objekt der booleschen Regelbasis,
ein Array von Prämissen (
premise
) und eine Konklusion (
conclusion
). Der Wahr-
heitswert der Regel wird in
truthValue
abgelegt. Dabei gilt es zu beachten, dass es
sich hierbei nicht um eine einfache boolesche Variable, sondern vielmehr um ein Objekt