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()
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")