public class LinguistischeVariable
extends java.lang.Object
implements java.lang.Cloneable
Die Angabe des Wertebereichs ist optional. Wird keiner angegeben, wird als
Minimum 0
und als Maximum Integer.MAX_VALUE
angenommen. Werden Werte außerhalb des Wertebereichs fuzzyfiziert, ist
die Zugehörigkeit aller Terme 0.
Die Fuzzy-Sets werden nach der zweiten Trapezecke sortiert gesichert. Diese Ordnung wird beim erstmaligen fuzzyfizieren (mit oder ohne Wert) hergestellt.
Constructor and Description |
---|
LinguistischeVariable(java.lang.String name)
Konstruiert eine linguistische Variable.
|
LinguistischeVariable(java.lang.String name,
int minimum,
int maximum)
Konstruiert eine linguistische Variable.
|
Modifier and Type | Method and Description |
---|---|
boolean |
addFuzzySet(FuzzySet set)
Fügt der linguistischen Variable ein neues Fuzzy-Set hinzu.
|
LinguistischeVariable |
clone() |
java.lang.Integer |
defuzzyfiziere(FuzzyVariable fv)
Defuzzyfiziert eine Fuzzy-Variable.
|
boolean |
enthaelt(java.lang.String term)
Prüft ob ein bestimmter vorhanden in der Fuzzy-Variable enthalten
ist.
|
boolean |
equals(java.lang.Object obj)
Zwei linguistische Variablen sind, wenn sie den gleichen Namen und die
gleiche Menge Fuzzy-Sets besitzen.
|
FuzzyVariable |
fuzzyfiziere()
Erstellt ein Fuzzy-Variable aus der linguistischen Variable.
|
FuzzyVariable |
fuzzyfiziere(int wert)
Fuzzyfiziert den übergebenen Wert.
|
java.util.List<FuzzySet> |
getFuzzySet()
Gibt die Liste der Fuzzy-Sets in der linguistischen Variable zurück.
|
FuzzySet |
getFuzzySet(java.lang.String term)
Gibt das Fuzzy-Set mit dem angegebenen Namen zurück.
|
java.util.List<java.awt.geom.Point2D> |
getLuecken()
Bestimmt falls vorhanden die Definitionslücken.
|
int |
getMaximum()
Gibt das Maximum des Wertebereichs für die Defuzzyfizierung
zurück.
|
int |
getMinimum()
Gibt das Minimum des Wertebereichs für die Defuzzyfizierung
zurück.
|
java.lang.String |
getName()
Gibt den Namen der linguistischen Variable zurück.
|
java.util.List<java.lang.String> |
getTerme()
Gibt die Liste der Namen der Fuzzy-Sets in der linguistischen Variable
zurück.
|
int |
hashCode() |
boolean |
hatLuecken()
Prüft ob der die Fuzzy-Sets den gesamten Wertebereich
überdecken.
|
boolean |
isRunderWertebereich()
Prü ob die linguistische Variable einen runden Wertebereich besitzt.
|
void |
removeFuzzySet(java.lang.String term)
Entfernt das Fuzzy-Set mit dem angegebenen Namen.
|
boolean |
replaceFuzzySet(java.lang.String term,
FuzzySet set)
Ersetzt das Fuzzy-Set mit dem angegebenen Namen.
|
void |
setMaximum(int maximum)
Setzt das Maximum des Wertebereichs für die Defuzzyfizierung.
|
void |
setMinimum(int minimum)
Setzt das Minimum des Wertebereichs für die Defuzzyfizierung.
|
void |
setRunderWertebereich(boolean runderWertebereich)
Legt fest, ob der Wertebereich rund interpretiert werden soll.
|
java.lang.String |
toString()
Gibt ein Tupel der Form Variablenname: min-max{FuzzySet, FuzzySet, ...}
|
public LinguistischeVariable(java.lang.String name)
LinguistischeVariable(String, int, int)
mit
minimum = 0 und maximum = Integer.MAX_VALUE
aufgerufen.name
- Name der linguistischen Variablepublic LinguistischeVariable(java.lang.String name, int minimum, int maximum)
name
- Name der linguistischen Variableminimum
- Minimum des Wertebereichs der Basisvariable für die
Defuzzyfizierungmaximum
- Maximum des Wertebereichs der Basisvariable für die
Defuzzyfizierungjava.lang.IllegalArgumentException
- Wenn minimum > maximum oder der Name nicht druckbar ist
bzw. Zeilenumbrüche enthältpublic boolean addFuzzySet(FuzzySet set)
set
- Fuzzy-Setfalse
, wenn das Fuzzy-Set bereits existiert und
deshalb nicht hinzugefügt wurde, sonst true
public LinguistischeVariable clone()
clone
in class java.lang.Object
Object.clone()
public java.lang.Integer defuzzyfiziere(FuzzyVariable fv)
fv
- Ein Fuzzy-Wert als Fuzzy-Variablenull
, wenn die
Defuzzyfizierung nicht möglich war. Letzteres ist der Fall,
wenn alle Terme die Zugehörigkeit 0.0 haben.java.lang.IllegalArgumentException
- Wenn die Fuzzy-Variable nicht zur linguistischen Variable
gehörtpublic boolean enthaelt(java.lang.String term)
term
- Name des zu suchenden Termstrue
, wenn der Term gefunden wurdepublic boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
Object.equals(Object)
public int hashCode()
hashCode
in class java.lang.Object
public FuzzyVariable fuzzyfiziere()
null
, wenn keine Fuzzy-Sets
existierenpublic FuzzyVariable fuzzyfiziere(int wert)
fuzzyfiziere()
erzeugt und
anschließend die Zugehörigkeiten berechnet.wert
- Zu fuzzyfiziender Wertpublic java.util.List<FuzzySet> getFuzzySet()
public FuzzySet getFuzzySet(java.lang.String term)
term
- Name des Fuzzy-Setsnull
, wenn kein Fuzzy-Set mit dem
Namen existiertjava.util.NoSuchElementException
- Wenn kein Fuzzy-Set mit dem Namen existiertpublic java.util.List<java.awt.geom.Point2D> getLuecken()
public int getMaximum()
public int getMinimum()
public java.lang.String getName()
public java.util.List<java.lang.String> getTerme()
public boolean hatLuecken()
false
, wenn es Definitionslücken gibtpublic boolean isRunderWertebereich()
true
, wenn ein runder Wertebereich vorliegtFuzzySet.isSpezialfall()
,
setRunderWertebereich(boolean)
public void removeFuzzySet(java.lang.String term)
term
- Name eines Fuzzy-Setspublic boolean replaceFuzzySet(java.lang.String term, FuzzySet set)
removeFuzzySet(String)
und
addFuzzySet(FuzzySet)
auf.term
- Name des zu ersetzenden Fuzzy-Setsset
- Das neue Fuzzy-Settrue
, wenn das Ersetzen erfolgreich warpublic void setMaximum(int maximum)
maximum
- Das neue Maximumpublic void setMinimum(int minimum)
minimum
- Das neue Minimumpublic void setRunderWertebereich(boolean runderWertebereich)
false
ignoriert.runderWertebereich
- Wenn true
, dann fallen Minimum und Maximum aufeinanderpublic java.lang.String toString()
toString
in class java.lang.Object
Object.toString()