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); }
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); }
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);