evox.algorithms.mo.hype

Module Contents

Classes

HypE

The tensorized version of HypE algorithm.

Functions

API

evox.algorithms.mo.hype.cal_hv(fit: torch.Tensor, ref: torch.Tensor, pop_size: int, n_sample: int)[source]
class evox.algorithms.mo.hype.HypE(pop_size: int, n_objs: int, lb: torch.Tensor, ub: torch.Tensor, n_sample: int = 10000, 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

The tensorized version of HypE algorithm.

References:

[1] J. Bader and E. Zitzler, “HypE: An algorithm for fast hypervolume-based many-objective optimization,” Evolutionary Computation, vol. 19, no. 1, pp. 45-76, 2011. Available: https://direct.mit.edu/evco/article-abstract/19/1/45/1363/HypE-An-Algorithm-for-Fast-Hypervolume-Based-Many

[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 HypE 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).

  • n_sample – The number of samples for hypervolume calculation (optional).

  • 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.

init_step()[source]

Perform the initialization step of the workflow.

Calls the init_step of the algorithm if overwritten; otherwise, its step method will be invoked.

step()[source]

Perform the optimization step of the workflow.