evox.operators.selection.non_dominate
¶
模块内容¶
函数¶
返回支配关系矩阵 A,其中 A_{ij} 为 True,如果 x_i 支配 y_j。 |
|
更新当前帕累托前沿的主导计数和等级。 |
|
计算多目标优化中一组解的非支配等级。 |
|
计算多目标优化中一组解的拥挤距离。 |
|
基于非支配等级和拥挤距离进行环境选择。 |
API¶
- evox.operators.selection.non_dominate.dominate_relation(x: torch.Tensor, y: torch.Tensor) torch.Tensor [源代码]¶
返回支配关系矩阵 A,其中 A_{ij} 为 True,如果 x_i 支配 y_j。
- 参数:
x -- 一个形状为 (n1, m) 的数组,其中 n1 是种群大小,m 是目标数量。
y -- 一个形状为 (n2, m) 的数组,其中 n2 是种群大小,m 是目标数量。
- 返回:
x 和 y 的支配关系矩阵。
- evox.operators.selection.non_dominate.update_dc_and_rank(dominate_relation_matrix: torch.Tensor, dominate_count: torch.Tensor, pareto_front: torch.BoolTensor, rank: torch.Tensor, current_rank: int)[源代码]¶
更新当前帕累托前沿的主导计数和等级。
- 参数:
dominate_relation_matrix -- 个体之间的支配关系矩阵。
dominate_count -- 每个个体被多少个体所支配的计数。
pareto_front -- 一个张量表示当前帕累托前沿中的个体。
rank -- 每个个体的等级的张量。
current_rank -- 当前帕累托前沿排名
- 返回:
rank: 更新的排名张量。 dominate_count: 更新的支配计数张量。
- evox.operators.selection.non_dominate._igr_fake(dominate_relation_matrix: torch.Tensor, dominate_count: torch.Tensor, rank: torch.Tensor, pareto_front: torch.Tensor, compiling: bool) torch.Tensor [源代码]¶
- evox.operators.selection.non_dominate._igr_fake_vmap(dominate_relation_matrix: torch.Tensor, dominate_count: torch.Tensor, rank: torch.Tensor, pareto_front: torch.Tensor, compiling: bool) torch.Tensor [源代码]¶
- evox.operators.selection.non_dominate._vmap_iterative_get_ranks_compile(dominate_relation_matrix: torch.Tensor, dominate_count: torch.Tensor, rank: torch.Tensor, pareto_front: torch.Tensor) torch.Tensor [源代码]¶
- evox.operators.selection.non_dominate._vmap_iterative_get_ranks(dominate_relation_matrix: torch.Tensor, dominate_count: torch.Tensor, rank: torch.Tensor, pareto_front: torch.Tensor, compiling: bool) torch.Tensor [源代码]¶
- evox.operators.selection.non_dominate._iterative_get_ranks_compile(dominate_relation_matrix: torch.Tensor, dominate_count: torch.Tensor, rank: torch.Tensor, pareto_front: torch.Tensor) torch.Tensor [源代码]¶
- evox.operators.selection.non_dominate._iterative_get_ranks(dominate_relation_matrix: torch.Tensor, dominate_count: torch.Tensor, rank: torch.Tensor, pareto_front: torch.Tensor, compiling: bool) torch.Tensor ¶
- evox.operators.selection.non_dominate.non_dominate_rank(x: torch.Tensor) torch.Tensor [源代码]¶
计算多目标优化中一组解的非支配等级。
每个解的帕累托最优度被称为非支配等级。
- 参数:
f -- 一个二维张量,其中每一行代表一个解,每一列代表一个目标。
- 返回:
一个 1D 张量,包含每个解的非支配排名。
- evox.operators.selection.non_dominate.crowding_distance(costs: torch.Tensor, mask: torch.Tensor)[源代码]¶
计算多目标优化中一组解的拥挤距离。
Pareto 前景中解的多样性度量:
- 参数:
costs -- 一个二维张量,其中每一行代表一个解,每一列代表一个目标。
mask -- 一个 1D 布尔张量,指示哪些解决方案应该被考虑。
- 返回:
一个 1D 张量,包含每个解的拥挤距离。
- evox.operators.selection.non_dominate.nd_environmental_selection(x: torch.Tensor, f: torch.Tensor, topk: int)[源代码]¶
基于非支配等级和拥挤距离进行环境选择。
- 参数:
x -- 一个二维张量,其中每行代表一个解决方案,每列代表一个决策变量。
f -- 一个二维张量,其中每一行代表一个解,每一列代表一个目标。
topk -- 选择的解的数量。
- 返回:
一个由四个张量组成的元组:x:选择的解。 f:对应的目标值。 rank:选择的解的非支配等级。 crowding_dis:选择的解的拥挤距离。