def selNSGA2(problem, population, selectees, configurations): k = configurations["Universal"]["Population_Size"] # Evaluate any new guys for individual in population + selectees: if not individual.valid: individual.evaluate() # Format a population Data structure usable by DEAP's package dIndividuals = deap_format(problem, population + selectees) # Combine from Algorithms.DEAP.tools.emo import deap_selNSGA2 dIndividuals = deap_selNSGA2(dIndividuals, k) # Copy from DEAP structure to JMOO structure population = [] for i, dIndividual in enumerate(dIndividuals): cells = [] for j in range(len(dIndividual)): cells.append(dIndividual[j]) population.append( jmoo_individual(problem, cells, [f for f in dIndividual.fitness.values])) return population, k
def selNSGA2(problem, population, selectees, configurations): k = configurations["Universal"]["Population_Size"] # Evaluate any new guys for individual in population + selectees: if not individual.valid: individual.evaluate() # Format a population Data structure usable by DEAP's package dIndividuals = deap_format(problem, population + selectees) # Combine from Algorithms.DEAP.tools.emo import deap_selNSGA2 dIndividuals = deap_selNSGA2(dIndividuals, k) # Copy from DEAP structure to JMOO structure population = [] for i, dIndividual in enumerate(dIndividuals): cells = [] for j in range(len(dIndividual)): cells.append(dIndividual[j]) population.append(jmoo_individual(problem, cells, [f for f in dIndividual.fitness.values])) return population, k
def get_non_dominated_solutions(problem, population, configurations): # NOTE: This might look wierd but this would return all the non dominated solutions k = configurations["Universal"]["Population_Size"] # Evaluate any new guys for individual in population: if not individual.valid: individual.evaluate() # Format a population Data structure usable by DEAP's package dIndividuals = deap_format(problem, population) # Combine from Algorithms.DEAP.tools.emo import deap_selNSGA2 dIndividuals = deap_selNSGA2(dIndividuals, k) # Copy from DEAP structure to JMOO structure population = [] for i, dIndividual in enumerate(dIndividuals): cells = [] for j in range(len(dIndividual)): cells.append(dIndividual[j]) population.append(jmoo_individual(problem, cells, [f for f in dIndividual.fitness.values])) return population