public double Evaluate(IChromosome chromosone) { var test = (DoubleArrayChromosome)chromosone; var value = test.Value; var net = new NeuralNetworks(); for (int i = 0; i < 6; i++) { net.W1[i / 3, i % 3] = value[i]; } for (int i = 6; i < 9; i++) { net.W2[i - 6, 0] = value[i]; } var a = Math.Pow(net.Forward(new double[1, 2] { { 0, 1 } })[0, 0] - 1, 2); var b = Math.Pow(net.Forward(new double[1, 2] { { 1, 0 } })[0, 0] - 1, 2); var c = Math.Pow(net.Forward(new double[1, 2] { { 0, 0 } })[0, 0], 2); var d = Math.Pow(net.Forward(new double[1, 2] { { 1, 1 } })[0, 0], 2); return(Math.Max(1 - a - b - c - d, 0)); }
static void Main(string[] args) { AccordTest.RunGene(); var x = new NeuralNetworks(); var data = new double [3, 2] { { 1.3, 0.2 }, { 0.5, 1.1 }, { 0.4, 4.4 } }; var y = x.Forward(data); }