optimiser.setSelectionOperator(RankSelection());

# Create the genetic operators
elitism = ElitismOperator(0.1);
new_blood = NewBloodOperator(0.3);
gaussian_mutation = GaussianMutationOperator(0.1, 0.4);
blend_cross_over = BlendCrossoverOperator(0.5, gaussian_mutation);

# Add the genetic operators to the EA
optimiser.addGeneticOperator(new_blood);
optimiser.addGeneticOperator(gaussian_mutation);
optimiser.addGeneticOperator(blend_cross_over);
optimiser.addGeneticOperator(elitism);

# Print the current state in the console
optimiser.printCurrentStates(0);

# Run the optimisation loop g_iterations times,
# with the mutation variance varying linearly from g_max_mutation_sigma to
# g_min_mutation_sigma
for i in range(g_iterations):
    # Compute the value of the mutation variance
    sigma = g_min_mutation_sigma + (g_iterations - 1 - i) / (g_iterations - 1) * (g_max_mutation_sigma - g_min_mutation_sigma);

    # Set the mutation variance
    gaussian_mutation.setMutationVariance(sigma);

    # Run the optimisation loop
    optimiser.runIteration();

    # Print the current state in the console
Пример #2
0
    optimiser.addGeneticOperator(elitism)

    for i in range(g_iterations):
        # Compute the value of the mutation variance
        sigma = g_min_mutation_sigma + (g_iterations - 1 - i) / (
            g_iterations - 1) * (g_max_mutation_sigma - g_min_mutation_sigma)

        # Set the mutation variance
        gaussian_mutation.setMutationVariance(sigma)

        start = time.time()
        # Run the optimisation loop
        optimiser.runIteration()

        # Print the current state in the console
        optimiser.printCurrentStates(i + 1)

        end = time.time()
        computing_time = end - start
        overall_computing_time += computing_time

        if args.plot_metrics:

            temp_best_solution = copy.deepcopy(
                optimiser.best_solution.parameter_set)

            SOD = temp_best_solution[0] * temp_best_solution[1]
            SDD = temp_best_solution[1]
            setXRayParameters(SOD, SDD)

            temp_objective = -optimiser.best_solution.objective