defuzzify method

double defuzzify(
  1. String name, [
  2. FuzzyModuleType type = FuzzyModuleType.maxav
])

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;
}