Example #1
0
 public void Mutate_RemoveConnections()
 {
     foreach (var neuronGene in InputNeuronGenes.Concat(HiddenNeuronGenes))
     {
         if (neuronGene.Connections.Count != 0 && ConnectionRemoveChance.Value > Pseudo.Random.NextDouble())
         {
             neuronGene.Connections.RemoveAt(Pseudo.Random.Next(neuronGene.Connections.Count));
         }
     }
 }
Example #2
0
        public void Mutate_AddConnections()
        {
            int  count         = 0;
            bool isInputNeuron = true;

            foreach (var neuronGene in InputNeuronGenes.Concat(HiddenNeuronGenes))
            {
                if (count == Inputs.Count)
                {
                    isInputNeuron = false;
                }

                if (ConnectionAddChance.Value > Pseudo.Random.NextDouble())
                {
                    neuronGene.Connections.Add(GetRandomConnection(neuronGene, isInputNeuron));
                }
            }
        }