evox.algorithms.mo.nsga3

模块内容

NSGA3

一个用于多目标优化问题的张量化NSGA-III算法的实现。

函数

数据

API

evox.algorithms.mo.nsga3._get_table_row_inner(bool_ref_candidate: torch.Tensor, upper_bound: torch.Tensor)[源代码]
evox.algorithms.mo.nsga3.vmap_get_table_row

'vmap(...)'

evox.algorithms.mo.nsga3._select_from_index_by_min_inner(group_id: torch.Tensor, group_dist: torch.Tensor, idx: torch.Tensor)[源代码]
evox.algorithms.mo.nsga3.vmap_select_from_index_by_min

'vmap(...)'

evox.algorithms.mo.nsga3._get_extreme_inner(norm_fit: torch.Tensor, w: torch.Tensor)[源代码]
evox.algorithms.mo.nsga3.vmap_get_extreme

'vmap(...)'

class evox.algorithms.mo.nsga3.NSGA3(pop_size: int, n_objs: int, lb: torch.Tensor, ub: torch.Tensor, selection_op: Optional[Callable] = None, mutation_op: Optional[Callable] = None, crossover_op: Optional[Callable] = None, data_type: Optional[torch.dtype] = None, device: torch.device | None = None)[源代码]

基础: evox.core.Algorithm

一个用于多目标优化问题的张量化NSGA-III算法的实现。

参考文献:

[1] K. Deb 和 H. Jain,“一种基于参考点的非支配排序方法的演化多目标优化算法,第 I 部分: 使用盒约束求解问题,”《IEEE Transactions on Evolutionary Computation》,第 18 卷,第 4 期,第 577-601 页,2014。链接: https://ieeexplore.ieee.org/document/6600851

[2] H. Li, Z. Liang, and R. Cheng, "GPU-accelerated Evolutionary Many-objective Optimization Using Tensorized NSGA-III," in 2025 IEEE Congress on Evolutionary Computation, 2025.

初始化

初始化 NSGA-III 算法。

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

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

  • lb -- 决策变量的下界(1D 张量)。

  • ub -- 决策变量的上界(1D 张量)。

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

  • mutation_op -- 基因突变操作,该选项的缺省值是 polynomial_mutation,如果未提供,则使用默认值 (可选)。

  • crossover_op -- 交叉操作,如果未提供(可选),默认为 simulated_binary。

  • data_type -- 决策变量的数据类型(可选)。默认值为torch.float32。

  • device -- 计算应该运行的设备(可选)。默认为 PyTorch 的默认设备。

init_step()[源代码]

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

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

step()[源代码]

执行工作流的优化步骤。

_get_extreme(norm_fit: torch.Tensor, w: torch.Tensor)[源代码]
_compute_distances(fit: torch.Tensor, ref: torch.Tensor)[源代码]