desdeo_emo.population.Population

Module Contents

Classes

BasePopulation

Helper class that provides a standard way to create an ABC using

Population

Helper class that provides a standard way to create an ABC using

class desdeo_emo.population.Population.BasePopulation(problem: desdeo_problem.MOProblem, pop_size: int, pop_params: Dict = None)[source]

Bases: abc.ABC

Helper class that provides a standard way to create an ABC using inheritance.

abstract add(offsprings: List | numpy.ndarray) List[source]

Evaluate and add offspring to the population.

Parameters:

offsprings (Union[List, np.ndarray]) – List or array of individuals to be evaluated and added to the population.

Returns:

Indices of the evaluated individuals

Return type:

List

abstract keep(indices: List)[source]
Save the population members given by the list of indices for the next

generation. Delete the rest.

Parameters:

indices (List) –

List of indices of the population members to be kept for the next

generation.

abstract delete(indices: List)[source]
Delete the population members given by the list of indices for the next

generation. Keep the rest.

Parameters:

indices (List) – List of indices of the population members to be deleted.

abstract mate(mating_individuals: List = None, params: Dict = None) List | numpy.ndarray[source]

Perform crossover and mutation over the population members.

Parameters:
  • mating_individuals (List, optional) –

    List of individuals taking part in recombination. By default None, which

    recombinated all individuals in random order.

  • params (Dict, optional) – Parameters for the mutation or crossover operator, by default None.

Returns:

The offspring population

Return type:

Union[List, np.ndarray]

class desdeo_emo.population.Population.Population(problem: desdeo_problem.MOProblem, pop_size: int, pop_params: Dict = None, use_surrogates: bool = False)[source]

Bases: BasePopulation

Helper class that provides a standard way to create an ABC using inheritance.

add(offsprings: List | numpy.ndarray, use_surrogates: bool = False)[source]

Evaluate and add offspring to the population.

Parameters:
  • offsprings (Union[List, np.ndarray]) – List or array of individuals to be evaluated and added to the population.

  • use_surrogates (bool) – If true, use surrogate models rather than true function evaluations.

  • use_surrogates – If true, use surrogate models rather than true function evaluations.

Returns:

Results of evaluation.

Return type:

Results

keep(indices: List)[source]
Save the population members given by the list of indices for the next

generation. Delete the rest.

Parameters:

indices (List) –

List of indices of the population members to be kept for the next

generation.

delete(indices: List)[source]
Delete the population members given by the list of indices for the next

generation. Keep the rest.

Parameters:

indices (List) – List of indices of the population members to be deleted.

mate(mating_individuals: List = None) List | numpy.ndarray[source]

Perform crossover and mutation over the population members.

Parameters:
  • mating_individuals (List, optional) –

    List of individuals taking part in recombination. By default None, which

    recombinated all individuals in random order.

  • params (Dict, optional) – Parameters for the mutation or crossover operator, by default None.

Returns:

The offspring population

Return type:

Union[List, np.ndarray]

update_ideal()[source]
replace(indices: List, individual: numpy.ndarray, evaluation: tuple)[source]
Replace the population members given by the list of indices by the given individual and its evaluation.

Keep the rest of the population unchanged.

Parameters:
  • indices (List) – List of indices of the population members to be replaced.

  • individual (np.ndarray) – Decision variables of the individual that will replace the positions given in the list.

  • evaluation (tuple) – Result of the evaluation of the objective function, constraints, etc. obtained using the evaluate method.

repair(individual)[source]

Repair the variables of an individual which are not in the boundary defined by the problem :param individual: Decision variables of the individual.

Return type:

The new decision vector with the variables in the boundary defined by the problem

reevaluate_fitness()[source]
non_dominated_fitness()[source]
non_dominated_objectives()[source]