public ConfigOptimizerEA(IEAConfiguration optimizerConfig, IRandomNumberGenerator random, bool verbose = true) : base(optimizerConfig, random) { _verbose = verbose; if (verbose) { NewBestFitnessEvent += (best, gen) => { Console.WriteLine($"\nNew best at generation #{gen}: fitness = {best.Fitness}"); Console.WriteLine(best.ToString()); Console.WriteLine(); }; NewGenerationEvent += (gen) => Console.Write($"-{gen}"); TerminationEvent += (reason) => { if (reason == TerminationReason.FitnessLimitReached) { Console.WriteLine($"\nFitness limit reached ({this.Best.Fitness})"); } else if (reason == TerminationReason.GenerationLimitReached) { Console.WriteLine($"\nGeneration limit reached ({this.Generation})"); } }; } }
public TournamentParentSelection(IEAConfiguration configuration) { if (configuration.TournamentSize < 2) { throw new ArgumentException($"Tournament size must be >= 2, but is {configuration.TournamentSize}", "TournamentSize"); } _tournamentSize = configuration.TournamentSize; _prob = configuration.TournamentProbability; }
public TournamentParentSelectionOld(IEAConfiguration configuration) { if (configuration.TournamentSize < 2) { throw new ArgumentException("TournamentSize"); } _tournamentSize = configuration.TournamentSize; _prob = configuration.TournamentProbability; }
public TestEASeeded(IEAConfiguration configuration, IRandomNumberGenerator rng) : base(configuration, rng) { }
public LOLZEA(IEAConfiguration config, IRandomNumberGenerator rng) : base(config, rng) { }
protected override EA CreateTargetEA(IEAConfiguration targetConfig, IRandomNumberGenerator random) { return(new HammingEA(targetConfig, random)); }
public HammingOptimizer(IEAConfiguration optimizerConfig, IRandomNumberGenerator random) : base(optimizerConfig, random) { }
protected abstract EA CreateTargetEA(IEAConfiguration targetConfig, IRandomNumberGenerator random);
public RankParentSelection(IEAConfiguration configuration) { _min = configuration.RankSelectionMinProbability; _max = configuration.RankSelectionMaxProbability; }