Example #1
0
        private void ViewSet(ContinuousFuzzySet <double, double> set, Chart chart)
        {
            chart.Series.Clear();
            chart.ResetAutoValues();
            chart.Series.Add("");
            chart.Series[0].ChartType   = SeriesChartType.Spline;
            chart.Series[0].BorderWidth = 3;
            IEnumerator <KeyValuePair <double, double> > it = set.GetEnumerator();

            while (it.MoveNext())
            {
                KeyValuePair <double, double> pair = it.Current;
                chart.Series[0].Points.AddXY(pair.Key, pair.Value);
            }
        }
        public static ContinuousFuzzySet <double, double> Inversion(
            ContinuousFuzzySet <double, double> A)
        {
            List <KeyValuePair <double, double> > list =
                new List <KeyValuePair <double, double> >();
            IEnumerator <KeyValuePair <double, double> > it = A.GetEnumerator();

            while (it.MoveNext())
            {
                double key   = it.Current.Key;
                double value = 1 - it.Current.Value;
                list.Add(new KeyValuePair <double, double>(key, value));
            }

            return(new ContinuousFuzzySet <double, double>(list));
        }
        public static ContinuousFuzzySet <double, double> SimpleUnion(
            ContinuousFuzzySet <double, double> A, ContinuousFuzzySet <double, double> B)
        {
            List <KeyValuePair <double, double> > list =
                new List <KeyValuePair <double, double> >();

            if (A.Values.Count != B.Values.Count)
            {
                throw new ArgumentException("Sets have different size");
            }

            IEnumerator <KeyValuePair <double, double> > ita = A.GetEnumerator();
            IEnumerator <KeyValuePair <double, double> > itb = B.GetEnumerator();

            while (ita.MoveNext() && itb.MoveNext())
            {
                double key   = ita.Current.Key;
                double value = Math.Max(ita.Current.Value, itb.Current.Value);
                list.Add(new KeyValuePair <double, double>(key, value));
            }

            return(new ContinuousFuzzySet <double, double>(list));
        }