Exemple #1
0
    protected void InitGeneticManager()
    {
        var initialGenerationGenerator = new NeuralInitialGenerationCreatorBase(
            InitNeuralModel(),
            new FeedForwardOpBaker()
            );

        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();
    }