public LinguisticVariable(LinguisticVariableParameters par) { name = par.Name; x = par.range; H = par.Labels.ToArray(); G = new IMembershipFunction[par.memberShipFunction.Count]; for (int i = 0; i < par.memberShipFunction.Count; i++) { var mFunction = par.memberShipFunction[i]; mFunction = mFunction.Remove(mFunction.Length - 1, 1); var mFunctionArray = mFunction.Split('('); var args = new List <string>(); foreach (var v in mFunctionArray[1].Split(',')) { args.Add(v); } switch (mFunctionArray[0]) { case "triangle": var triangle1 = double.Parse(args[0]); var triangle2 = double.Parse(args[1]); var triangle3 = double.Parse(args[2]); G[i] = new TriangleMembershipFunction(triangle1, triangle2, triangle3); break; case "trapezoid": var trapezoid1 = double.Parse(args[0]); var trapezoid2 = double.Parse(args[1]); var trapezoid3 = double.Parse(args[2]); var trapezoid4 = double.Parse(args[3]); G[i] = new TrapezoidMembershipFunction(trapezoid1, trapezoid2, trapezoid3, trapezoid4); break; case "classic": var classic1 = args[0]; var classic2 = double.Parse(args[1]); G[i] = new ClassicMembershipFunction(classic1, classic2); break; case "gauss": var gauss1 = double.Parse(args[0]); var gauss2 = double.Parse(args[1]); G[i] = new GaussMembershipFunction(gauss1, gauss2); break; } } }
public Quantifier(LinguisticVariableParameters par) : base(par) { if (par.type == LinguisticType.QuantifierAbsolute) { relative = false; } else if (par.type == LinguisticType.QuantifierRelative) { relative = true; } else { throw new Exception("Quantifier - wrong type"); } }
public Summarizer(LinguisticVariableParameters par) : base(par) { attribute = par.attribute; }
public Qualifier(LinguisticVariableParameters par) : base(par) { attribute = par.attribute; }