evox.algorithms.so.de_variants.ode¶
模块内容¶
类¶
反对基差差分进化 (ODE) 算法用于优化。 |
API¶
- class evox.algorithms.so.de_variants.ode.ODE(pop_size: int, lb: torch.Tensor, ub: torch.Tensor, base_vector: Literal[best, rand] = 'rand', num_difference_vectors: int = 1, differential_weight: float | torch.Tensor = 0.5, cross_probability: float = 0.9, mean: torch.Tensor | None = None, stdev: torch.Tensor | None = None, device: torch.device | None = None)[源代码]¶
基础:
evox.core.Algorithm反对基差差分进化 (ODE) 算法用于优化。
Class Methods
__init__:使用给定的参数初始化 ODE 算法,包括种群大小、边界、变异策略和其他超参数。init_step: 执行种群适应度的初始评估,并进入第一次优化步骤。step: 执行ODE算法的单个优化步骤,包括变异、交叉、选择和基于对抗的机制。
请注意,
evaluate方法在这个类中未定义。它预计由Problem类或其他外部组件提供。初始化
使用给定的参数初始化基于对抗的差分进化(ODE)算法。
- 参数:
pop_size -- 种群大小。
lb -- 粒子位置的下界。必须是一个一维张量。
ub -- 粒子位置的上界。必须是一个一维张量。
base_vector -- 用于变异的基础向量类型。可以是 "best" 或 "rand"。默认值为 "rand"。
num_difference_vectors -- 在变异中使用的差异向量的数量。必须至少为 1 且小于种群大小的一半。默认为 1。
differential_weight -- 应用于差异向量的差异权重 (F)。可以是一个浮点数或形状为 [num_difference_vectors] 的张量。默认值为 0.5。
cross_probability -- 交叉概率(CR)。必须在(0,1]之间。默认值为0.9。
mean -- 用于通过正态分布初始化种群的均值。如果使用,则必须提供标准差(stdev)。默认为 None。
stdev -- 用于通过正态分布初始化种群的标准差。若使用,则必须提供均值。默认为 None。
device -- 用于张量计算的设备。默认为 None。