コード例 #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);
        }
コード例 #2
0
ファイル: GraphTest.cs プロジェクト: Yairsno1/Some-Demos
        private Graph CreateTriangleG()
        {
            Graph          g   = null;
            IVertex        v1  = null;
            IVertex        v2  = null;
            IVertex        v3  = null;
            IEdge          e11 = null;
            IEdge          e13 = null;
            IEdge          e21 = null;
            IEdge          e32 = null;
            Approximations H   = null;

            g = new Graph();

            v1 = g.AddVertex("V1");
            v2 = g.AddVertex("V2");
            v3 = g.AddVertex("V3");

            e11 = g.AddEdge(v1, v2, 5);
            e21 = g.AddEdge(v2, v1, 5);
            e13 = g.AddEdge(v1, v3, 7);
            e32 = g.AddEdge(v3, v2, 3);

            H = new Approximations();
            H.SetH(v2, v3, 2);
            H.SetH(v2, v1, 4);
            g.Approximations = H;

            return(g);
        }
コード例 #3
0
ファイル: MainWindowMainPage.cs プロジェクト: jmichalak9/msi
        private void CalculateButton_Click(object sender, EventArgs e)
        {
            if (SelectedData == null)
            {
                MessageBox.Show("Fill data table", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            float[,] Q = SelectedData.Q.Numbers;             //candidates
            float[,] R = SelectedData.R.Numbers;             //positions

            float[,] distances = Approximations.FuzzyRelationBasedApproximation(norm, impl, dist, Q, R,
                                                                                out Bounds[,] objectBounds, out Bounds[,] propertyBounds);