Example #1
0
        /// <summary>
        /// Mamdani Min Implication Operator
        /// </summary>
        /// <param name="elementA">FuzzyElement A</param>
        /// <param name="elementB">FuzzyElement B</param>
        /// <returns>FuzzyElement</returns>
        public static IFuzzyElement MamdaniMinImplication(this IFuzzyElement elementA, IFuzzyElement elementB)
        {
            var fuzzy = elementA.Clone();
            fuzzy.Value = elementA.Min(elementB).Value;

            return fuzzy;
        }
Example #2
0
        /// <summary>
        /// Zadeh Max Min Implication Operator
        /// </summary>
        /// <param name="elementA">FuzzyElement A</param>
        /// <param name="elementB">FuzzyElement B</param>
        /// <returns>FuzzyElement</returns>
        public static IFuzzyElement ZadehMaxMinImplication(this IFuzzyElement elementA, IFuzzyElement elementB)
        {
            var fuzzy = elementA.Clone();
            fuzzy.Value = elementA.Min(elementB).Max(elementA.Clone(x => x.Value = 1 - elementA.Value)).Value;

            return fuzzy;
        }
Example #3
0
        /// <summary>
        /// Larsen Product Implication Operator
        /// </summary>
        /// <param name="elementA">FuzzyElement A</param>
        /// <param name="elementB">FuzzyElement B</param>
        /// <returns>FuzzyElement</returns>
        public static IFuzzyElement LarsenProductImplication(this IFuzzyElement elementA, IFuzzyElement elementB)
        {
            var fuzzy = elementA.Clone();
            fuzzy.Value = elementA.Value * elementB.Value;

            return fuzzy;
        }
Example #4
0
        /// <summary>
        /// Degree of fulfillment
        /// </summary>
        /// <param name="fuzzySet">FuzzySet</param>
        /// <param name="fuzzyElement">FuzzyElement</param>
        /// <returns>FuzzySet</returns>
        private static IFuzzySet DegreeOfFulfillment(IFuzzySet fuzzySet, IFuzzyElement fuzzyElement)
        {
            var result = fuzzySet.GetNewEmpty();

            foreach (var element in fuzzySet)
            {
                result.AddElement(element.Min(fuzzyElement));
            }

            return result;
        }
Example #5
0
 /// <summary>
 /// Add element in the fuzzy set
 /// </summary>
 /// <param name="element">Elements to add</param>
 public void AddElement(IFuzzyElement element)
 {
     this.Elements.Add(element.X, element);
 }