desdeo_emo.EAs.MOEAD

Module Contents

Classes

MOEA_D

Python implementation of MOEA/D

class desdeo_emo.EAs.MOEAD.MOEA_D(problem: desdeo_problem.MOProblem, n_neighbors: int = 20, n_parents: int = 2, use_repair: bool = True, initial_population: desdeo_emo.population.Population.Population = None, population_size: int = None, population_params: Dict = None, lattice_resolution: int = None, interact: bool = False, n_iterations: int = 10, n_gen_per_iter: int = 100, use_surrogates: bool = False, total_function_evaluations: int = 0, scalarization_function: desdeo_tools.scalarization.MOEADSF = PBI(), keep_archive: bool = False, save_non_dominated: bool = False)[source]

Bases: desdeo_emo.EAs.BaseEA.BaseDecompositionEA

Python implementation of MOEA/D

in IEEE Transactions on Evolutionary Computation, vol. 11, no. 6, pp. 712-731, Dec. 2007, doi: 10.1109/TEVC.2007.892759.

Parameters:
  • problem (MOProblem) – The problem class object specifying the details of the problem.

  • scalarization_function (MOEADSF) – The scalarization function to compare the solutions. Some implementations can be found in desdeo-tools/scalarization/MOEADSF. By default it uses the PBI function.

  • n_neighbors (int, optional) – Number of reference vectors considered in the neighborhoods creation. The default number is 20.

  • population_params (Dict, optional) – The parameters for the population class, by default None. See desdeo_emo.population.Population for more details.

  • initial_population (Population, optional) – An initial population class, by default None. Use this if you want to set up a specific starting population, such as when the output of one EA is to be used as the input of another.

  • lattice_resolution (int, optional) – The number of divisions along individual axes in the objective space to be used while creating the reference vector lattice by the simplex lattice design. By default None

  • n_parents (int, optional) – Number of individuals considered for the generation of offspring solutions. The default option is 2.

  • a_priori (bool, optional) – A bool variable defining whether a priori preference is to be used or not. By default False

  • interact (bool, optional) – A bool variable defining whether interactive preference is to be used or not. By default False

  • use_surrogates (bool, optional) – A bool variable defining whether surrogate problems are to be used or not. By default False

  • n_iterations (int, optional) – The total number of iterations to be run, by default 10. This is not a hard limit and is only used for an internal counter.

  • n_gen_per_iter (int, optional) – The total number of generations in an iteration to be run, by default 100. This is not a hard limit and is only used for an internal counter.

  • total_function_evaluations (int, optional) – Set an upper limit to the total number of function evaluations. When set to zero, this argument is ignored and other termination criteria are used.

_next_gen()[source]

Run one generation of decomposition based EA. Intended to be used by next_iteration.

_select(current_neighborhood: int) list[source]

Describe a selection mechanism. Return indices of selected individuals.

Returns:

List of indices of individuals to be selected.

Return type:

list