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

    def hook(optimizer, space, function):
        return

    new_function = function.Function(pointer=square)

    new_pso = pso.PSO()

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

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

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

    best_fitness = history.best_agent[-1][1]
    assert best_fitness <= constants.TEST_EPSILON, 'The algorithm pso failed to converge.'
Beispiel #2
0
def test_opytimizer_update_args():
    space = search.SearchSpace(1, 1, 0, 1)
    func = function.Function(callable)
    optimizer = pso.PSO()

    new_opytimizer = opytimizer.Opytimizer(space, optimizer, func)

    assert len(new_opytimizer.update_args) == 1
Beispiel #3
0
def test_opytimizer_save():
    space = search.SearchSpace(1, 1, 0, 1)
    func = function.Function(callable)
    optimizer = pso.PSO()

    new_opytimizer = opytimizer.Opytimizer(space, optimizer, func)

    new_opytimizer.save('out.pkl')
Beispiel #4
0
def test_opytimizer_history():
    space = search.SearchSpace(1, 1, 0, 1)
    func = function.Function(callable)
    optimizer = pso.PSO()

    new_opytimizer = opytimizer.Opytimizer(space, optimizer, func)

    assert type(new_opytimizer.history).__name__ == 'History'
Beispiel #5
0
def test_opytimizer_total_iterations():
    space = search.SearchSpace(1, 1, 0, 1)
    func = function.Function(callable)
    optimizer = pso.PSO()

    new_opytimizer = opytimizer.Opytimizer(space, optimizer, func)

    assert new_opytimizer.total_iterations == 0
Beispiel #6
0
def test_pso_update():
    search_space = search.SearchSpace(n_agents=2, n_variables=2,
                                      lower_bound=[0, 0], upper_bound=[10, 10])

    new_pso = pso.PSO()
    new_pso.compile(search_space)

    new_pso.update(search_space)
Beispiel #7
0
def test_opytimizer_start():
    space = search.SearchSpace(1, 1, 0, 1)
    func = function.Function(callable)
    optimizer = pso.PSO()

    new_opytimizer = opytimizer.Opytimizer(space, optimizer, func)

    new_opytimizer.start(n_iterations=1)
Beispiel #8
0
def test_opytimizer_update():
    space = search.SearchSpace(1, 1, 0, 1)
    func = function.Function(callable)
    optimizer = pso.PSO()
    callbacks = callback.CallbackVessel([])

    new_opytimizer = opytimizer.Opytimizer(space, optimizer, func)

    new_opytimizer.update(callbacks)
Beispiel #9
0
def test_pso_params():
    params = {"w": 2, "c1": 1.7, "c2": 1.7}

    new_pso = pso.PSO(params=params)

    assert new_pso.w == 2

    assert new_pso.c1 == 1.7

    assert new_pso.c2 == 1.7
Beispiel #10
0
def test_pso_hyperparams():
    hyperparams = {'w': 2, 'c1': 1.7, 'c2': 1.7}

    new_pso = pso.PSO(hyperparams=hyperparams)

    assert new_pso.w == 2

    assert new_pso.c1 == 1.7

    assert new_pso.c2 == 1.7
Beispiel #11
0
def test_pso_evaluate():
    def square(x):
        return np.sum(x**2)

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

    new_pso = pso.PSO()
    new_pso.compile(search_space)

    new_pso.evaluate(search_space, square)
Beispiel #12
0
def test_pso_params():
    params = {
        'w': 2,
        'c1': 1.7,
        'c2': 1.7
    }

    new_pso = pso.PSO(params=params)

    assert new_pso.w == 2

    assert new_pso.c1 == 1.7

    assert new_pso.c2 == 1.7
Beispiel #13
0
def test_opytimizer_history_setter():
    space = search.SearchSpace(1, 1, 0, 1)
    func = function.Function(callable)
    optimizer = pso.PSO()
    hist = history.History()

    new_opytimizer = opytimizer.Opytimizer(space, optimizer, func)

    try:
        new_opytimizer.history = 1
    except:
        new_opytimizer.history = hist

    assert type(new_opytimizer.history).__name__ == 'History'
Beispiel #14
0
def test_opytimizer_function_setter():
    space = search.SearchSpace(1, 1, 0, 1)
    func = function.Function(callable)
    optimizer = pso.PSO()

    new_opytimizer = opytimizer.Opytimizer(space, optimizer, func)

    try:
        func.built = False
        new_opytimizer.function = func
    except:
        func.built = True
        new_opytimizer.function = func

    assert type(new_opytimizer.function).__name__ == 'Function'
Beispiel #15
0
def test_opytimizer_space_setter():
    space = search.SearchSpace(1, 1, 0, 1)
    func = function.Function(callable)
    optimizer = pso.PSO()

    new_opytimizer = opytimizer.Opytimizer(space, optimizer, func)

    try:
        space.built = False
        new_opytimizer.space = space
    except:
        space.built = True
        new_opytimizer.space = space

    assert type(new_opytimizer.space).__name__ == 'SearchSpace'
def test_opytimizer_build():
    def square(x):
        return np.sum(x**2)

    assert square(2) == 4

    new_function = function.Function(pointer=square)

    lb = [0]

    ub = [10]

    new_space = search.SearchSpace(lower_bound=lb, upper_bound=ub)

    new_pso = pso.PSO()

    try:
        new_space.built = False
        new_opytimizer = opytimizer.Opytimizer(space=new_space,
                                               optimizer=new_pso,
                                               function=new_function)
    except:
        new_space.built = True
        new_opytimizer = opytimizer.Opytimizer(space=new_space,
                                               optimizer=new_pso,
                                               function=new_function)

    try:
        new_pso.built = False
        new_opytimizer = opytimizer.Opytimizer(space=new_space,
                                               optimizer=new_pso,
                                               function=new_function)
    except:
        new_pso.built = True
        new_opytimizer = opytimizer.Opytimizer(space=new_space,
                                               optimizer=new_pso,
                                               function=new_function)

    try:
        new_function.built = False
        new_opytimizer = opytimizer.Opytimizer(space=new_space,
                                               optimizer=new_pso,
                                               function=new_function)
    except:
        new_function.built = True
        new_opytimizer = opytimizer.Opytimizer(space=new_space,
                                               optimizer=new_pso,
                                               function=new_function)
Beispiel #17
0
def test_pso_evaluate():
    def square(x):
        return np.sum(x**2)

    new_function = function.Function(pointer=square)

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

    new_pso = pso.PSO()

    local_position = np.zeros((2, 2, 1))

    new_pso._evaluate(search_space, new_function, local_position)

    assert search_space.best_agent.fit < sys.float_info.max
def test_opytimizer_start():
    def square(x):
        return np.sum(x**2)

    new_function = function.Function(pointer=square)

    lb = [0]

    ub = [10]

    new_space = search.SearchSpace(lower_bound=lb, upper_bound=ub)

    new_pso = pso.PSO()

    new_opytimizer = opytimizer.Opytimizer(space=new_space,
                                           optimizer=new_pso,
                                           function=new_function)

    history = new_opytimizer.start()
    assert isinstance(history, opytimizer.utils.history.History)
Beispiel #19
0
def test_opytimizer_total_iterations_setter():
    space = search.SearchSpace(1, 1, 0, 1)
    func = function.Function(callable)
    optimizer = pso.PSO()

    new_opytimizer = opytimizer.Opytimizer(space, optimizer, func)

    try:
        new_opytimizer.total_iterations = 'a'
    except:
        new_opytimizer.total_iterations = 0

    assert new_opytimizer.total_iterations == 0

    try:
        new_opytimizer.total_iterations = -1
    except:
        new_opytimizer.total_iterations = 0

    assert new_opytimizer.total_iterations == 0
Beispiel #20
0
def test_pso_compile():
    search_space = search.SearchSpace(n_agents=2, n_variables=2,
                                      lower_bound=[0, 0], upper_bound=[10, 10])

    new_pso = pso.PSO()
    new_pso.compile(search_space)

    try:
        new_pso.local_position = 1
    except:
        new_pso.local_position = np.array([1])

    assert new_pso.local_position == np.array([1])

    try:
        new_pso.velocity = 1
    except:
        new_pso.velocity = np.array([1])

    assert new_pso.velocity == np.array([1])
Beispiel #21
0
def test_pso_hyperparams_setter():
    new_pso = pso.PSO()

    try:
        new_pso.w = 'a'
    except:
        new_pso.w = 1

    try:
        new_pso.w = -1
    except:
        new_pso.w = 1

    assert new_pso.w == 1

    try:
        new_pso.c1 = 'b'
    except:
        new_pso.c1 = 1.5

    try:
        new_pso.c1 = -1
    except:
        new_pso.c1 = 1.5

    assert new_pso.c1 == 1.5

    try:
        new_pso.c2 = 'c'
    except:
        new_pso.c2 = 1.5

    try:
        new_pso.c2 = -1
    except:
        new_pso.c2 = 1.5

    assert new_pso.c2 == 1.5
Beispiel #22
0
def test_pso_params_setter():
    new_pso = pso.PSO()

    try:
        new_pso.w = "a"
    except:
        new_pso.w = 1

    try:
        new_pso.w = -1
    except:
        new_pso.w = 1

    assert new_pso.w == 1

    try:
        new_pso.c1 = "b"
    except:
        new_pso.c1 = 1.5

    try:
        new_pso.c1 = -1
    except:
        new_pso.c1 = 1.5

    assert new_pso.c1 == 1.5

    try:
        new_pso.c2 = "c"
    except:
        new_pso.c2 = 1.5

    try:
        new_pso.c2 = -1
    except:
        new_pso.c2 = 1.5

    assert new_pso.c2 == 1.5
Beispiel #23
0
def test_pso_update_position():
    new_pso = pso.PSO()

    position = new_pso._update_position(1, 1)

    assert position == 2
Beispiel #24
0
def test_pso_update_velocity():
    new_pso = pso.PSO()

    velocity = new_pso._update_velocity(1, 1, 1, 1)

    assert velocity != 0
Beispiel #25
0
def test_pso_build():
    new_pso = pso.PSO()

    assert new_pso.built == True