evox.algorithms.mo.rvea

模块内容

RVEA

一个针对多目标优化问题的参考向量引导演化算法(RVEA)的张量化实现。

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)[源代码]

基础: evox.core.Algorithm

一个针对多目标优化问题的参考向量引导演化算法(RVEA)的张量化实现。

参考文献:

[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

初始化

使用给定参数初始化RVEA算法。

参数:
  • pop_size -- 种群大小。

  • n_objs -- 优化问题中的目标函数数量。

  • lb -- 决策变量的下限值

  • ub -- 决策变量的上限界值。

  • alpha -- 一个参数,用于控制惩罚的变化速率。默认值为 2。

  • fr -- 引用向量适应的频率。默认为 0.1。

  • max_gen -- 最大世代数。默认为 100。

  • selection_op -- 进化策略的选择操作(可选)。

  • mutation_op -- 变异操作(可选)。

  • crossover_op -- 交叉操作(可选)。

  • device -- 运行计算的设备(可选)。

init_step()[源代码]

执行工作流的初始化步骤。

调用算法的 init_step 如果被重写;否则,将调用其 step 方法。

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

执行单次优化步骤。