protected void InitGeneticManager() { var initialGenerationGenerator = new NeuralInitialGenerationCreatorBase( InitNeuralModel(), new RecursiveNetworkOpBaker()); var selection = new RouletteWheelSelectionWithRepetion(); var crossover = new OnePointCrossover(true); var breeding = new BreedingClassic( crossoverPart, minProduction: 1, selection: selection, crossover: crossover, mutationManager: InitMutations() ); var reinsertion = new ReinsertionFromSelection( reinsertionPart, minProduction: 0, selection: new EliteSelection()); var producers = new IGenomeProducer[] { breeding, reinsertion }; var genomeForge = new GenomeForge(producers); var generationManager = new GenerationManagerKeepLast(); geneticManager = new GeneticManagerClassic( generationManager, initialGenerationGenerator, genomeForge, genomesCount ); geneticManager.Init(); }
public Program() { var synapseTracker = new SynapseInnovNbTracker(); var initialGenerationGenerator = new NeuralInitialGenerationCreatorBase( InitModel(), new RecursiveNetworkOpBaker()); //var selection = new EliteSelection(); var selection = new RouletteWheelSelectionWithRepetion(); var crossover = new OnePointCrossover(true); var breeding = new BreedingClassic( crossoverPart, 1, selection, crossover, InitMutations() ); var reinsertion = new ReinsertionFromSelection( reinsertionPart, 0, new EliteSelection()); var producers = new IGenomeProducer[] { breeding, reinsertion }; var genomeForge = new GenomeForge(producers); var generationManager = new GenerationManagerKeepLast(); geneticManager = new GeneticManagerClassic( generationManager, initialGenerationGenerator, genomeForge, genomesCount ); geneticManager.Init(); }
private void InitGenetics() { var initialGenerationGenerator = new NeuralInitialGenerationCreatorBase( //Init4InputsNeuralModel(), Init2InputsNeuralModel(), new FeedForwardOpBaker()); //var selection = new EliteSelection(); //var selection = new RouletteWheelSelection(); var selection = new RouletteWheelSelectionWithRepetion(); var crossover = new OnePointCrossover(true); var breeding = new BreedingClassic( crossoverPart, 1, selection, crossover, InitMutations() ); var reinsertion = new ReinsertionFromSelection(reinsertionPart, 0, new EliteSelection()); var producers = new IGenomeProducer[] { breeding, reinsertion }; var genomeForge = new GenomeForge(producers); var generationManager = new GenerationManagerKeepLast(); geneticManager = new GeneticManagerClassic( generationManager, initialGenerationGenerator, genomeForge, genomesCount ); geneticManager.Init(); }
public void CheckIfAllAreSelected() { var selection = new RouletteWheelSelection(); var generationMng = new GenerationManagerKeepLast(); var genomes = new List <GenomeBase>(50); for (int i = 0; i < genomes.Count; i++) { var newGenome = new GenomeBase { Fitness = i - 25 }; genomes.Add(newGenome); } generationMng.RegisterNewGeneration(new Generation(genomes.ToArray(), 0)); var roulette = new RouletteWheelSelection(); roulette.Prepare(generationMng.GetGenomes().ToArray(), null, null, genomes.Count); var selected = roulette.Select(genomes.Count).ToArray(); Assert.True(selected.Count() == genomes.Count); Assert.False(selected.Any(x => x == null)); foreach (var genome in selected) { Assert.True(selected.Count(x => x == genome) == 1); } }
public Program() { GARandomManager.Random = new RandomClassic((int)DateTime.Now.Ticks); var generationManager = new GenerationManagerKeepLast(); var initialGenerationGenerator = new GASumInitialGenerationGenerator { GeneCount = genesCount, MinValue = minGeneValue, MaxValue = maxGeneValue }; var selection = new EliteSelection(); var crossover = new OnePointCrossover(useBothChildren: true); var breeding = new BreedingClassic( crossoverPart, minProduction: 1, selection: selection, crossover: crossover, mutationManager: InitMutations()); var reinsertion = new ReinsertionFromSelection( reinsertionPart, minProduction: 1, selection: new EliteSelection()); var producers = new List <IGenomeProducer> { reinsertion, breeding }; var genomeForge = new GenomeForge(producers); geneticManager = new GeneticManagerClassic( generationManager, initialGenerationGenerator, genomeForge, genomesCount ); geneticManager.Init(); fitnessEvaluation = new FitnessEvaluation(); }
public Program() { datasets = GenerateDatasets(25, () => GARandomManager.Random.Next(1, 20)).ToArray(); //datasets = GenerateDatasets(50, 10).ToArray(); var synapseTracker = new SynapseInnovNbTracker(); var initialGenerationGenerator = new NeuralInitialGenerationCreatorBase( InitModel(), new FeedForwardOpBaker()); //var selection = new EliteSelection(); var selection = new RouletteWheelSelectionWithRepetion(); var crossover = new OnePointCrossover(true); var breeding = new BreedingClassic( crossoverPart, 1, selection, crossover, InitMutations() ); var reinsertion = new ReinsertionFromSelection( reinsertionPart, 0, new EliteSelection()); var producers = new IGenomeProducer[] { breeding, reinsertion }; var genomeForge = new GenomeForge(producers); var generationManager = new GenerationManagerKeepLast(); geneticManager = new GeneticManagerClassic( generationManager, initialGenerationGenerator, genomeForge, genomesCount ); geneticManager.Init(); }
public Salesman(Vector2[] locations) { Locations = locations; var initialGenerationGenerator = new TSInitGenerationGenerator(Locations); var selection = new RouletteWheelSelectionWithRepetion(); var crossover = new TSCrossover(); var breeding = new BreedingClassic( crossoverPart, 0, selection, crossover, InitMutations() ); var reinsertion = new ReinsertionFromSelection( reinsertionPart, minProduction: 0, selection: new EliteSelection()); var producers = new IGenomeProducer[] { reinsertion, breeding }; var genomeForge = new GenomeForge(producers); var generationManager = new GenerationManagerKeepLast(); geneticManager = new GeneticManagerClassic( generationManager, initialGenerationGenerator, genomeForge, genomesCount ); geneticManager.Init(); }