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