Beispiel #1
0
def test_cem_run():
    def square(x):
        return np.sum(x**2)

    def hook(optimizer, space, function):
        return

    new_function = function.Function(pointer=square)

    hyperparams = {'n_updates': 5, 'alpha': 0.7}

    new_cem = cem.CEM(hyperparams=hyperparams)

    search_space = search.SearchSpace(n_agents=10,
                                      n_iterations=100,
                                      n_variables=2,
                                      lower_bound=[0, 0],
                                      upper_bound=[10, 10])

    history = new_cem.run(search_space, new_function, pre_evaluation=hook)

    history = new_cem.run(search_space, new_function, pre_evaluation=hook)

    assert len(history.agents) > 0
    assert len(history.best_agent) > 0

    best_fitness = history.best_agent[-1][1]
    assert best_fitness <= constants.TEST_EPSILON, 'The algorithm cem failed to converge.'
Beispiel #2
0
def test_cem_params_setter():
    new_cem = cem.CEM()

    try:
        new_cem.n_updates = 'a'
    except:
        new_cem.n_updates = 10

    try:
        new_cem.n_updates = -1
    except:
        new_cem.n_updates = 10

    assert new_cem.n_updates == 10

    try:
        new_cem.alpha = 'b'
    except:
        new_cem.alpha = 0.5

    try:
        new_cem.alpha = -1
    except:
        new_cem.alpha = 0.5

    assert new_cem.alpha == 0.5
Beispiel #3
0
def test_cem_update_std():
    search_space = search.SearchSpace(n_agents=10, n_variables=2,
                                      lower_bound=[0, 0], upper_bound=[10, 10])

    new_cem = cem.CEM()
    new_cem.compile(search_space)

    new_cem._update_std(np.array([1, 1]))

    assert new_cem.std[0] != 0
Beispiel #4
0
def test_cem_create_new_samples():
    def square(x):
        return np.sum(x**2)

    search_space = search.SearchSpace(n_agents=10, n_variables=2,
                                      lower_bound=[0, 0], upper_bound=[10, 10])

    new_cem = cem.CEM()
    new_cem.compile(search_space)

    new_cem._create_new_samples(search_space.agents, square)
Beispiel #5
0
def test_cem_params():
    params = {
        'n_updates': 5,
        'alpha': 0.7,
    }

    new_cem = cem.CEM(params=params)

    assert new_cem.n_updates == 5

    assert new_cem.alpha == 0.7
Beispiel #6
0
def test_cem_hyperparams():
    hyperparams = {
        'n_updates': 5,
        'alpha': 0.7,
    }

    new_cem = cem.CEM(hyperparams=hyperparams)

    assert new_cem.n_updates == 5

    assert new_cem.alpha == 0.7
Beispiel #7
0
def test_cem_params():
    params = {
        "n_updates": 5,
        "alpha": 0.7,
    }

    new_cem = cem.CEM(params=params)

    assert new_cem.n_updates == 5

    assert new_cem.alpha == 0.7
Beispiel #8
0
def test_cem_update():
    def square(x):
        return np.sum(x**2)

    new_function = function.Function(pointer=square)

    search_space = search.SearchSpace(n_agents=10, n_variables=2,
                                      lower_bound=[0, 0], upper_bound=[10, 10])

    new_cem = cem.CEM()
    new_cem.compile(search_space)

    new_cem.update(search_space, new_function)
Beispiel #9
0
def test_cem_create_new_samples():
    def square(x):
        return np.sum(x**2)

    new_cem = cem.CEM()

    search_space = search.SearchSpace(n_agents=10,
                                      n_iterations=100,
                                      n_variables=2,
                                      lower_bound=[0, 0],
                                      upper_bound=[10, 10])

    new_cem._create_new_samples(search_space.agents, square, np.array([1, 1]),
                                np.array([1, 1]))
Beispiel #10
0
def test_cem_compile():
    search_space = search.SearchSpace(n_agents=10, n_variables=2,
                                      lower_bound=[0, 0], upper_bound=[10, 10])

    new_cem = cem.CEM()
    new_cem.compile(search_space)

    try:
        new_cem.mean = 1
    except:
        new_cem.mean = np.array([1])

    assert new_cem.mean == 1

    try:
        new_cem.std = 1
    except:
        new_cem.std = np.array([1])

    assert new_cem.std == 1
Beispiel #11
0
def test_cem_update_std():
    new_cem = cem.CEM()

    std = new_cem._update_std(np.array([1, 1]), 1, 0.25)

    assert std != 0
Beispiel #12
0
def test_cem_update_mean():
    new_cem = cem.CEM()

    mean = new_cem._update_mean(np.array([1, 1]), 1)

    assert mean != 0
Beispiel #13
0
def test_cem_build():
    new_cem = cem.CEM()

    assert new_cem.built == True