public DNA CrossOver(DNA otherParent) { DNA newDNA = new DNA(); for (int k = 0; k < dna.Count; k++) //INDICE DE LAYER (Input-Hidden o Hidden-Output) { for (int i = 0; i < dna[k].Length; i++) //INDICE DE LA PRIMERA LAYER { for (int j = 0; j < dna[k][i].Length; j++) //INDICE DE LA SEGUNDA LAYER { float random = Random.Range(0f, 1f); float newValue = random >= 0.5f ? otherParent.GetDNA()[k][i][j] : dna[k][i][j]; newDNA.SetDNA(k, i, j, newValue); //CON [k][i][j], accedo al elemento [i][j] de la layer "k" } } } return new DNA(newDNA); }
public DNA(DNA newDNA) { dna = newDNA.GetDNA(); }
public NeuralNetwork(DNA dna) { weightsIH = dna.GetDNA()[0]; //LA LAYER Input-Hidden weightsHO = dna.GetDNA()[1]; //LA LAYER Hidden-Output }