public FuzzyRule(string ruleStr, FuzzySystem fuzzySystem) { // To Uppercase ruleStr = ruleStr.ToUpper(); // Split premises and conclusion String[] rule = ruleStr.Split(new String[] { " THEN " }, StringSplitOptions.RemoveEmptyEntries); if (rule.Length == 2) { // Compute and add premises rule[0] = rule[0].Remove(0, 2); // On enlève "IF" String[] prem = rule[0].Trim().Split(new String[] { " AND " }, StringSplitOptions.RemoveEmptyEntries); Premises = new List <FuzzyExpression>(); foreach (String exp in prem) { String[] res = exp.Split(new String[] { " IS " }, StringSplitOptions.RemoveEmptyEntries); if (res.Length == 2) { FuzzyExpression fexp = new FuzzyExpression(fuzzySystem.LinguisticVariableByName(res[0]), res[1]); Premises.Add(fexp); } } // Add conclusion String[] conclu = rule[1].Split(new String[] { " IS " }, StringSplitOptions.RemoveEmptyEntries); if (conclu.Length == 2) { Conclusion = new FuzzyExpression(fuzzySystem.LinguisticVariableByName(conclu[0]), conclu[1]); } } }
public FuzzyRule(List <FuzzyExpression> _prem, FuzzyExpression _concl) { Premises = _prem; Conclusion = _concl; }