defuzzify method
Given a fuzzy variable and a defuzzification method this returns a crisp value.
Implementation
double defuzzify(String name, [FuzzyModuleType type = FuzzyModuleType.maxav ]) {
final flvs = this.flvs;
final rules = this.rules;
_initConsequences();
for ( int i = 0, l = rules.length; i < l; i ++ ) {
final rule = rules[ i ];
rule.evaluate();
}
final flv = flvs[name];
double? value;
switch ( type ) {
case FuzzyModuleType.maxav:
value = flv?.defuzzifyMaxAv();
break;
case FuzzyModuleType.centroid:
value = flv?.defuzzifyCentroid();
break;
}
return value ?? 0;
}