evox.operators.selection.rvea_selection

模块内容

函数

apd_fn

根据给定的输入计算APD(角惩罚距离)。

ref_vec_guided

执行参考向量指导演化算法 (RVEA) 选择过程。

API

evox.operators.selection.rvea_selection.apd_fn(x: torch.Tensor, y: torch.Tensor, z: torch.Tensor, obj: torch.Tensor, theta: torch.Tensor)[源代码]

根据给定的输入计算APD(角惩罚距离)。

参数:
  • x -- 表示分区索引的张量。

  • y -- 一个表示伽马的张量。

  • z -- 表示角度的张量。

  • obj -- 一个形状为 (n, m) 的张量,表示解的目标。

  • theta -- 一个张量表示用于缩放参考向量的参数 theta。

返回:

一个包含每个解的 APD 值的张量。

evox.operators.selection.rvea_selection.ref_vec_guided(x: torch.Tensor, f: torch.Tensor, v: torch.Tensor, theta: torch.Tensor)[源代码]

执行参考向量指导演化算法 (RVEA) 选择过程。

此函数基于参考向量引导的演化算法选择解决方案。它计算解决方案与参考向量之间的距离和角度,并返回下一组待演化的解决方案。

参数:
  • x -- 一个形状为 (n, d) 的张量,表示当前种群的解。

  • f -- 表示每个解的目标值的张量,以形状 (n, m) 表示。

  • v -- 一个形状为 (r, m) 的张量,表示参考向量。

  • theta -- 一个张量,表示在APD计算中使用的参数theta。

返回:

一个元组包含:next_x:下一个选定的解决方案。 next_f:下一个选定的解决方案的目标值。

备注

该函数计算解与参考向量之间的距离,并选择具有最小APD的解。它当前使用的是次优选择实现,未来的改进将使用CUDA中的segment_sortsegment_argmin来优化该过程。