public EvolutionaryLearning( ActivationNetwork activationNetwork, int populationSize )
{
// Check of assumptions during debugging only
Debug.Assert( activationNetwork != null );
Debug.Assert( populationSize > 0 );
// networks's parameters
this.network = activationNetwork;
this.numberOfNetworksWeights = CalculateNetworkSize( activationNetwork );
// population parameters
this.populationSize = populationSize;
this.chromosomeGenerator = new UniformGenerator( new Range( -1, 1 ) );
this.mutationMultiplierGenerator = new ExponentialGenerator( 1 );
this.mutationAdditionGenerator = new UniformGenerator( new Range( -0.5f, 0.5f ) );
this.selectionMethod = new EliteSelection( );
this.crossOverRate = 0.75;
this.mutationRate = 0.25;
this.randomSelectionRate = 0.2;
}