public Rule[] Infer(FuzzifiedValueContainer fuzzyContainer) { Rule[] result = new Rule[m_RuleBase.RuleCount()]; m_RuleBase.ResetFulfillmentValues(); for (int i = 0; i < m_RuleBase.RuleCount(); i++) { Rule currentRule = m_RuleBase.GetRule(i); for (int j = 0; j < currentRule.ConditionCount(); j++) { RuleCondition currentCondition = currentRule.GetCondition(j); FuzzifiedValue fuzzyVal = null; if ((fuzzyVal = fuzzyContainer.Get(currentCondition.VariableName, currentCondition.TermName)) != null) { currentCondition.Fulfillment = fuzzyVal.FuzzyValue; } else { LogWriter.Write("Error in rule " + i + " condition " + j); } } currentRule.CalculateConclusionFulfillments(); result[i] = currentRule; } return(result); }
public Rule[] Infer( FuzzifiedValueContainer fuzzyContainer ) { Rule[] result = new Rule[m_RuleBase.RuleCount()]; m_RuleBase.ResetFulfillmentValues(); for ( int i = 0; i < m_RuleBase.RuleCount(); i++ ) { Rule currentRule = m_RuleBase.GetRule( i ); for ( int j = 0; j < currentRule.ConditionCount(); j++ ) { RuleCondition currentCondition = currentRule.GetCondition( j ); FuzzifiedValue fuzzyVal = null; if ( ( fuzzyVal = fuzzyContainer.Get( currentCondition.VariableName, currentCondition.TermName ) ) != null ) currentCondition.Fulfillment = fuzzyVal.FuzzyValue; else LogWriter.Write( "Error in rule " + i + " condition " + j ); } currentRule.CalculateConclusionFulfillments(); result[i] = currentRule; } return result; }
public FuzzifiedValueContainer Fuzzificate(LinguisticInputValue[] inputs) { FuzzifiedValueContainer result = new FuzzifiedValueContainer(); for (int i = 0; i < inputs.Length; i++) { MfInterface[] memberFunc = GetMembershipFunctions(inputs[i].VariableName); if (memberFunc != null) { for (int j = 0; j < memberFunc.Length; j++) { FuzzifiedValue fuzzyVal = new FuzzifiedValue(memberFunc[j].VariableName(), memberFunc[j].TermName(), memberFunc[j].FuzzifieValue(inputs[i].CrispValue)); result.Add(fuzzyVal); } } else { LogWriter.Write("Could not fuzzificate " + inputs[i].VariableName); } } return(result); }
public FuzzifiedValueContainer Fuzzificate( LinguisticInputValue[] inputs ) { FuzzifiedValueContainer result = new FuzzifiedValueContainer(); for ( int i = 0; i < inputs.Length; i++ ) { MfInterface[] memberFunc = GetMembershipFunctions( inputs[i].VariableName ); if ( memberFunc != null ) { for ( int j = 0; j < memberFunc.Length; j++ ) { FuzzifiedValue fuzzyVal = new FuzzifiedValue( memberFunc[j].VariableName(), memberFunc[j].TermName(), memberFunc[j].FuzzifieValue( inputs[i].CrispValue ) ); result.Add( fuzzyVal ); } } else { LogWriter.Write( "Could not fuzzificate " + inputs[i].VariableName ); } } return result; }