Example #1
0
def test_best_individual():
    np.random.seed(42)
    pop = pg.make_integer_population(10, 5)
    pop = pg.evaluate_population(pop, lambda x: 1. / (1. + pg.onemax(x)))
    best = pg.best_individual(pop)
    assert np.array_equal(best.genotype, np.array([1, 1, 1, 1, 1]))
    assert best.fitness.value == 0.16666666666666666
Example #2
0
def genetic_algorithm_binary(fitness_fn,
                             chr_size,
                             pop_size=100,
                             total_generations=20,
                             cx_rate=0.7,
                             ind_mt_rate=1.0,
                             op_mt_rate=0.01,
                             elitism=False):
    # initial population
    pop = pg.make_integer_population(pop_size, chr_size)
    pop = pg.evaluate_population(pop, fitness_fn)
    pg.evolution_progress(0, pop)

    # evolutionary loop
    for i in range(1, total_generations):
        pop = pg.select_population(pop, pg.tournament_selection)
        offsprings = pg.apply_crossover(pop, cx_rate, pg.uniform_crossover)
        offsprings = pg.apply_mutation(offsprings,
                                       ind_mt_rate,
                                       pg.flip_mutation,
                                       gene_rate=op_mt_rate)
        if elitism:
            pop = pg.elite_strategy(
                pg.generational_replacement(pop, offsprings),
                pg.best_individual(pop))
        else:
            pop = pg.generational_replacement(pop, offsprings)
        pop = pg.evaluate_population(pop, fitness_fn)
        pg.evolution_progress(i, pop)

    return pop
Example #3
0
def es_mu_plus_lambda_n_step():
    np.random.seed(42)
    pop = pg.evolutionary_strategy(fitness_fn, sphere_model_size, -5.0, 5.0,
                                   replace_pop=pg.mu_plus_lambda_replacement,
                                   mt=pg.uncorrelated_n_steps_mutation, pop_size=100, pool_size=500)
    best = pg.best_individual(pop)
    print('fitness: %s\tgenotype: %s' % (best.fitness.value, best.genotype))
Example #4
0
def generational_no_elitism():
    np.random.seed(42)
    pop = pg.genetic_algorithm_permutation(sorted_permutation,
                                           permutation_size,
                                           total_generations=25)
    best = pg.best_individual(pop)
    print('fitness: %s\tgenotype: %s' % (best.fitness.value, best.genotype))
Example #5
0
def steady_state_no_elitism():
    np.random.seed(42)
    pop = pg.genetic_algorithm_binary(fitness_fn,
                                      onemax_size,
                                      generational=False,
                                      total_generations=200)
    best = pg.best_individual(pop)
    print('fitness: %s\tgenotype: %s' % (best.fitness.value, best.genotype))
def es_mu_plus_lambda_one_step():
    np.random.seed(42)
    pop = pg.evolutionary_strategy_adaptive(
        fitness_fn,
        sphere_model_size,
        -5.0,
        5.0,
        replace_pop=pg.mu_plus_lambda_replacement)
    best = pg.best_individual(pop)
    print('fitness: %s\tgenotype: %s' % (best.fitness.value, best.genotype))
Example #7
0
def generational_with_elitism():
    np.random.seed(42)
    pop = pg.genetic_algorithm_permutation(fitness_fn,
                                           nqueens_size,
                                           elitism=True,
                                           total_generations=200,
                                           cx_rate=0.5,
                                           ind_mt_rate=0.2,
                                           op_mt_rate=3.0 / nqueens_size)
    best = pg.best_individual(pop)
    print('fitness: %s\tgenotype: %s' % (best.fitness.value, best.genotype))
Example #8
0
def generational_with_elitism():
    np.random.seed(42)
    pop = pg.genetic_algorithm(fitness_fn,
                               sphere_model_size,
                               -5.0,
                               5.0,
                               elitism=True,
                               mt=pg.uniform_mutation,
                               total_generations=200)
    best = pg.best_individual(pop)
    print('fitness: %s\tgenotype: %s' % (best.fitness.value, best.genotype))
def es_mu_comma_lambda_n_step():
    np.random.seed(42)
    pop = pg.evolutionary_strategy_adaptive(
        fitness_fn,
        sphere_model_size,
        -5.0,
        5.0,
        mt=pg.uncorrelated_n_steps_mutation_adaptive,
        pop_size=100,
        pool_size=500)
    best = pg.best_individual(pop)
    print('fitness: %s\tgenotype: %s' % (best.fitness.value, best.genotype))
def stgp_with_elitism_ephemeral():
    np.random.seed(42)

    init_max_depth = 6
    max_tree_depth = 8

    pset = setup_primitive_set()

    num_fitness_cases = 10
    fitness_fn = pg.make_fitness_regression(pset, fn, num_fitness_cases)

    pop = pg.genetic_programming(fitness_fn, pset, init_max_depth, max_tree_depth,
                                 elitism=True, total_generations=20, pop_size=1000, cx_rate=0.9, op_mt_rate=0.25)

    best = pg.best_individual(pop)
    print('fitness: %s\tgenotype: %s' % (best.fitness.value, best.genotype))
Example #11
0
def test_elite_strategy():
    np.random.seed(42)
    size = 10
    ind_size = 20
    pop = pg.make_integer_population(size, ind_size)
    fitness_function = lambda x: 1. / pg.onemax(x)
    pop = pg.make_integer_population(size, ind_size)
    pop = pg.evaluate_population(pop, fitness_function)
    best = pg.best_individual(pop)
    pop = pg.elite_strategy(pop, best)
    found = False
    for ind in pop.individuals:
        if ind.equal(best) is True:
            found = True
            break

    assert found is True
Example #12
0
def ge_with_elitism(grammar='ge_symbolic_regression_grammar.txt'):
    np.random.seed(42)

    ind_size = 100
    low = 0
    high = 255
    wrap = True

    grammar = pg.Grammar(filename=grammar)
    num_fitness_cases = 10
    fitness_fn = make_single_regression(grammar, fn, num_fitness_cases)
    pop = pg.grammatical_evolution(grammar,
                                   fitness_fn,
                                   ind_size,
                                   low,
                                   high,
                                   elitism=True,
                                   total_generations=20,
                                   pop_size=100)
    best = pg.best_individual(pop)
    print('fitness: %s\tgenotype: %s' % (best.fitness.value, best.genotype))
Example #13
0
def generational_with_elitism():
    np.random.seed(42)
    pop = pg.genetic_algorithm_binary(fitness_fn, onemax_size, elitism=True)
    best = pg.best_individual(pop)
    print('fitness: %s\tgenotype: %s' % (best.fitness.value, best.genotype))
Example #14
0
def es_mu_comma_lambda_one_step():
    np.random.seed(42)
    pop = pg.evolutionary_strategy(fitness_fn, sphere_model_size, -5.0, 5.0)
    best = pg.best_individual(pop)
    print('fitness: %s\tgenotype: %s' % (best.fitness.value, best.genotype))