Example #1
0
        /// <summary>
        /// 获取模糊值最大的range
        /// </summary>
        public FuzzyRange Max(float inputVal)
        {
            float      maxVal = float.NegativeInfinity;
            FuzzyRange ret    = null;

            foreach (var range in _ranges)
            {
                float val = range.Calc(inputVal);
                if (val > maxVal)
                {
                    maxVal = val;
                    ret    = range;
                }
            }
            return(ret);
        }
Example #2
0
 // 模糊逻辑NOT
 public static float FuzzyNOT(FuzzyRange A, FuzzyRange B)
 {
     return(1 - A.Value);
 }
Example #3
0
 // 模糊逻辑AND
 public static float FuzzyAND(FuzzyRange A, FuzzyRange B)
 {
     return(Math.Min(A.Value, B.Value));
 }
Example #4
0
 // 模糊逻辑OR
 public static float FuzzyOR(FuzzyRange A, FuzzyRange B)
 {
     return(Math.Max(A.Value, B.Value));
 }