public FuzzyOutput ExecuteInference( string variableName ) { // gets the variable LinguisticVariable lingVar = database.GetVariable( variableName ); // object to store the fuzzy output FuzzyOutput fuzzyOutput = new FuzzyOutput( lingVar ); // select only rules with the variable as output Rule[] rules = rulebase.GetRules( ); foreach ( Rule r in rules ) { if ( r.Output.Variable.Name == variableName ) { string labelName = r.Output.Label.Name; float firingStrength = r.EvaluateFiringStrength( ); if ( firingStrength > 0 ) fuzzyOutput.AddOutput( labelName, firingStrength ); } } // returns the fuzzy output obtained return fuzzyOutput; } }