Пример #1
0
functions = get_functions()
constants = get_constants(lower=-10, upper=10, bit=True)
ppl.createPopulation(functions=functions,
                     constants=constants,
                     n_ind=n_ind,
                     n_gene=n_gene,
                     n_register=n_register)
eval_function = lambda x: x[0] ^ x[1]  # xor
ppl.excute_all(inputs, eval_function)

# revolution
p = ProgressBar(0, revolution)
for i in range(revolution):
    #print("revolution: ", i)
    p.update(i + 1)
    elite = Selection.elite(ppl, elite_size)
    new_p = copy.deepcopy(elite)
    for j in range(n_ind - elite_size):
        parent = Selection.tournament(ppl, tourn_size)
        elite.append(parent)
        child = Crossover.randomPoints(elite, cross_rate)
        child = Mutation.mutation(child, mutate_rate, n_register, functions,
                                  constants)
        new_p.append(child)
    ppl.setPopulation(new_p)
    ppl.excute_all(inputs, eval_function)
    if ((i % 100) == 0):
        ppl.result()
ppl.result()
ppl.write_result(path)
p.finish()
Пример #2
0
    func = get_functions()
    registers = get_registers()
    constants = get_constants(bit=True)
    n_register = 10
    ppl.createPopulation(functions=func,
                         constants=constants,
                         n_ind=5,
                         n_gene=5,
                         n_register=n_register)

    eval_function = lambda x: x[0] ^ x[1]  # xor
    ppl.excute_all(inputs, eval_function)

    elite_size = 3
    parents = Selection.elite(ppl, elite_size)

    tourn_size = 3
    n_ind = 5
    for i in range(n_ind):
        parent = Selection.tournament(ppl, tourn_size)
        parents.append(parent)
        parent.show()

    cross_rate = 0.7
    print("..crossover onePoint")
    child = Crossover.onePoint(parents, cross_rate)
    child.show()
    print("..Done!")

    print("..crossover twoPoints")