Ejemplo n.º 1
0
        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]);
                }
            }
        }
Ejemplo n.º 2
0
 public FuzzyRule(List <FuzzyExpression> _prem, FuzzyExpression _concl)
 {
     Premises   = _prem;
     Conclusion = _concl;
 }