Source code for cea.optimization.master.normalization






[docs]def normalize_fitnesses(scaler_dict, fitnesses_population): number_of_objectives = scaler_dict['NOBJ'] fitness_population_scaled = [] for ind in fitnesses_population: fitness_individual_scaled = [] for objective in range(number_of_objectives): min_value = scaler_dict['min'][objective] max_value = scaler_dict['max'][objective] fitness_individual_scaled.append(minmax_scaler(ind[objective], min_value, max_value)) fitness_population_scaled.append(tuple(fitness_individual_scaled)) return fitness_population_scaled
[docs]def minmax_scaler(value, min_value, max_value): return (value - min_value) / (max_value - min_value)
[docs]def scaler_for_normalization(number_of_objectives, fitnesses): max_ob = [] min_ob = [] for objective in range(number_of_objectives): list_fitness_objective = [x[objective] for x in fitnesses] max_ob.append(max(list_fitness_objective)) min_ob.append(min(min(list_fitness_objective), 0.0)) # select lowest negative value or 0.0 if only positives # Output to scale data inside the fitness function from the second generation on scaler_dict = {'max': max_ob, 'min': min_ob, 'NOBJ': number_of_objectives} return scaler_dict