Beispiel #1
0
        private static void TestNetwork()
        {
            NeuralNetworkChromosome network = _trainer.FittestChromosome;

            double[] input  = GenerateInput();
            double[] output = network.Compute(input);
            double[] target = CalculateOutput(input);

            Console.WriteLine("After {0} generations:", _trainer.CurrentGeneration);
            Console.WriteLine("calculated output: {0}", string.Join(",", output.Select(x => x.ToString("0.00"))));
            Console.WriteLine("target output:     {0}", string.Join(",", target.Select(x => x.ToString("0.00"))));
            Console.WriteLine("Fitness Value:     {0}", network.FitnessValue);
            Console.WriteLine();

            FitnessFunction(network);
        }
Beispiel #2
0
        private static double FitnessFunction(NeuralNetworkChromosome chromosome)
        {
            double fitness = 0;
            int    n       = 3;

            for (int i = 0; i < n; i++)
            {
                double[] input             = GenerateInput();
                double[] outputFromNetwork = chromosome.Compute(input);
                double[] calculatedOutput  = CalculateOutput(input);
                double   sum = 0;

                for (int z = 0; z < input.Length; z++)
                {
                    sum += Math.Abs(calculatedOutput[z] - outputFromNetwork[z]);
                }

                fitness += INPUT_NEURONS_COUNT - sum;
            }

            return(fitness / n / 2);
        }