Exemple #1
0
def franken30(n, my_func, lb, ub, dimension, iteration):
    X = np.array(
        [src.solution(my_func, dimension, (lb, ub)) for i in range(n)])
    [Xi.initRandom() for Xi in X]
    for it in range(iteration):
        X1 = src.op.op_pso(X, src.op.select_random, src.op.mut_pso,
                           src.op.crx_exponential)
        X = src.op.replace_if_best(X, X1)
        X = src.op.drop_probability(X)

    return X
Exemple #2
0
def ge():
    X = np.array([src.solution(my_func, dimension, bounds) for i in range(n)])
    [Xi.initRandom() for Xi in X]
    src.solution.updateHistory(X)
    for it in range(iteration):
        X1 = src.op.op_pso(X, src.op.select_random, src.op.mut_pso,
                           src.op.crx_exponential)
        X = src.op.replace_if_best(X, X1)
        X = src.op.drop_probability(X)
        src.solution.updateHistory(X)
    return X
Exemple #3
0
def new_franken10(n, my_func, lb, ub, dimension, iteration):
    X = np.array(
        [src.solution(my_func, dimension, (lb, ub)) for i in range(n)])
    [Xi.initRandom() for Xi in X]
    for it in range(iteration):
        X1 = src.op.op_de(X, src.op.select_random, src.op.mut_pso,
                          src.op.crx_blend)
        X = src.op.replace_if_best(X, X1)
        X1 = src.op.op_pso(X, src.op.select_random, src.op.mut_pso,
                           src.op.crx_blend)
        X = src.op.replace_if_best(X, X1)
    return X
Exemple #4
0
def pso(n, my_func, lb, ub, dimension, iteration):
    #instantiate solutions
    X = np.array(
        [src.solution(my_func, dimension, (lb, ub)) for i in range(n)])
    #initialize solutions
    [Xi.initRandom() for Xi in X]
    for it in range(iteration):
        #1. Select individuals for modification in this round
        # none - select all. Alternative (bee algorythm) is to select only solutions drawn with fitness-dependant probability
        #2. de_operator = create an alternative set of solutions X1 using mutation+crossover
        X1 = src.op.op_pso(X, src.op.select_random, src.op.mut_pso,
                           src.op.crx_exponential)
        #3. Select individual for the next generation <- accept all
        X = X1
    return X
Exemple #5
0
def pso():
    #instantiate solutions
    X = np.array([src.solution(my_func, dimension, bounds) for i in range(n)])
    #initialize solutions
    [Xi.initRandom() for Xi in X]

    #just so we can have some animations
    src.solution.updateHistory(X)  # it is not necessary for the grammar

    for it in range(iteration):
        #1. Select individuals for modification in this round
        # none - select all. Alternative (bee algorythm) is to select only solutions drawn with fitness-dependant probability
        #2. de_operator = create an alternative set of solutions X1 using mutation+crossover
        X1 = src.op.op_pso(X, src.op.select_random, src.op.mut_pso,
                           src.op.crx_exponential)
        #3. Select individual for the next generation <- accept all
        X = X1

        src.solution.updateHistory(X)

    return X
Exemple #6
0
def test_case_one_element():
    assert solution([0]) == []
Exemple #7
0
def test_case_empth():
    assert solution([]) == []
Exemple #8
0
def test_case_sample():
    assert solution([9, 1, 4, 9, 0, 4, 8, 9, 0,
                     1]) == [1, 3, 2, 3, 0, 0, 0, 0, 0]