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(); }
protected int GetProducerNbOfGenomesToMake( int totalRequired, int available, IGenomeProducer producer) { var result = (int)(producer.ProductionPart * totalRequired); if (result > available) { result = available; } if (result < producer.MinProduction) { result = producer.MinProduction; } return(result); }
protected void ExecuteProducer( IGenerationManager generationManager, GenomeProductionSession totalSession, IGenomeProducer producer) { var requiredNb = GetProducerNbOfGenomesToMake( totalSession.requiredNb, totalSession.requiredNb - totalSession.CurrentlyProduced.Count, producer); var thisSession = new GenomeProductionSession(requiredNb); producer.Produce( generationManager.GetGenomes().ToArray(), thisSession, totalSession ); totalSession.Merge(thisSession); }
public EcoSystemController(CanvasAnimatedControl control, MapSize mapSize, IEnumerable <Coordinates> obstacles) { this.control = control; this.obstacles = obstacles; this.mapSize = mapSize; generator = new OpCodeGenerator(); bots = ImmutableList <BeetleBot> .Empty; map = new CellType[mapSize.Width, mapSize.Height]; cellSize = new Size(control.Size.Width / mapSize.Width, control.Size.Height / mapSize.Height); genomeProducer = new GenomeProducer(generator, GenomeLength, 1); Epoch = 0; Scene = new Scene(this); control.PointerEntered += OnPointerEntered; control.PointerExited += OnPointerExited; control.PointerPressed += OnPointerPressed; control.PointerReleased += OnPointerReleased; control.PointerMoved += OnPointerMoved; }
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(); }
/// <summary> /// /// </summary> /// <param name="genomeProducer"></param> /// <param name="positioningSystem"></param> public BeetleBotFactory(ICreatePositionProvider positionProvider, IGenomeProducer genomeProducer) { this.positionProvider = positionProvider; this.genomeProducer = genomeProducer; }