evox.operators.selection.rvea_selection
¶
模块内容¶
函数¶
根据给定的输入计算APD(角惩罚距离)。 |
|
执行参考向量指导演化算法 (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_sort
或segment_argmin
来优化该过程。