/// <summary>
 /// Initializes a new instance of the <see cref="SugenoInferenceEngine"/> class.
 /// </summary>
 /// <param name="tnorm">
 /// The t-norm function.
 /// </param>
 /// <param name="tconorm">
 /// The t-conorm function.
 /// </param>
 /// <param name="defuzzifier">
 /// The de-fuzzifier.
 /// </param>
 public SugenoInferenceEngine(
     ITriangularNorm tnorm,
     ITriangularConorm tconorm,
     IDefuzzifier defuzzifier)
     : base(tnorm, tconorm, defuzzifier)
 {
 }
Пример #2
0
 /// <summary>
 /// Initializes a new Fuzzy <see cref="InferenceSystem"/>.
 /// </summary>
 ///
 /// <param name="database">A fuzzy <see cref="Database"/> containing the system linguistic
 /// variables.</param>
 /// <param name="defuzzifier">A defuzzyfier method used to evaluate the numeric otput
 /// of the system.</param>
 /// <param name="normOperator">A <see cref="INorm"/> operator used to evaluate the norms
 /// in the <see cref="InferenceSystem"/>. For more information of the norm evaluation see <see cref="Rule"/>.</param>
 /// <param name="conormOperator">A <see cref="ICoNorm"/> operator used to evaluate the
 /// conorms in the <see cref="InferenceSystem"/>. For more information of the conorm evaluation see <see cref="Rule"/>.</param>
 ///
 public InferenceSystem(Database database, IDefuzzifier defuzzifier, INorm normOperator, ICoNorm conormOperator)
 {
     this.database       = database;
     this.defuzzifier    = defuzzifier;
     this.normOperator   = normOperator;
     this.conormOperator = conormOperator;
     this.rulebase       = new Rulebase( );
 }
Пример #3
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="connectiveAnd">Function for connective and</param>
 /// <param name="degreeOfFulfillment">degree of Fulfillment</param>
 /// <param name="defuzzifier">Defuzzifier</param>
 public FuzzyAlgorithm(Func<List<IFuzzyElement>, IFuzzyElement> connectiveAnd,
     Func<IFuzzySet, IFuzzyElement, IFuzzySet> degreeOfFulfillment,
     IDefuzzifier defuzzifier)
 {
     this.Defuzzifier = defuzzifier;
     this._and = connectiveAnd;
     this._degreeOfFulfillment = degreeOfFulfillment;
     this._rules = new List<IRule>();
 }
Пример #4
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="fuzzyValues">
 /// The fuzzy Values.
 /// </param>
 /// <param name="connectiveAnd">Function for connective and</param>
 /// <param name="degreeOfFulfillment">degree of Fulfillment</param>
 /// <param name="defuzzifier">Defuzzifier</param>
 /// <returns>
 /// New FuzzyAlgorithm
 /// </returns>
 public RuleBuilder(IFuzzyValues fuzzyValues, 
     IGenericElementFromFuzzyElementsFunction connectiveAnd,
     IGenericDegreeOfFulfillmentFunction degreeOfFulfillment,
     IDefuzzifier defuzzifier)
 {
     this.FuzzyAlgorithm = new FuzzyAlgorithm(connectiveAnd, degreeOfFulfillment, defuzzifier);
     this._fuzzyValues = fuzzyValues;
     this._lastRule = new Rule();
 }
 public ControllerConfiguration(IFuzzifier fuzzifier, 
                                IRuleEvaluation inference, 
                                IFuzzyValueMerger valueMerger, 
                                IDefuzzifier defuzzifier)
 {
     Fuzzifier = fuzzifier;
     Inference = inference;
     ValueMerger = valueMerger;
     Defuzzifier = defuzzifier;
 }
Пример #6
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="connectiveAnd">Function for connective and</param>
        /// <param name="degreeOfFulfillment">degree of Fulfillment</param>
        /// <param name="defuzzifier">Defuzzifier</param>
        public FuzzyAlgorithm(IGenericElementFromFuzzyElementsFunction connectiveAnd,
            IGenericDegreeOfFulfillmentFunction degreeOfFulfillment,
            IDefuzzifier defuzzifier)
        {
            this._functions = new List<object> { connectiveAnd, degreeOfFulfillment };

            this.Defuzzifier = defuzzifier;
            this._and = connectiveAnd.Execute;
            this._degreeOfFulfillment = degreeOfFulfillment.Execute;
            this._rules = new List<IRule>();
        }
Пример #7
0
        public FuzzyInferenceSystem()
        {
            rules = new List<Rule>();
            InputVariables = new FuzzyConditions();
            OutputVariables = new FuzzyConditions();
            fuzzy = new Fuzzifier();

            inputValues = new FuzzyInputValues();

            // TODO
            defuzzy = new WeightedAverage();
        }
Пример #8
0
        /// <summary>
        /// Initializes a new instance of the <see cref="FuzzyInferenceEngine"/> class.
        /// </summary>
        /// <param name="tnorm">
        /// The t-norm function.
        /// </param>
        /// <param name="tconorm">
        /// The t-conorm function.
        /// </param>
        /// <param name="defuzzifier">
        /// The de-fuzzifier.
        /// </param>
        protected FuzzyInferenceEngine(
            ITriangularNorm tnorm,
            ITriangularConorm tconorm,
            IDefuzzifier defuzzifier)
        {
            Validate.NotNull(tnorm, nameof(tnorm));
            Validate.NotNull(tconorm, nameof(tconorm));
            Validate.NotNull(defuzzifier, nameof(defuzzifier));

            this.Database    = new Database();
            this.Rulebase    = new Rulebase();
            this.Evaluator   = new FuzzyEvaluator(tnorm, tconorm);
            this.Defuzzifier = defuzzifier;
        }
Пример #9
0
 /// <summary>
 /// Initializes a new Fuzzy <see cref="InferenceSystem"/>.
 /// </summary>
 ///
 /// <param name="database">A fuzzy <see cref="Database"/> containing the system linguistic variables.</param>
 /// <param name="defuzzifier">A defuzzyfier method used to evaluate the numeric uotput of the system.</param>
 ///
 public InferenceSystem(Database database, IDefuzzifier defuzzifier)
     : this(database, defuzzifier, new MinimumNorm( ), new MaximumCoNorm( ))
 {
 }
Пример #10
0
 /// <summary>
 /// Initializes a new Fuzzy <see cref="InferenceSystem"/>.
 /// </summary>
 /// 
 /// <param name="database">A fuzzy <see cref="Database"/> containing the system linguistic
 /// variables.</param>
 /// <param name="defuzzifier">A defuzzyfier method used to evaluate the numeric otput
 /// of the system.</param>
 /// <param name="normOperator">A <see cref="INorm"/> operator used to evaluate the norms
 /// in the <see cref="InferenceSystem"/>. For more information of the norm evaluation see <see cref="Rule"/>.</param>
 /// <param name="conormOperator">A <see cref="ICoNorm"/> operator used to evaluate the
 /// conorms in the <see cref="InferenceSystem"/>. For more information of the conorm evaluation see <see cref="Rule"/>.</param>
 /// 
 public InferenceSystem( Database database, IDefuzzifier defuzzifier, INorm normOperator, ICoNorm conormOperator )
 {
     this.database = database;
     this.defuzzifier = defuzzifier;
     this.normOperator = normOperator;
     this.conormOperator = conormOperator;
     this.rulebase = new Rulebase( );
 }
Пример #11
0
 /// <summary>
 /// Initializes a new Fuzzy <see cref="InferenceSystem"/>.
 /// </summary>
 /// 
 /// <param name="database">A fuzzy <see cref="Database"/> containing the system linguistic variables.</param>
 /// <param name="defuzzifier">A defuzzyfier method used to evaluate the numeric uotput of the system.</param>
 /// 
 public InferenceSystem( Database database, IDefuzzifier defuzzifier )
     : this( database, defuzzifier, new MinimumNorm( ), new MaximumCoNorm( ) )
 {
 }
Пример #12
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="fuzzyValues">
 /// The fuzzy Values.
 /// </param>
 /// <param name="connectiveAnd">Function for connective and</param>
 /// <param name="degreeOfFulfillment">degree of Fulfillment</param>
 /// <param name="defuzzifier">Defuzzifier</param>
 /// <returns>
 /// New FuzzyAlgorithm
 /// </returns>
 public RuleBuilder(IFuzzyValues fuzzyValues,
     Func<List<IFuzzyElement>, IFuzzyElement> connectiveAnd,
     Func<IFuzzySet, IFuzzyElement, IFuzzySet> degreeOfFulfillment,
     IDefuzzifier defuzzifier)
 {
     this.FuzzyAlgorithm = new FuzzyAlgorithm(connectiveAnd, degreeOfFulfillment, defuzzifier);
     this._fuzzyValues = fuzzyValues;
     this._lastRule = new Rule();
 }
 public AccelerationFuzzyEngine(IDefuzzifier defuzzifier) => _defuzzifier = defuzzifier;
Пример #14
0
 public HelmFuzzyEngine(IDefuzzifier defuzzifier) => _defuzzifier = defuzzifier;