예제 #1
0
        public void Experiment3()
        {
            String        filename = "Function3";
            StringBuilder expected = new StringBuilder();
            StringBuilder result   = new StringBuilder();

            int fuzzySetsCount = 10;

            Range           range     = new Range(-5, 5);
            IFunction       function  = FunctionsHelper.GetConcreteFunction(FunNumber.F3);
            List <FuzzySet> fuzzySets = FuzzySet.coverRangeWithFuzzySets(range, fuzzySetsCount);

            SimpleFuzzyRules3D fuzzyRules = new SimpleFuzzyRules3D(generateRandom2DPoints(range, RANDOM_POINTS_COUNT), function, fuzzySets);

            double[][] testPoints = generateRandom2DPoints(range, RANDOM_POINTS_COUNT);

            foreach (double[] xs in testPoints)
            {
                double output = fuzzyRules.getOutput(xs);

                //			Console.WriteLine(String.format("f(" + Arrays.toString(xs) + ") = %.2f, expected %.2f", output, function.evaluate(xs)));

                expected.Append(StringUtils.Join(xs, " ") + " " + output + "\n");
                result.Append(StringUtils.Join(xs, " ") + " " + function.evaluate(xs) + "\n");
            }

            // Save results to files.
            FileManagement.WriteToFile(outputDirectory + "//fuzzy_" + filename + "_expected.dat", expected.ToString());
            FileManagement.WriteToFile(outputDirectory + "//fuzzy_" + filename + "_result.dat", result.ToString());

            double error = fuzzyRules.getError(testPoints);

            Console.WriteLine("Error = " + error);
        }
예제 #2
0
        public void Experiment3()
        {
            String filename = "Function3";
            StringBuilder expected = new StringBuilder();
            StringBuilder result = new StringBuilder();

            int fuzzySetsCount = 10;

            Range range = new Range(-5, 5);
            IFunction function = FunctionsHelper.GetConcreteFunction(FunNumber.F3);
            List<FuzzySet> fuzzySets = FuzzySet.coverRangeWithFuzzySets(range, fuzzySetsCount);

            SimpleFuzzyRules3D fuzzyRules = new SimpleFuzzyRules3D(generateRandom2DPoints(range, RANDOM_POINTS_COUNT), function, fuzzySets);

            double[][] testPoints = generateRandom2DPoints(range, RANDOM_POINTS_COUNT);

            foreach (double[] xs in testPoints)
            {
                double output = fuzzyRules.getOutput(xs);

            //			Console.WriteLine(String.format("f(" + Arrays.toString(xs) + ") = %.2f, expected %.2f", output, function.evaluate(xs)));

                expected.Append(StringUtils.Join(xs, " ") + " " + output + "\n");
                result.Append(StringUtils.Join(xs, " ") + " " + function.evaluate(xs) + "\n");
            }

            // Save results to files.
            FileManagement.WriteToFile(outputDirectory + "//fuzzy_" + filename + "_expected.dat", expected.ToString());
            FileManagement.WriteToFile(outputDirectory + "//fuzzy_" + filename + "_result.dat", result.ToString());

            double error = fuzzyRules.getError(testPoints);
            Console.WriteLine("Error = " + error);
        }