Beispiel #1
0
        public void ObjectBoundApproximationTest()
        {
            var Q = new float[, ] {
                { 0.4f, 0.3f, 0.1f, 0.4f, 0.1f },
                { 0.7f, 0.1f, 0.0f, 0.7f, 0.1f },
                { 0.3f, 0.6f, 0.2f, 0.2f, 0.1f },
                { 0.1f, 0.2f, 0.8f, 0.2f, 0.2f },
                { 0.1f, 0.0f, 0.2f, 0.2f, 0.8f },
            };

            var R = new float[, ] {
                { 0.8f, 0.6f, 0.2f, 0.6f, 0.1f },
                { 0.0f, 0.4f, 0.6f, 0.1f, 0.1f },
                { 0.8f, 0.8f, 0.0f, 0.2f, 0.0f },
                { 0.6f, 0.5f, 0.3f, 0.7f, 0.3f },
            };

            var exp = new Bounds[, ]
            {
                { B(0.6, 0.8), B(0.6, 0.6), B(0.2, 0.2), B(0.6, 0.8), B(0.1, 0.2), },
                { B(0.0, 0.3), B(0.3, 0.4), B(0.6, 0.6), B(0.0, 0.3), B(0.1, 0.2), },
                { B(0.2, 0.8), B(0.4, 0.8), B(0.0, 0.2), B(0.2, 0.8), B(0.0, 0.2), },
                { B(0.6, 0.7), B(0.5, 0.5), B(0.3, 0.3), B(0.6, 0.7), B(0.3, 0.3), },
            };

            var act = Approximations.ObjectBoundApproximation(Norms.Lukasiewicz, Implications.Lukasiewicz, Q, R);

            AssertApproximationsEqual(exp, act);
        }