evox.algorithms.so.de_variants.code

模块内容

CoDE

CoDE算法实现

数据

API

evox.algorithms.so.de_variants.code.rand_1_bin

[0, 0, 1, 0]

evox.algorithms.so.de_variants.code.rand_2_bin

[0, 0, 2, 0]

evox.algorithms.so.de_variants.code.current2rand_1

[0, 0, 1, 2]

evox.algorithms.so.de_variants.code.rand2best_2_bin

[0, 1, 2, 0]

evox.algorithms.so.de_variants.code.current2pbest_1_bin

[3, 2, 1, 0]

class evox.algorithms.so.de_variants.code.CoDE(pop_size: int, lb: torch.Tensor, ub: torch.Tensor, diff_padding_num: int = 5, param_pool: torch.Tensor = torch.tensor([[1, 0.1], [1, 0.9], [0.8, 0.2]]), replace: bool = False, device: torch.device | None = None)[源代码]

基础: evox.core.Algorithm

CoDE算法实现

参考文献: Wang Y, Cai Z, Zhang Q. 使用复合试验向量生成策略和控制参数的差分进化[J]. IEEE 进化计算交易, 2011, 15(1): 55-66.

初始化

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

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

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

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

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

  • param_pool -- 算法的控制参数对的张量。默认为预定义的张量。

  • replace -- 一个布尔值,指示是否替换种群中的个体。默认为 False。

  • device -- 用于张量计算的设备。默认为 None。

step()[源代码]

执行CoDE算法的一次迭代。

此步骤由以下步骤组成:

  1. 使用微分和生成试验向量。

  2. 应用交叉生成一个新向量。

  3. 应用变异以生成新向量。

  4. 更新种群和适应度。