Information Technology Reference
In-Depth Information
Verfügung gestellt, um value festzulegen und den Wert der Variable auszulesen. Mit
der Methode setLabels() werden die gültigen symbolischen Werte der kategorischen
Variablen bestimmt. Die Methode getIndex() gibt den Index zurück, der einer sym-
bolischen Variable gegeben wurde. Ein Beispiel für die Funktion dieser Methoden ist im
Abschnitt über die Implementierung der Regelbasis Fahrzeugkonfiguration ge-
geben, in dem die Variablen definiert werden.
Für die Regelverarbeitung wird die Klasse RuleVariable zur Verfügung gestellt,
in der das regelspezifische Verhalten abgebildet wird. Die Klasse RuleVariable bietet
die Unterstützung für die zu der Schlussfolgerung erforderlichen Variablen. Die Regel-
variablen erben dabei das diskrete symbolische Verhalten der basalen Grundklasse Va-
riable . Ein neues Datenelement ist der Vektor clauseReference , der Verweise auf
alle Klauseln bereithält, die auf diese Variable zugreifen. Instanzen der Klasse Clause
registrieren sich durch den Aufruf der Methode addClauseReference() . Es gibt
verschiedene Methoden, die überschrieben werden und einige neue, die für die Regelver-
arbeitung hinzugefügt wurden. Die Methode setValue() richtet nicht nur den Wert der
Variable ein, sondern ruft auch die Methode updateClause() auf, die alle Klauseln
durchgeht, die auf diese Regelvariable zugreifen und ihren Wahrheitswert mit der Metho-
de check() überprüft. Die Variable promptString enthält den Text, der ausgegeben
wird, wenn der Anwender aufgefordert wird, einen Wert für diese Variable während der
Rückwärtsverkettung einzugeben und ruleName den Namen der Regel, die den Wert
dieser Regelvariablen bestimmt. Wenn die Regel feuert, ruft sie die Methode setRule-
Name() auf. Die Methode askUser() ruft den Dialog RuleVarDialog auf, um den
Anwender aufzufordern, einen entsprechenden Wert einzugeben, da er unter Umständen
nicht berechnet werden konnte. Der Dialog ist dabei bewusst modal gestaltet, so dass
es nur dann weitergeht, wenn der Anwender auch wirklich antwortet. Die Antwort wird
dann mit der Methode setValue() als Regelvariable weitergegeben. Dadurch werden
wiederum alle Klauseln aktualisiert, die auf diese Regelvariable zugreifen. Diese Methode
wird nur durch den rückwärtsverkettenden Algorithmus benutzt.
Die Klasse BooleanRuleSet implementiert eine Reihe von Regelvariablen und Re-
geln sowie höhere Methoden für die Vorwärts- und Rückwärtsverkettung. Die Boolean-
RuleSet hat einen Namen, eine Liste ( variableList ) aller Regelvariablen, auf die
die Regeln zugreifen, und eine Liste aller Regeln namens ruleList . Die Klasse Boo-
leanRuleSet implementiert die Schnittstelle BooleanRuleSet . Diese Schnittstelle
definiert das allgemeine Verhalten, so dass Anwendungen sowohl mit booleschen als auch
mit Fuzzy-Regelbasen umgehen können. Sie definiert eine Reihe von Methoden, die auf
einer grafischen Anwenderoberfläche beruhen, wie etwa setDisplay() , display-
Variables() , displayRules() und getGoalVariables() , und einige Ver-
arbeitungsmethoden, darunter auch reset() , backwardChain() und forward-
Chain() .
Die Implementierung der Vorwärtsverkettung greift auf Methoden der Klassen Boo-
leanRuleSet und Rule zurück. Die Methode forwardChain() der Klasse Boo-
leanRuleSet enthält die Hauptsteuerungslogik der Vorwärtsverkettung. Zuerst legt
Search WWH ::




Custom Search