Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
 public DNA(DNA newDNA)
 {
     dna = newDNA.GetDNA();
 }
Ejemplo n.º 3
0
 public NeuralNetwork(DNA dna)
 {
     weightsIH = dna.GetDNA()[0];    //LA LAYER Input-Hidden
     weightsHO = dna.GetDNA()[1];    //LA LAYER Hidden-Output
 }