Information Technology Reference
In-Depth Information
Fuzzy-Set während der Schlussfolgerung verwendet wird. Um einen neuen Wert für die
kontinuierliche Fuzzy-Regelvariable zu erhalten oder zu setzen, sind zwei setFuzzy-
Value() -Methoden definiert. Die erste ruft einfach die Methode setRawValue()
auf, die eine unbedingte Zuweisung des Fuzzy-Sets valFzy der Variable vornimmt und
diesen dann defuzzifiziert, so dass der numerische oder präzise Wert valCrisp zur Ver-
fügung steht. Während der Schlussfolgerung wird die andere setFuzzyValue()- Me-
thode mit einem neuen Fuzzy-Set und einem entsprechenden Wahrheitswert truthVa-
lue als Eingabeargumente benutzt.
Die Methode getOrAddHedgedFuzzySet() konstruiert zuerst den Set-Namen in
Hedge-Form, indem sie setName mit den Hedge-Ausdrücken verknüpft. Danach erstellt
sie in zwei Schritten zunächst ein Duplikat des ursprünglichen Fuzzy-Sets, wendet dann
Hedge-Ausdrücke auf das Set an und erzeugt damit das Hedge-Fuzzy-Set truthVec-
tor . Die Methoden addSet() werden beide zum Erstellen von Instanzen der Klassen
ShoulderFuzzySet , TrapezoidFuzzySet und TriangleFuzzySet und dem
anschließenden Hinzufügen zur Klasse ContinuousFuzzyRuleVariable verwen-
det. Alle Methoden nehmen den String setName , den Parameter alphaCut und dann
eine Reihe von Parametern an, die in den jeweiligen FuzzySet-Konstruktoren verwendet
werden. In der Methode addSetShoulder() werden der Anfang, ein Endpunkt und
die Richtungen des Sets festgelegt. Mit der Methode addSetTrapezoid() werden der
linke und der rechte Endpunkt sowie der linke und rechte Kernpunkt festgelegt. Durch die
Methode addSetTriangle() wird entsprechend der linke, der mittlere und der rechte
Punkt festgelegt. All diese Werte müssen allerdings innerhalb des Wertebereichs der kon-
tinuierlichen Fuzzy-Regelvariablen liegen.
Die Klasse FuzzySet ist die Grundklasse der Dreieck-, Trapez-, Schulter- und Ar-
beits-Fuzzy-Sets, die in dieser Implementierungsvariante verwendet werden. Sie enthält
den Integerwert setType , den String setName , die Parameter alphaCut , domain-
Lo und domainHi und das Double-Array truthVector , das die Form des Fuzzy-Sets
an 256 Punkten (MAX-VALUES) über den Wertebereich festlegt. Zusätzlich zu den get -
und set -Methoden für diese Parameter definiert die Klasse FuzzySet die Methode
applyHedges() , die die Grundform des Fuzzy-Sets festlegt, indem sie ihn mit der Me-
thode applyHedgeConDil() konzentriert und verdünnt. Zu den unterstützten lingu-
istischen Hedge-Ausdrücken gehören extremely , slightly , somewhat und very .
Die Methode zur Defuzzifizierung ruft zuerst die Methode applyAlphaCut() auf,
um alle truthVector -Werte auf null zu setzen, die kleiner oder gleich dem Parameter
alphaCut sind. Wenn die Methode getSetHeight() den Wert 0 ergibt, waren alle
256 truthVector -Elemente unter der alphaCut -Grenze und es wird ein defuzzifi-
zierter Wert von 0,0 zurückgegeben. Andernfalls kommen die Defuzzifizierungsmethoden
CENTROID (Schwerpunkt) und MAXHEIGHT (Maximalhöhe) auf das Fuzzy-Set zur An-
wendung. Die Zugehörigkeitsmethode verbindet den skalaren Eingabewert mit der Zu-
gehörigkeitsfunktion des Fuzzy-Sets, wie es durch den Wahrheitsvektor truthVector
mit seinen 256 Elementen dargestellt wird. Wenn der skalare Wert unterhalb des Wertebe-
reichs des Fuzzy-Sets liegt, wird ihm die Höhe des am weitesten links liegenden Elements
Search WWH ::




Custom Search