Ejemplo n.º 1
0
        private NormalizationStatus CheckWeights(List <dtoItemWeight> weights, Boolean isFuzzy, Boolean autoUpdateWeights)
        {
            NormalizationStatus nStatus = NormalizationStatus.none;

            if (weights.Any(i => !String.IsNullOrWhiteSpace(i.Value)))
            {
                LM.MathLibrary.Extensions.FuzzyExtension.Normalization status;
                TriangularFuzzyNumber[] w = null;
                try
                {
                    if (isFuzzy)
                    {
                        w = weights.Select(i => TriangularFuzzyNumber.Parse(i.Value)).ToArray();
                    }
                    else
                    {
                        w = weights.Select(i => new TriangularFuzzyNumber(long.Parse(i.Value))).ToArray();
                    }
                    w = w.NormalizeWeights(out status).ToArray();
                    if (status == FuzzyExtension.Normalization.normalizable)
                    {
                        Int32 index = 0;
                        foreach (TriangularFuzzyNumber i in w)
                        {
                            if (w[index] != null)
                            {
                                weights[index].Value = (isFuzzy ? w[index].ToString() : w[index].ToCrispy().ToString());
                            }
                            else
                            {
                                weights[index].Value = "";
                            }
                            index++;
                        }
                        if (autoUpdateWeights)
                        {
                            View.UpdateWeights(weights);
                        }
                    }
                }
                catch (Exception ex)
                {
                    status = FuzzyExtension.Normalization.none;
                }
                nStatus = TranslateStatus(status);
            }

            View.CurrentNormalization = nStatus;
            return(nStatus);
        }
Ejemplo n.º 2
0
        public Boolean CheckWeightsNormalization(List <dtoItemWeight> weights, Boolean isFuzzy, Boolean autoUpdateWeights)
        {
            NormalizationStatus nStatus = CheckWeights(weights, isFuzzy, autoUpdateWeights);

            switch (nStatus)
            {
            case NormalizationStatus.normalized:
                View.HideNormalizationMessage();
                return(true);

            case NormalizationStatus.normalizable:
                View.DisplayNormalizationMessage(nStatus);
                return(true);

            default:
                View.DisplayNormalizationMessage(nStatus);
                return(false);
            }
        }