def minimize(): global elite population = [gf.get_individual(utility.n_features) for i in range(go.population_size)] for i in range(n_iter): population_new = [] if elite: population_new.append(max(population)) while len(population_new) < go.population_size: parents = random.sample(population, 2) child = parents[0] + parents[1] population_new.append(~child) population = population_new if 0 == i % 500: print(max(population)) return max(population)
def minimize(n_iter_trace = False): global f_eps population = [gf.get_individual(utility.n_features) for i in range(go.population_size)] for i in range(n_iter): tournament = random.sample(population, go.tournament_size) worst = min(tournament) tournament.remove(worst) population.remove(worst) parents = random.sample(tournament, 2) child = parents[0] + parents[1] new_individual = ~child if new_individual > max(population): info(new_individual, i) if printed else None if abs(new_individual.fitness) < f_eps : return new_individual if not n_iter_trace else new_individual, i population.append(new_individual) if n_iter_trace: return max(population), n_iter return max(population)