Beispiel #1
0
        private double CalculateT1WithoutQualifier(LinguisticSummary summary)
        {
            double        sumS   = 0.0;
            OperationType opType = summary.LogicalOperationSummarizer.GetOperationType();

            foreach (var tuple in summary.Data)
            {
                double compoundSummarizer = TwoFuzzySetOperation.PerformOperation(summary.Summarizers, tuple, opType);
                _summarizerMemberships.Add(compoundSummarizer);
                sumS += compoundSummarizer;
            }

            double r = sumS;

            return(summary.Quantifier.IsAbsolute
                ? summary.Quantifier.CalculateMembership(r)
                : summary.Quantifier.CalculateMembership(r / summary.Data.Count));
        }
Beispiel #2
0
        private double CalculateT1WithQualifier(LinguisticSummary summary)
        {
            double        numerator   = 0.0;
            double        denominator = 0.0;
            OperationType opType      = summary.LogicalOperationSummarizer.GetOperationType();

            foreach (var tuple in summary.Data)
            {
                double compoundSummarizer = TwoFuzzySetOperation.PerformOperation(summary.Summarizers, tuple, opType);
                _summarizerMemberships.Add(compoundSummarizer);

                double w = summary.Qualifier.CalculateMembership(tuple.Get(summary.Qualifier.Column));
                _qualifierMemberships.Add(w);

                numerator   += Math.Min(compoundSummarizer, w);
                denominator += w;
            }

            double r = numerator / denominator;

            return(summary.Quantifier.CalculateMembership(r));
        }