Information Technology Reference
In-Depth Information
Abb. 5.3
UML-Diagramm des Fuzzy-Produktionsregelsystems
den Werten 0,0 und 1,0 liegt. Typische Fuzzy-Sets bestehen aus Linienabschnitten, die
Dreiecke und Trapeze bilden Funktionen der Gauß-Form ab.
Die Implementierung der Fuzzy-Regelbasis besteht aus verschiedenen Klassen, die
sich bezüglich Architektur der booleschen Regelbasis sehr ähnlich sind (Abb.
5.3
).
Den Kern des Fuzzy Produktionsregelsystems bilden die Klassen
FuzzyRule
,
Fuz-
zyClause
,
FuzzyRuleVariable
und
FuzzyRuleSet
. Da die Grundstruktur der
Klassen identisch ist, erfolgt in diesem Abschnitt eine Konzentration auf die besonderen
Aspekte des Codes für die Fuzzy-Schlussfolgerung.
Die Klasse
FuzzyRule
wird für die Definition einer einzelnen Regel benutzt und ent-
hält auch Methoden, die den Schlussfolgerungsvorgang unterstützen. Jede Fuzzy-Regel
hat das Datenelement
name
, einen Verweis auf das übergeordnete Objekt der Fuzzy-Re-
gelbasis, einen Vektor von Fuzzy-Prämissen und eine einzelne Fuzzy-Konsequenz. Das
boolesche Element
firedFlag
zeigt an, ob die Regel gefeuert hat oder nicht. Jeder in
der Fuzzy-Regelbasis festgelegten Fuzzy-Variablen ist ein eindeutiger Integerwert
id
zu-
gewiesen. Diese id-Werte werden in den Instanzen von
BitSet
,
rdRefs
und
wrRefs
,
verwendet, um im Auge zu behalten, welchen Variablen ein Wert zugewiesen wurde und
um zu entscheiden, welche Regel feuern soll.
Es gibt verschiedene Konstruktoren für Fuzzy-Regeln, die alle jeweils einen Verweis
auf die Instanzen der Fuzzy-Regelbasis, den Namen der Fuzzy-Regel, ein oder mehre-
re
FuzzyConclusionClause
-Objekte (Prämissen) und ein einziges
FuzzyCon-
ClusionClause
-Objekt (Konsequenz) benötigen. Jeder Konstruktor legt die richtige