/// <summary>
        /// Creates a new solver.
        /// </summary>
        /// <param name="population_size"></param>
        /// <param name="stagnation"></param>
        /// <param name="generation_operation"></param>
        /// <param name="cross_over_operation"></param>
        public EdgeAssemblyCrossOverSolver(int population_size, int stagnation,
                                           IGenerationOperation <List <int>, GeneticProblem, Fitness> generation_operation,
                                           ICrossOverOperation <List <int>, GeneticProblem, Fitness> cross_over_operation)
        {
            //_stopped = false;
            _stagnation      = stagnation;
            _population_size = population_size;

            _generation_operation = generation_operation;
            _cross_over_operation = cross_over_operation;
        }
        /// <summary>
        /// Creates a new solver.
        /// </summary>
        /// <param name="population_size"></param>
        /// <param name="stagnation"></param>
        /// <param name="generation_operation"></param>
        /// <param name="cross_over_operation"></param>
        public EdgeAssemblyCrossOverSolver(int population_size, int stagnation,
            IGenerationOperation<List<int>, GeneticProblem, Fitness> generation_operation,
            ICrossOverOperation<List<int>, GeneticProblem, Fitness> cross_over_operation)
        {
            //_stopped = false;
            _stagnation = stagnation;
            _population_size = population_size;

            _generation_operation = generation_operation;
            _cross_over_operation = cross_over_operation;
        }
Exemple #3
0
        /// <summary>
        /// Creates a genetic solver.
        /// </summary>
        public GeneticSolver()
        {
            _mutation_operation = new BestDetailedPlacementMutationOperation();
            _cross_over_operation = new SequentialContructiveCrossoverOperator();
            _generation_operation = new BestPlacementGenerationOperation();

            _eltism = 10;
            _mutation = 30;
            _cross = 20;

            _population = 20;
            _stagnation_count = 100;
        }
Exemple #4
0
        /// <summary>
        /// Creates a genetic solver.
        /// </summary>
        public GeneticSolver()
        {
            _mutation_operation   = new BestDetailedPlacementMutationOperation();
            _cross_over_operation = new SequentialContructiveCrossoverOperator();
            _generation_operation = new BestPlacementGenerationOperation();

            _eltism   = 10;
            _mutation = 30;
            _cross    = 20;

            _population       = 20;
            _stagnation_count = 100;
        }
Exemple #5
0
 /// <summary>
 /// Creates a new solver.
 /// </summary>
 /// <param name="settings"></param>
 /// <param name="selector"></param>
 /// <param name="combined_operation"></param>
 /// <param name="problem"></param>
 /// <param name="fitness_calculator"></param>
 public Solver(
     ProblemType problem,
     SolverSettings settings,
     ISelector <GenomeType, ProblemType, WeightType> selector,
     IOperation <GenomeType, ProblemType, WeightType> combined_operation,
     IFitnessCalculator <GenomeType, ProblemType, WeightType> fitness_calculator)
 {
     _problem              = problem;
     _settings             = settings;
     _selector             = selector;
     _mutation_operation   = combined_operation;
     _crossOverOperation   = combined_operation;
     _generation_operation = combined_operation;
     _fitness_calculator   = fitness_calculator;
 }
Exemple #6
0
        /// <summary>
        /// Creates a genetic solver.
        /// </summary>
        /// <param name="population"></param>
        /// <param name="stagnation"></param>
        /// <param name="elitism"></param>
        /// <param name="mutation_operation"></param>
        /// <param name="mutation"></param>
        /// <param name="cross_over_operation"></param>
        /// <param name="cross_over"></param>
        /// <param name="generation_operation"></param>
        public GeneticSolver(int population, int stagnation, int elitism,
                             IMutationOperation <List <int>, GeneticProblem, Fitness> mutation_operation, int mutation,
                             ICrossOverOperation <List <int>, GeneticProblem, Fitness> cross_over_operation, int cross_over,
                             IGenerationOperation <List <int>, GeneticProblem, Fitness> generation_operation)
        {
            _mutation_operation   = mutation_operation;
            _cross_over_operation = cross_over_operation;
            _generation_operation = generation_operation;

            _eltism   = elitism;
            _mutation = mutation;
            _cross    = cross_over;

            _population       = population;
            _stagnation_count = stagnation;
        }
Exemple #7
0
 /// <summary>
 /// Creates a new solver.
 /// </summary>
 /// <param name="problem"></param>
 /// <param name="settings"></param>
 /// <param name="selector"></param>
 /// <param name="mutation"></param>
 /// <param name="cross_over"></param>
 /// <param name="generation"></param>
 /// <param name="fitness_calculator"></param>
 /// <param name="accept_only_better_cross_over"></param>
 /// <param name="accept_only_better_mutation"></param>
 public Solver(
     ProblemType problem,
     SolverSettings settings,
     ISelector <GenomeType, ProblemType, WeightType> selector,
     IMutationOperation <GenomeType, ProblemType, WeightType> mutation,
     ICrossOverOperation <GenomeType, ProblemType, WeightType> cross_over,
     IGenerationOperation <GenomeType, ProblemType, WeightType> generation,
     IFitnessCalculator <GenomeType, ProblemType, WeightType> fitness_calculator,
     bool accept_only_better_cross_over, bool accept_only_better_mutation)
 {
     _problem                          = problem;
     _settings                         = settings;
     _selector                         = selector;
     _generation_operation             = generation;
     _mutation_operation               = mutation;
     _crossOverOperation               = cross_over;
     _fitness_calculator               = fitness_calculator;
     _accept_only_better_on_cross_over = accept_only_better_cross_over;
     _accept_only_better_on_mutation   = accept_only_better_mutation;
 }
Exemple #8
0
        /// <summary>
        /// Creates a genetic solver.
        /// </summary>
        /// <param name="population"></param>
        /// <param name="stagnation"></param>
        /// <param name="elitism"></param>
        /// <param name="mutation_operation"></param>
        /// <param name="mutation"></param>
        /// <param name="cross_over_operation"></param>
        /// <param name="cross_over"></param>
        /// <param name="generation_operation"></param>
        public GeneticSolver(int population, int stagnation, int elitism,
            IMutationOperation<List<int>, GeneticProblem, Fitness> mutation_operation, int mutation,
            ICrossOverOperation<List<int>, GeneticProblem, Fitness> cross_over_operation, int cross_over,
            IGenerationOperation<List<int>, GeneticProblem, Fitness> generation_operation)
        {
            _mutation_operation = mutation_operation;
            _cross_over_operation = cross_over_operation;
            _generation_operation = generation_operation;

            _eltism = elitism;
            _mutation = mutation;
            _cross = cross_over;

            _population = population;
            _stagnation_count = stagnation;
        }