Skip to main content

NSGA3

Module: opytimizer.optimizers.multi_objective.evolutionary.nsga3

NSGA3 class, inherited from MultiObjectiveOptimizer.

Replaces the crowding distance operator of NSGA-II with a reference-point-based niching strategy, making it effective for problems with four or more objectives.

References: K. Deb and H. Jain. An Evolutionary Many-Objective Optimization Algorithm Using Reference-Point-Based Nondominated Sorting Approach, Part I. IEEE Transactions on Evolutionary Computation (2014).

Constructor​

NSGA3(params: dict = None, crossover_operator=None, mutation_operator=None, reference_points: numpy.ndarray = None) -> None

Parameters​

ParameterTypeDefaultDescription
paramsdictNone—
crossover_operatorNone—
mutation_operatorNone—
reference_pointsnumpy.ndarrayNone—

Methods​

compile​

compile(self, space: opytimizer.core.space._MultiObjectiveSpace) -> None

Compiles additional information used by this optimizer.

Parameters​

ParameterTypeDefaultDescription
spaceopytimizer.core.space._MultiObjectiveSpaceA Space object containing meta-information.

evaluate​

evaluate(self, space: opytimizer.core.space._MultiObjectiveSpace, function: opytimizer.core.function.Function)

Evaluates the search space according to the objective function.

Parameters​

ParameterTypeDefaultDescription
spaceopytimizer.core.space._MultiObjectiveSpaceA Space object that will be evaluated.
functionopytimizer.core.function.FunctionA Function object serving as an objective function.

update​

update(self, space: opytimizer.core.space._MultiObjectiveSpace, function: opytimizer.core.function.Function) -> None

Wraps NSGA-III over all agents and variables.

Parameters​

ParameterTypeDefaultDescription
spaceopytimizer.core.space._MultiObjectiveSpaceSpace containing agents and update-related information.
functionopytimizer.core.function.FunctionObjective function used to evaluate offspring.