Algorithms#
Import algorithms from evomo.algorithms. The names below match the current public exports.
The API reference is generated from source and provides constructor
signatures, defaults, methods, and existing paper references.
Common starting points#
Class |
Main mechanism |
Details to check |
|---|---|---|
|
Non-dominated sorting and crowding distance |
A starting point for the numerical and constrained examples |
|
Non-dominated sorting and reference points |
Reference point count relative to objectives and population size |
|
Decomposition and neighborhood updates |
Aggregation and neighborhood parameters |
|
Tensorized decomposition and neighborhood updates |
|
|
Reference vector guided selection |
Set |
|
Indicator-based selection |
Indicator choice and objective scaling |
|
Selection based on hypervolume estimation |
Sampling and reference-related parameters |
|
Competitive swarm optimization for large-scale problems |
Decision dimension and algorithm-specific parameters |
This table describes interfaces, not an experimental ranking. Compare algorithms using equal evaluation budgets and multiple random seeds.
Constructor parameters and state#
Algorithms accept pop_size, n_objs, lb, and ub; some also expose device. Bounds must be
one-dimensional tensors with matching shapes, devices, and dtypes. n_objs must match the
number of columns returned by the problem’s evaluate. See the
parameter guide for device rules, operator contracts, and algorithm-specific settings.
Common state attributes are pop and fit. Algorithms may also maintain reference vectors,
ideal points, archives, velocities, ranks, or violations. Attributes specific to one algorithm
are not a universal interface.
Reference vector or weight sampling may adjust pop_size. Read
workflow.algorithm.pop.shape[0] for the actual population size after construction.
TensorMOEAD requires the sampled population size to be greater than 10.
For example, replace the quickstart’s algorithm construction with:
from evomo.algorithms import TensorMOEAD
algorithm = TensorMOEAD(
pop_size=100,
n_objs=problem.m,
lb=torch.zeros(problem.d, device=device),
ub=torch.ones(problem.d, device=device),
aggregate_op=("pbi", "pbi"),
device=device,
)
TensorMOEAD accepts the aggregation names pbi, tchebycheff, tchebycheff_norm,
modified_tchebycheff, and weighted_sum.
Replacing operators#
Some algorithms accept selection_op, mutation_op, and crossover_op. Their calling
contracts are defined by each algorithm. Check its step implementation for input shapes,
output shapes, and semantics before substituting an operator.
For NSGA-II, selection_op chooses mating parents and defaults to EvoX’s
tournament_selection_multifit. It does not perform environmental selection or select a
non-dominated sorting backend. See the backend guide.
Other public algorithms#
The following table preserves the exact exported class names:
Group |
Exported names |
|---|---|
MOEA/D and related implementations |
|
Sparse and large-scale implementations |
|
Other implementations (1) |
|
Other implementations (2) |
|
Other implementations (3) |
|
An algorithm name containing a constraint-related term does not establish compatibility with arbitrary constrained problems. Start with the documented NSGA-II constraint workflow and verify whether other implementations use violations in selection.