evomo.algorithms.ts_nsga2#

Attributes#

Classes#

TSNSGAII

Initialize the TSNSGAII population and optimization state.

Module Contents#

class evomo.algorithms.ts_nsga2.TSNSGAII(pop_size: int, n_objs: int, lb: torch.Tensor, ub: torch.Tensor, max_fe: int = 10000)#

Bases: evox.core.Algorithm

Initialize the TSNSGAII population and optimization state.

Parameters:
  • pop_size (int) – Required. Requested number of candidate solutions. Use a positive integer; algorithm-specific minimums and reference-vector sampling are described below.

  • n_objs (int) – Required. Number of objectives, matching the second dimension of the problem’s objective tensor. Objectives are minimized; this library targets two or more objectives.

  • lb (torch.Tensor) – Required. Lower decision bounds of shape (D,), where D is the number of decision variables. Use floating-point bounds with the same shape, dtype and device as ub, and lb <= ub elementwise.

  • ub (torch.Tensor) – Required. Upper decision bounds of shape (D,). The decision dimension is inferred from the bounds, rather than passed separately. Match lb in shape, dtype and device.

  • max_fe (int) – Default: 10000. Positive evaluation horizon setting the phase boundary at (0.8 + 0.2 * (1 - 3 / n_objs)) * max_fe evaluations, as in the reference implementation. The evaluation counter includes the initial population. This parameter controls the phase switch and does not stop subsequent calls to step().

Note

Use this algorithm through a workflow that connects the problem’s evaluation method. Call workflow.init_step() before workflow.step() or compiling the step. The current evaluation path expects an objective tensor of shape (B, n_objs). It does not consume a (fitness, constraint_violation) tuple.

Tensor allocation uses lb.device. There is no explicit device parameter; prepare both bounds on the intended device.

init_step() → None#

Evaluate the initial population and initialize algorithm state.

Invoke through workflow.init_step() before the first optimization step.

Returns:

None; results are stored in algorithm state.

step() → None#

Advance optimization and update population and fitness state in place.

Invoke through workflow.step() after initialization. The caller controls termination.

Returns:

None; results are stored in algorithm state.

evomo.algorithms.ts_nsga2.algo#