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