コード例 #1
0
def test_sphere_model():
    assert pg.sphere_model(np.array([0., 0., 0., 0., 0., 0., 0., 0., 0.,
                                     0.])) == 0.0
    assert pg.sphere_model(np.array([1., 1., 1., 1., 1., 1., 1., 1., 1.,
                                     1.])) == 10.0
    assert pg.sphere_model(np.array([2., 2., 2., 2., 2., 2., 2., 2., 2.,
                                     2.])) == 40.0
コード例 #2
0
def test_m_plus_lambda():
    np.random.seed(42)
    sphere_model_size = 30
    fitness_fn = lambda x: pg.sphere_model(x[:sphere_model_size])
    size = 10
    pop1 = pg.make_uniform_population(size, sphere_model_size)
    pop1 = pg.evaluate_population(pop1, fitness_fn)
    pop1_clone = pop1.clone()
    pop2 = pg.make_uniform_population(size, sphere_model_size)
    pop2 = pg.evaluate_population(pop2, fitness_fn)
    pop1 = pg.mu_plus_lambda_replacement(pop1, pop2)
    f_p1c = np.array(
        [pop1_clone.individuals[i].fitness.value for i in range(size)])
    f_p2 = np.array([pop2.individuals[i].fitness.value for i in range(size)])
    f_p1 = np.array([pop1.individuals[i].fitness.value for i in range(size)])
    res = np.array([
        7.76332642, 8.08389311, 8.42498289, 8.77341594, 8.9523664, 9.45857558,
        9.49688766, 9.52769953, 9.7264757, 9.83516821
    ])
    assert np.allclose(f_p1, res) is True
    assert np.allclose(f_p1, f_p1c) is False
    assert f_p1.any() == f_p2.any()
コード例 #3
0
def test_m_comma_lambda():
    np.random.seed(42)
    sphere_model_size = 30
    fitness_fn = lambda x: pg.sphere_model(x[:sphere_model_size])
    size = 10
    pop1 = pg.make_uniform_population(size, sphere_model_size)
    pop1 = pg.evaluate_population(pop1, fitness_fn)
    pop1_clone = pop1.clone()
    pop2 = pg.make_uniform_population(size, sphere_model_size)
    pop2 = pg.evaluate_population(pop2, fitness_fn)
    pop1 = pg.mu_comma_lambda_replacement(pop1, pop2)
    f_p1c = np.array(
        [pop1_clone.individuals[i].fitness.value for i in range(size)])
    f_p2 = np.array([pop2.individuals[i].fitness.value for i in range(size)])
    f_p1 = np.array([pop1.individuals[i].fitness.value for i in range(size)])
    res = np.array([
        7.7633264242708808, 8.4249828886076532, 9.4585755842303119,
        9.8351682100669695, 10.109666113362849, 10.120464613773503,
        11.148338435537882, 12.62638917659477, 12.68750163403401,
        13.486951247705489
    ])
    assert np.allclose(f_p1, res) is True
    assert np.allclose(f_p1, f_p1c) is False
    assert f_p1.any() == f_p2.any()
コード例 #4
0
def fitness_fn(x):
    return pg.sphere_model(x[:sphere_model_size])
コード例 #5
0
ファイル: es_sphere.py プロジェクト: jorgetavares/pygenome
def fitness_fn(x): return pg.sphere_model(x[:sphere_model_size])


# ES 1
def es_mu_comma_lambda_one_step():