evox.algorithms.mo.rveaa

Module Contents

Classes

RVEAa

An implementation of the Reference Vector Guided Evolutionary Algorithm embedded with the reference vector regeneration strategy (RVEAa) for multi-objective optimization problems.

API

class evox.algorithms.mo.rveaa.RVEAa(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

An implementation of the Reference Vector Guided Evolutionary Algorithm embedded with the reference vector regeneration strategy (RVEAa) for multi-objective optimization problems.

This class is designed to solve multi-objective optimization problems using a reference vector guided evolutionary algorithm.

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

Initialization

Initialize the RVEAa 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]
_rv_regeneration(pop_obj: torch.Tensor, v: torch.Tensor)[source]
_batch_truncation(pop: torch.Tensor, obj: torch.Tensor)[source]
_no_batch_truncation(pop: torch.Tensor, obj: torch.Tensor)[source]
_update_pop_and_rv(survivor: torch.Tensor, survivor_fit: torch.Tensor)[source]
step()[source]

Perform a single optimization step.