evox.algorithms.so.de_variants.sade

模块内容

SaDE

SaDE算法的实现。

数据

API

evox.algorithms.so.de_variants.sade.rand_1_bin

[0, 0, 1, 0]

evox.algorithms.so.de_variants.sade.rand_2_bin

[0, 0, 2, 0]

evox.algorithms.so.de_variants.sade.rand2best_2_bin

[0, 1, 2, 0]

evox.algorithms.so.de_variants.sade.current2rand_1

[0, 0, 1, 2]

class evox.algorithms.so.de_variants.sade.SaDE(pop_size: int, lb: torch.Tensor, ub: torch.Tensor, diff_padding_num: int = 9, LP: int = 50, device: torch.device | None = None)[源代码]

基础: evox.core.Algorithm

SaDE算法的实现。

参考:Qin A K, Huang V L, Suganthan P N. Differential evolution algorithm with strategy adaptation for global numerical optimization[J]. IEEE transactions on Evolutionary Computation, 2008, 13(2): 398-417.

初始化

用给定的参数初始化SaDE算法。

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

  • lb -- 搜索空间的下界。必须是一个一维张量。

  • ub -- 搜索空间的上界。必须是一个一维张量。

  • diff_padding_num -- 差分填充向量的数量。默认值为 9。

  • LP -- 内存大小。默认为 50。

  • device -- 用于张量计算的设备(例如,“cpu”或“cuda”)。默认为 None。

_get_strategy_ids(strategy_p: torch.Tensor, device: torch.device)[源代码]
_vmap_get_strategy_ids(strategy_p: torch.Tensor, device: torch.device)[源代码]
step()[源代码]

执行 SaDE 算法的单次优化步骤。

这涉及以下子步骤:

  1. 使用差分进化生成新种群。

  2. 评估新种群的适应度。

  3. 更新最佳个体和最佳适应度。

  4. 更新成功和失败的记忆。

  5. 更新 CR 内存。