示例#1
0
    # THE PROBLEM INSTANCE
    # - optimization of ANN's weights is a COP
    #++++++++++++++++++++++++++
    ann_op_i = ANNOP(search_space=(-2, 2, n_weights), fitness_function=ann_i.stimulate,
                     minimization=False, validation_threshold=validation_threshold)

    #++++++++++++++++++++++++++
    # THE SEARCH
    # restrictions:
    # - 5000 offsprings/run max*
    # - 50 offsprings/generation max*
    # - use at least 5 runs for your benchmarks
    # * including reproduction
    #++++++++++++++++++++++++++
    ga1 = GeneticAlgorithm2(ann_op_i, random_state, ps, uls.parametrized_tournament_selection(pressure),
                          uls.one_point_crossover, p_c, uls.parametrized_ball_mutation(radius), 0.2)
    ga2 = GeneticAlgorithm(ann_op_i, random_state, ps, uls.parametrized_tournament_selection(pressure),
                           uls.two_point_crossover, p_c, uls.parametrized_ball_mutation(radius), 0.1)
    sa1 = SimulatedAnnealing(ann_op_i, random_state, ps, uls.parametrized_ball_mutation(radius), control, update_rate)
    search_algorithms = [ga1, ga2]

    # initialize search algorithms
    [algorithm.initialize() for algorithm in search_algorithms]

    # execute search
    [algorithm.search(n_iterations=n_gen, report=False) for algorithm in search_algorithms]

#++++++++++++++++++++++++++
# TEST
# - test algorithms on unseen data
#++++++++++++++++++++++++++
示例#2
0
n_gen = 100
ps = 50
p_c = .7
p_m = 0.5
radius = .4
pressure = .2

ga1 = GeneticAlgorithm(
    problem_instance=ann_op_i,
    random_state=random_state,
    population_size=ps,
    selection=uls.parametrize_roulette_wheel_Wpressure_sharing_fitness(
        pressure),
    crossover=uls.geometric_semantic_crossover,
    p_c=p_c,
    mutation=uls.parametrized_ball_mutation(radius),
    p_m=p_m,
    pressure=pressure)

islands = []
ga1.initialize()
islands.append(ga1)
best_solution = ga1.best_solution
for iteration in range(n_gen):
    ga1.search(iteration, False, False)
    for i in range(len(islands)):
        if best_solution.fitness < islands[i].best_solution.fitness:
            algorithm = islands[i]
            best_solution = islands[i].best_solution

    print("\n")
示例#3
0
                     fitness_function=ann_i.stimulate,
                     minimization=False,
                     validation_threshold=validation_threshold)

    #++++++++++++++++++++++++++
    # THE SEARCH
    # restrictions:
    # - 5000 offsprings/run max*
    # - 50 offsprings/generation max*
    # - use at least 5 runs for your benchmarks
    # * including reproduction
    #++++++++++++++++++++++++++
    ga1 = GeneticAlgorithm(ann_op_i, random_state, ps,
                           uls.parametrized_tournament_selection(pressure),
                           uls.one_point_crossover, p_c,
                           uls.parametrized_ball_mutation(radius), 0.2)
    ga2 = GeneticAlgorithm(ann_op_i, random_state, ps,
                           uls.parametrized_tournament_selection(pressure),
                           uls.one_point_crossover, p_c,
                           uls.parametrized_ball_mutation(radius), 0.4)
    sa1 = SimulatedAnnealing(ann_op_i, random_state, ps,
                             uls.parametrized_ball_mutation(radius), control,
                             update_rate)
    search_algorithms = [ga1, ga2, sa1]

    # initialize search algorithms
    [algorithm.initialize() for algorithm in search_algorithms]

    # execute search
    [
        algorithm.search(n_iterations=n_gen, report=False)