예제 #1
0
        public static FuzzySet2D MaxMultCompose(FuzzySet2D R, FuzzySet2D S)
        {
            List <double> zList = new List <double>();

            zList.AddRange(R.getUniqueX2());
            zList.AddRange(S.getUniqueX1());
            List <double> xList = new List <double>();

            xList.AddRange(R.getUniqueX1());
            List <double> yList = new List <double>();

            yList.AddRange(S.getUniqueX2());
            FuzzySet2D res = new FuzzySet2D();

            foreach (double x in xList)
            {
                foreach (double y in yList)
                {
                    double sup = 0;
                    foreach (double z in zList)
                    {
                        double tmp = R.Mu(x, z) * S.Mu(z, y);
                        if (tmp > sup)
                        {
                            sup = tmp;
                        }
                    }
                    res.AddDot(x, y, sup);
                }
            }
            return(res);
        }
예제 #2
0
        public static FuzzySet2D MinMaxCompose(FuzzySet2D R, FuzzySet2D S)
        {
            List <double> zList = new List <double>();

            zList.AddRange(R.getUniqueX2());
            zList.AddRange(S.getUniqueX1());
            List <double> xList = new List <double>();

            xList.AddRange(R.getUniqueX1());
            List <double> yList = new List <double>();

            yList.AddRange(S.getUniqueX2());
            FuzzySet2D res = new FuzzySet2D();

            foreach (double x in xList)
            {
                foreach (double y in yList)
                {
                    double inf = 1;
                    foreach (double z in zList)
                    {
                        double tmp = Math.Max(R.Mu(x, z), S.Mu(z, y));
                        if (tmp < inf)
                        {
                            inf = tmp;
                        }
                    }
                    res.AddDot(x, y, inf);
                }
            }
            return(res);
        }