def search_ga(max_gens, pop_size, ad_mut_stp, mu_lambda): generation = 0 population = init_population(pop_size) best = fitness_func(population) while generation < max_gens: new_population = mutate_random(tuple(population)) new_best = fitness_func(new_population) if new_best <= best: LOG.debug("Better population>{0}".format(new_population)) population = new_population best = new_best LOG.rbf("Generation>{0}:new best>{1}".format(generation, best)) generation = generation + 1
def search_es(max_gens, pop_range, ad_mut_stp, mu_lambda): pop = init_population(pop_range) best = fitness_func(pop[0]) p = 1.5 for gen in range(0, max_gens-1): children = mutate(pop[0], pop[1], p) LOG.debug("children>{0}".format(children)) fitness = fitness_func(children[0]) if fitness <= best: best = fitness pop = children p = 1.5 else: p = 1.5 ** (-1/4) if mu_lambda: pop = init_population(pop_range) best = fitness_func(pop[0]) LOG.rbf("Generation>{0}:new best>{1}".format(gen, best)) return best
def search_es(max_gens, pop_range, ad_mut_stp, mu_lambda): pop = init_population(pop_range) best = fitness_func(pop[0]) p = 1.5 for gen in range(0, max_gens - 1): children = mutate(pop[0], pop[1], p) LOG.debug("children>{0}".format(children)) fitness = fitness_func(children[0]) if fitness <= best: best = fitness pop = children p = 1.5 else: p = 1.5**(-1 / 4) if mu_lambda: pop = init_population(pop_range) best = fitness_func(pop[0]) LOG.rbf("Generation>{0}:new best>{1}".format(gen, best)) return best