ZeusMath-Library  2.0.4
zeus::TFuzzySet Class Reference

#include <FuzzySet.h>

Inheritance diagram for zeus::TFuzzySet:

Public Types

enum  EFuzzyNorm { etZadeh, etProdConnect, etLukasiewiez, etYager }
 
enum  EDefuzzyMethod {
  etCenterOfGrapvity, etIndexedCenterOfGravity, etCenterOfSums, etFirstOfMaximum,
  etMiddleOfMaximum, etLastOfMaximum
}
 

Public Member Functions

 TFuzzySet (Int iResolution=100)
 
 TFuzzySet (const TFuzzySet &set)
 
virtual ~TFuzzySet ()
 
void initTrapezodial (const Float &rfX1, const Float &rfX2, const Float &rfX3, const Float &rfX4)
 
void initGaussianSyn (const Float &rfA, const Float &rfWhm)
 
void initGaussianAsyn (const Float &rfA, const Float &rfWhm1, const Float &rfWhm2)
 
void initSigmodial (const Float &rfA, const Float &rfB)
 
Float getValue (Int iIndex) const
 
Float getMemberShip (const Float &rfX) const
 
Int getResolution () const
 
void setValue (Int iIndex, const Float &rfValue)
 
virtual Float getDefuzzificationValue (EDefuzzyMethod eMethod=etCenterOfGrapvity, const Float &rfParam=1.0) const
 
virtual TFuzzySet unionS (const TFuzzySet &set, EFuzzyNorm eNorm=etZadeh, const Float &rfParam=1.0) const
 
virtual TFuzzySet intersectS (const TFuzzySet &set, EFuzzyNorm eNorm=etZadeh, const Float &rfParam=1.0) const
 
virtual TFuzzySet notS () const
 
virtual TFuzzySet concentrate () const
 
virtual TFuzzySet dilate () const
 
virtual TFuzzySet intense () const
 
virtual TFuzzySet lingVery () const
 
virtual TFuzzySet lingMoreOrLess () const
 
virtual TFuzzySet lingVeryVery () const
 
virtual TFuzzySet lingNotVery () const
 
virtual TFuzzySet lingMore () const
 
virtual TFuzzySet lingLess () const
 
TFuzzySetoperator= (const TFuzzySet &set)
 
bool operator== (const TFuzzySet &set) const
 

Protected Member Functions

Float sum () const
 

Protected Attributes

TArrayList< Float > m_lstValues
 Array of Values. More...
 
Int m_iResolution
 Resolution of the set. More...
 

Detailed Description

This class defines a fuzzy set and all operators used to modify and transform the set. The set is used together with the TFuzzyLogic.

Member Enumeration Documentation

§ EDefuzzyMethod

Enumeration to spezify the way how to calculate the defuzzification

Enumerator
etCenterOfGrapvity 

Gets the defuzzification value as the center of gravity

etIndexedCenterOfGravity 

Gets the defuzzification value as the center of gravity

etCenterOfSums 

Gets the defuzzification value as the center of the sum

etFirstOfMaximum 

Gets the defuzzification value as the first maximum value

etMiddleOfMaximum 

Gets the defuzzification value as the middle of all maximum values

etLastOfMaximum 

Gets the defuzzification value as the last maximum value

§ EFuzzyNorm

Enumeration to specify the way how the fuzzy set will be computed

Enumerator
etZadeh 

Uses the connectivities of Zadeh

etProdConnect 

Uses the product connectivities

etLukasiewiez 

Uses the multi value logic of Lukasiewiez

etYager 

Uses the connectivities of Yager

Constructor & Destructor Documentation

§ TFuzzySet() [1/2]

TFuzzySet::TFuzzySet ( Int  iResolution = 100)

Creates a fuzzy set

Parameters
res: Resolution of the set.

§ TFuzzySet() [2/2]

TFuzzySet::TFuzzySet ( const TFuzzySet set)

Copy constructor of the fuzzy set

Parameters
set: Object to copy

§ ~TFuzzySet()

TFuzzySet::~TFuzzySet ( )
virtual

Destroys the fuzzy set

Member Function Documentation

§ concentrate()

TFuzzySet TFuzzySet::concentrate ( ) const
virtual

Operator to concentrate a fuzzy set

Returns
concentrated set

§ dilate()

TFuzzySet TFuzzySet::dilate ( ) const
virtual

Operator to dilate a fuzzy set

Returns
dilated set

§ getDefuzzificationValue()

Float TFuzzySet::getDefuzzificationValue ( EDefuzzyMethod  eMethod = etCenterOfGrapvity,
const Float &  rfParam = 1.0 
) const
virtual

Gets a defuzzificated value

Parameters
eMethod: Method tu use to get the defuzzification value
rfParam: used for dmIndexedCenterOfGravity as a threshold
Returns
defuzzificated value

§ getMemberShip()

Float TFuzzySet::getMemberShip ( const Float &  rfX) const

Gets the membership of a value. The variable x must be between 0 and 1.

Parameters
rfX: value
Returns
membership

§ getResolution()

Int zeus::TFuzzySet::getResolution ( ) const
inline

Returns the resolution of a fuzzy set

Returns
Resolution

§ getValue()

Float zeus::TFuzzySet::getValue ( Int  iIndex) const
inline

Gets the value of the fuzzy set at position index

Parameters
iIndex: Value position
Returns
value

§ initGaussianAsyn()

void TFuzzySet::initGaussianAsyn ( const Float &  rfA,
const Float &  rfWhm1,
const Float &  rfWhm2 
)

Initialises the set using the asynchron gaussian function

§ initGaussianSyn()

void TFuzzySet::initGaussianSyn ( const Float &  rfA,
const Float &  rfWhm 
)

Initialises the set using the synchron gaussian function

§ initSigmodial()

void TFuzzySet::initSigmodial ( const Float &  rfA,
const Float &  rfB 
)

Initialises the set using the sigmodial function

§ initTrapezodial()

void TFuzzySet::initTrapezodial ( const Float &  rfX1,
const Float &  rfX2,
const Float &  rfX3,
const Float &  rfX4 
)

Initialises the set using the trapezodial function.

Parameters
rfX1: Beginning of the positive slope
rfX2: End of the positive slope
rfX3: Beginning of the negative slope
rfX4: End of the negative slope

§ intense()

TFuzzySet TFuzzySet::intense ( ) const
virtual

Operator to intense a fuzzy set

Returns
intensed set

§ intersectS()

TFuzzySet TFuzzySet::intersectS ( const TFuzzySet set,
EFuzzyNorm  eNorm = etZadeh,
const Float &  rfParam = 1.0 
) const
virtual

Creates the intersection of two fuzzy sets (1st set is this, 2nd set is [set]

Parameters
set: 2nd set
eNorm: Norm how to get the intersection of two sets
rfParam: Used by the norm fnYager
Returns
new Fuzzy set

§ lingLess()

TFuzzySet TFuzzySet::lingLess ( ) const
virtual

Linguistic modifier LESS of a fuzzy set

§ lingMore()

TFuzzySet TFuzzySet::lingMore ( ) const
virtual

Linguistic modifier MORE of a fuzzy set

§ lingMoreOrLess()

TFuzzySet zeus::TFuzzySet::lingMoreOrLess ( ) const
inlinevirtual

Linguistic modifier MOR OR LESS of a fuzzy set

§ lingNotVery()

TFuzzySet zeus::TFuzzySet::lingNotVery ( ) const
inlinevirtual

Linguistic modifier NOT VERY of a fuzzy set

§ lingVery()

TFuzzySet zeus::TFuzzySet::lingVery ( ) const
inlinevirtual

Linguistic modifier VERY of a fuzzy set

§ lingVeryVery()

TFuzzySet zeus::TFuzzySet::lingVeryVery ( ) const
inlinevirtual

Linguistic modifier VERY VERY of a fuzzy set

§ notS()

TFuzzySet TFuzzySet::notS ( ) const
virtual

Operator to get the inverse of this set

Returns
inverse set

§ operator=()

TFuzzySet & TFuzzySet::operator= ( const TFuzzySet set)

Copy operator

Parameters
set: Set to copy
Returns
the copied set

§ operator==()

bool TFuzzySet::operator== ( const TFuzzySet set) const

Equals operator

Parameters
set: Set to check if equal
Return values
true: Set is equal
false: Set is not equal

§ setValue()

void zeus::TFuzzySet::setValue ( Int  iIndex,
const Float &  rfValue 
)
inline

Sets a new value to the fuzzy set

Parameters
iIndex: Index of the value
rfValue: new value

§ sum()

Float TFuzzySet::sum ( ) const
protected

Gets the sum of the Fuzzy Set

Returns
sum

§ unionS()

TFuzzySet TFuzzySet::unionS ( const TFuzzySet set,
EFuzzyNorm  eNorm = etZadeh,
const Float &  rfParam = 1.0 
) const
virtual

Creates the union of two fuzzy sets (1st set is this, 2nd set is [set]

Parameters
set: 2nd set
eNorm: Norm how to get the union
rfParamused by the norm fnYager
Returns
new Fuzzy set

Member Data Documentation

§ m_iResolution

Int zeus::TFuzzySet::m_iResolution
protected

Resolution of the set.

§ m_lstValues

TArrayList<Float> zeus::TFuzzySet::m_lstValues
protected

Array of Values.


The documentation for this class was generated from the following files:


Written by Benjamin Hadorn http://www.xatlantis.ch.
Last change made on Wed Sep 14 2016 06:46:06