Information Technology Reference
In-Depth Information
arbeitet werden müssen, gilt es die Liste durchzugehen und jede Regel feuern zu lassen.
Ein Nebeneffekt hiervon ist, dass die bekannten Variablen, die durch das Element
fact-
Basis
dargestellt werden, über mehr gesetzte Bits verfügen. Auch werden die Regeln,
die verarbeitet wurden, als gefeuert gekennzeichnet. Auf diese Weise müssen weniger
Regeln untersucht werden, wenn das nächste Mal die while-Schleife zu durchlaufen ist
und damit sind in
factBasis
auch Bits gesetzt. In der Methode
fire()
der Klasse
FuzzyRule
werden zwei Fälle behandelt. Im ersten Fall gibt es keine Prämissen, da es
sich um eine unbedingte Regel handelt, so dass die Konsequenz einfach durch
eval()
ermittelt und mit
or
in den
workingSet
eingebracht wird. Im zweiten Fall handelt es
sich um eine bedingte Regel mit Prämissen und Konsequenzen, die verarbeitet werden
muss. Dabei wird durch die Prämissen gegangen, indem für jede die Methode
eval()
aufgerufen wird. Wenn der Wahrheitswert unterhalb der
alphaCut
-Grenze liegt, wird
das Flag
skipConclusion
so gesetzt, dass die Konsequenz der Regel nicht tatsäch-
lich feuern kann. Dabei wird der kleinste Wahrheitswert aller Prämissen gemerkt. Wenn
skipConclusion
immer noch nicht wahr ist, erfolgt einfach eine Schätzung bezüglich
der Konsequenz mit
eval()
und die Ergebnisse dieser Schätzung werden mit
or
in den
workingSet
übernommen.
Die Methoden
eval()
der Klasse
FuzzyClause
werden in den Methoden
fire()
der Klasse
FuzzyRule
verwendet, um die Klauseln während der Schlussfolgerung aus-
zuwerten. Die Version von
eval()
ohne Argumente wird bei Prämissen aufgerufen. Dies
führt einen Fuzzy-Vergleich aus.
eval()
, mit dem kleinsten Wahrheitswert, wird bei der
Konsequenz aufgerufen, wenn die Regel feuert. Dies führt eine Fuzzy-Zuweisung durch.
Die Methoden der Klasse
FuzzyOperator
führen den Vergleich oder die Zuweisung
aus. Die Fuzzy-Zuweisung
asgnls()
und der Fuzzy-Vergleich
cmpls()
, der Klasse
FuzzyOperator
, werden in den bereits beschriebenen Methoden
eval()
verwendet.
Die Methode
asgnls()
mit drei Parametern wird aufgerufen, wenn die Konsequenz
ausgewertet wird. Sie weist dem Fuzzy-Set-Subjekt
rhs
den Wahrheitswert
truthVa-
lue
der Fuzzy-Regelvariablen
Ihs
zu. Bei Prämissen wird die Methode
cmpls()
ver-
wendet. Diese erhalten den aktuellen numerischen Wert der Fuzzy-Regelvariablen
Ihs
und überprüfen ihre Zugehörigkeit zum Fuzzy-Set
rhs
. Dieser Wert zwischen 0,0 und 1,0
wird in der Methode
fire()
der Klasse
FuzzyRule
als Wahrheitswert zurückgegeben.
5.3
Genetische Algorithmen
Die Natur zeichnet sich durch eine durch Evolution entstandene Vielfalt aus, indem die
Lebewesen vielgestaltige, unterschiedliche Anpassungslösungen für ähnliche Selektions-
bedingungen verfolgen und dabei die gleiche Anpassung auf verschiedenen Wegen er-
reicht werden. Die so entwicklungsgeschichtlich entstandenen Eigenschaften der Lebe-
wesen sind ein Abbild der historischen Kontingenz, Variabilität und Verlaufsabhängigkeit
von Eigenschaften und Verhaltensweisen der biologischen Systeme. Vor allem die Va-
riabilität scheint damit als ein unverzichtbares Merkmal aller biologischen Populationen