DE/current-to-rand/1
2026/3/21约 1498 字大约 5 分钟
DE/current-to-rand/1
名称
DE/current-to-rand/1,也称为:差分进化“current-to-rand”变异策略,或 DE/c-to-r/1。
分类
DE/current-to-rand/1 是差分进化(Differential Evolution, DE)算法中的一种变异策略。差分进化属于进化计算领域,而进化计算又是计算智能的一个分支。DE 与遗传算法(Genetic Algorithms)和进化策略(Evolution Strategies)等其他进化算法密切相关。
- 计算智能
- 仿生计算
- 进化计算
- 进化算法
- 差分进化
- DE 变异策略
- DE/current-to-rand/1
- DE 变异策略
- 差分进化
- 进化算法
- 进化计算
- 仿生计算
策略
DE/current-to-rand/1 是一种通过将当前个体、两个随机选取个体之间的缩放差分向量,以及第三个随机选取个体相结合来生成新候选解的变异策略。该策略在变异过程中引入了一定程度的随机性,这有助于维持种群多样性,并提升算法跳出局部最优的能力。
DE/current-to-rand/1 的变异过程可描述如下:
- 对当前种群中的每个个体,随机选择另外三个个体。
- 计算其中两个随机个体之间的差分向量。
- 使用变异因子(F)对该差分向量进行缩放。
- 将缩放后的差分向量加到第三个随机个体上。
- 使用加权因子(K)将当前个体与步骤 4 的结果进行组合。
- 所得到的向量即为变异后的个体。
该变异策略在利用当前个体信息的同时,也通过引入随机成分增强了对搜索空间的探索能力。加权因子(K)控制当前个体对变异个体的影响程度,从而实现局部搜索与全局搜索之间的权衡。
过程
数据结构
- 种群:由一组候选解构成,其中每个候选解均表示为一个 维向量, 为优化问题中的决策变量个数。
- 试验向量:通过变异和交叉操作生成的新候选解。
参数
- 种群规模(NP):种群中个体的数量。
- 变异因子(F):在变异过程中作用于差分向量的缩放系数,通常取值范围为 [0, 2]。
- 加权因子(K):控制当前个体对变异个体贡献程度的标量,通常取值范围为 [0, 1]。
- 交叉概率(CR):在变异个体与当前个体之间执行交叉的概率,通常取值范围为 [0, 1]。
伪代码
- 在搜索空间中随机初始化包含 NP 个个体的种群。
- 当终止条件尚未满足时,执行:
- 对种群中的每个个体 ,执行:
- 从种群中随机选取三个个体 、 和 ,其中 。
- 使用 DE/current-to-rand/1 变异策略计算变异个体 :
- 计算差分向量:
- 对差分向量进行缩放:
- 将缩放后的差分向量加到 上:
- 将当前个体与 进行组合:
- 对 和 执行交叉,生成试验向量 。
- 评估试验向量 的适应度。
- 若 的适应度优于 ,则用 替换种群中的 。
- 检查终止条件是否满足。
- 对种群中的每个个体 ,执行:
- 返回种群中找到的最优个体作为问题的解。
注意事项
优点
- 在变异过程中引入了一定程度的随机性,有助于维持种群多样性并避免早熟收敛。
- 在利用当前个体信息的同时,也兼顾了对搜索空间的探索。
- 可通过加权因子(K)在局部搜索与全局搜索之间进行权衡。
缺点
- 算法性能依赖于控制参数(F、K 和 CR)的合理设置,通常需要结合具体问题进行调参。
- 该变异策略引入的随机性可能使其相较于更偏开发性的策略收敛更慢。
- 对于决策变量高度相关的问题,该算法的有效性可能会降低。
启发式建议
变异因子(F)
- 较小的 F 值(如 0.1 到 0.5)更偏向开发,较大的 F 值(如 0.5 到 1.0)更偏向探索。
- 当种群多样性较低时,适当增大 F 有助于维持多样性并避免早熟收敛。
- 当算法收敛过慢时,适当减小 F 有助于加快收敛速度。
加权因子(K)
- 较小的 K 值(如 0.1 到 0.3)会赋予随机生成个体更大的权重,从而更偏向探索。
- 较大的 K 值(如 0.7 到 0.9)会赋予当前个体更大的权重,从而更偏向开发。
- 若算法过快收敛到次优解,减小 K 有助于维持种群多样性。
- 若算法收敛过慢,增大 K 有助于加快收敛。
交叉概率(CR)
- 较小的 CR 值(如 0.1 到 0.3)意味着试验向量中继承自变异个体的分量较少,更偏向开发。
- 较大的 CR 值(如 0.7 到 0.9)意味着试验向量中继承自变异个体的分量较多,更偏向探索。
- 若算法过快收敛到次优解,增大 CR 有助于维持种群多样性。
- 若算法收敛过慢,减小 CR 有助于加快收敛。
种群规模(NP)
- 较小的种群规模(如 20 到 50)可能带来更快的收敛速度,但也会增加早熟收敛的风险。
- 较大的种群规模(如 100 到 500)有助于维持种群多样性并增强搜索能力,但可能会降低收敛速度。
- 最优种群规模取决于问题复杂度以及可用计算资源。
- 一般而言,种群规模至少应设置为问题维数的 10 倍。