private float Maximum(FuzzyNumber fuzzyNumber)
        {
            float max = 0;

            FuzzyUtility.FuzzyStates maxState = FuzzyUtility.FuzzyStates.Z;

            foreach (FuzzyUtility.FuzzyStates state in System.Enum.GetValues(typeof(FuzzyUtility.FuzzyStates)))
            {
                float current = fuzzyNumber[state];
                if (current <= max)
                {
                    continue;
                }
                else
                {
                    maxState = state;
                    max      = current;
                }
            }

            float meanOfMaximum = FuzzyNumber.NormalisedStateValues[maxState];

            return(meanOfMaximum);
        }
示例#2
0
 public float this[FuzzyUtility.FuzzyStates state]
 {
     get { return(values[(int)state]); }
     set { values[(int)state] = value; }
 }
示例#3
0
        /// <summary>
        /// Regular find max algorythm on the values provided
        /// </summary>
        private float GetMaxVariableMembershipState(CrispOutput.Outputs outputVariable, FuzzyUtility.FuzzyStates membershipState, List <FuzzyOutputData> unaggragatedFuzzyOuputs)
        {
            float cur;
            float max = 0;

            foreach (FuzzyOutputData fuzzyOutput in unaggragatedFuzzyOuputs)
            {
                cur = fuzzyOutput[outputVariable][membershipState];
                if (cur <= max)
                {
                    continue;
                }
                else
                {
                    max = cur;
                }
            }
            return(max);
        }
 internal AnimationCurve this[FuzzyUtility.FuzzyStates state]
 {
     get { return(curve[(int)state]); }
     set { curve[(int)state] = value; }
 }