evox.algorithms.mo.rvea

Module Contents

Classes

RVEA

A tensorized implementation of the Reference Vector Guided Evolutionary Algorithm (RVEA) for multi-objective optimization problems.

API

class evox.algorithms.mo.rvea.RVEA(pop_size: int, n_objs: int, lb: torch.Tensor, ub: torch.Tensor, alpha: float = 2.0, fr: float = 0.1, max_gen: int = 100, 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 Reference Vector Guided Evolutionary Algorithm (RVEA) for multi-objective optimization problems.

References:

[1] R. Cheng, Y. Jin, M. Olhofer, and B. Sendhoff, “A reference vector guided evolutionary algorithm for many-objective optimization,” IEEE Transactions on Evolutionary Computation, vol. 20, no. 5, pp. 773-791, 2016. Available: https://ieeexplore.ieee.org/document/7386636

[2] Z. Liang, T. Jiang, K. Sun, and R. Cheng, “GPU-accelerated Evolutionary Multiobjective Optimization Using Tensorized RVEA,” in Proceedings of the Genetic and Evolutionary Computation Conference, ser. GECCO ’24, 2024, pp. 566–575. Available: https://doi.org/10.1145/3638529.3654223

Initialization

Initialize the RVEA algorithm with the given parameters.

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.

  • ub – The upper bounds for the decision variables.

  • alpha – A parameter for controlling the rate of change of penalty. Defaults to 2.

  • fr – The frequency of reference vector adaptation. Defaults to 0.1.

  • max_gen – The maximum number of generations. Defaults to 100.

  • selection_op – The selection operation for evolutionary strategy (optional).

  • mutation_op – The mutation operation (optional).

  • crossover_op – The crossover operation (optional).

  • device – The device on which computations should run (optional).

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.

_rv_adaptation(pop_obj: torch.Tensor)[source]
_no_rv_adaptation(pop_obj: torch.Tensor)[source]
_mating_pool()[source]
_update_pop_and_rv(survivor: torch.Tensor, survivor_fit: torch.Tensor)[source]
step()[source]

Perform a single optimization step.