/// <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; }
/// <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; }
/// <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; }
/// <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; }
/// <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; }
/// <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; }
/// <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; }