Beispiel #1
0
def test_predicted_fitness_for_trainer(predictor_fitness_function,
                                       sample_population):
    predictor = MultipleValueChromosome([0, 9])
    for i, trainer in enumerate(sample_population):
        prediction = \
            predictor_fitness_function.predict_fitness_for_trainer(predictor,
                                                                   trainer)
        expected_prediction = i + 4.5
        np.testing.assert_almost_equal(prediction, expected_prediction)
def test_mutation_is_single_point():
    mutator = SinglePointMutation(mutation_onemax_specific)
    parent = MultipleValueChromosome(
        [np.random.choice([True, False]) for _ in range(10)])
    child = mutator(parent)
    discrepancies = 0
    for i in range(len(parent.values)):
        if child.values[i] != parent.values[i]:
            discrepancies += 1

    assert discrepancies <= 1
def selected_indiviudals(pareto_front_population):
    list_size = len(pareto_front_population[0].values)
    list_one = [False] * int(list_size / 2) + [True] * int((list_size + 1) / 2)
    list_two = [False] * int((list_size + 1) / 2) + [True] * int(list_size / 2)

    selected_indv_one = MultipleValueChromosome(list_one)
    selected_indv_two = MultipleValueChromosome(list_two)

    selected_indv_one.genetic_age = list_size
    selected_indv_two.genetic_age = list_size + 1
    return [selected_indv_one, selected_indv_two]
def test_genetic_age_is_oldest_parent():
    crossover = SinglePointCrossover()
    parent1 = MultipleValueChromosome([np.random.choice([True, False])
                                       for _ in range(10)])
    parent2 = MultipleValueChromosome([np.random.choice([True, False])
                                       for _ in range(10)])
    parent1.genetic_age = 8
    parent2.genetic_age = 4
    child1, child2 = crossover(parent1, parent2)
    assert child1.genetic_age == 8
    assert child2.genetic_age == 8
Beispiel #5
0
def test_fitness_predictor_fitness_function_call(predictor_fitness_function,
                                                 predictor_values):
    predictor = MultipleValueChromosome(predictor_values)
    expected_fitness = abs(4.5 - np.mean(predictor_values))
    fitness = predictor_fitness_function(predictor)
    np.testing.assert_almost_equal(fitness, expected_fitness)
Beispiel #6
0
def sample_population():
    return [MultipleValueChromosome(list(range(i, i + 10))) for i in range(10)]
def sample_bool_list_chromosome():
    chromosome = MultipleValueChromosome(
        [np.random.choice([True, False]) for _ in range(10)])
    return chromosome
def sample_int_list_chromosome():
    chromosome = MultipleValueChromosome(
        [np.random.choice([1, 0]) for _ in range(10)])
    return chromosome
def test_fitness_is_not_inherited_mutation():
    mutator = SinglePointMutation(mutation_onemax_specific)
    parent = MultipleValueChromosome(
        [np.random.choice([True, False]) for _ in range(10)])
    child = mutator(parent)
    assert not child.fit_set