evox.algorithms.mo.nsga2
¶
Module Contents¶
Classes¶
A tensorized implementation of the Non-dominated Sorting Genetic Algorithm II (NSGA-II) for multi-objective optimization problems. |
API¶
- class evox.algorithms.mo.nsga2.NSGA2(pop_size: int, n_objs: int, lb: torch.Tensor, ub: torch.Tensor, selection_op: Optional[Callable] = None, mutation_op: Optional[Callable] = None, crossover_op: Optional[Callable] = None, device: torch.device | None = None)[source]¶
Bases:
evox.core.Algorithm
A tensorized implementation of the Non-dominated Sorting Genetic Algorithm II (NSGA-II) for multi-objective optimization problems.
- References:
[1] K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan, “A fast and elitist multiobjective genetic algorithm: NSGA-II,” IEEE Transactions on Evolutionary Computation, vol. 6, no. 2, pp. 182-197, 2002. Available: https://ieeexplore.ieee.org/document/996017
[2] Z. Liang, H. Li, N. Yu, K. Sun, and R. Cheng, “Bridging Evolutionary Multiobjective Optimization and GPU Acceleration via Tensorization,” IEEE Transactions on Evolutionary Computation, 2025. Available: https://ieeexplore.ieee.org/document/10944658
Initialization
Initializes the NSGA-II algorithm.
- Parameters:
pop_size – The size of the population.
n_objs – The number of objective functions in the optimization problem.
lb – The lower bounds for the decision variables (1D tensor).
ub – The upper bounds for the decision variables (1D tensor).
selection_op – The selection operation for evolutionary strategy (optional).
mutation_op – The mutation operation, defaults to
polynomial_mutation
if not provided (optional).crossover_op – The crossover operation, defaults to
simulated_binary
if not provided (optional).device – The device on which computations should run (optional). Defaults to PyTorch’s default device.