DE/rand/1/exp
2026/3/21约 1379 字大约 5 分钟
DE/rand/1/exp
名称
DE/rand/1/exp(差分进化 rand/1/exp 变体)
分类
DE/rand/1/exp 是差分进化(Differential Evolution, DE)算法的一种变体。差分进化是一种基于种群的优化算法,属于进化计算领域,而进化计算又是计算智能的一个分支。
- 计算智能
- 进化计算
- 进化算法
- 差分进化
- DE/rand/1/exp
- 差分进化
- 进化算法
- 进化计算
策略
DE/rand/1/exp 在一组候选解构成的种群上运行,并通过变异、交叉和选择的迭代过程不断改进解的质量。算法维护一个固定规模的种群,其中每个个体都表示优化问题的一个潜在解。
变异
在变异步骤中,DE/rand/1/exp 为种群中的每个个体生成一个变异向量。该变异向量通过将两个随机选取个体之间的加权差分加到第三个随机选取个体上得到。这种变异策略记作“rand/1”,表示基向量是随机选择的,并且使用一个差分向量。
交叉
在变异之后,算法对每个个体(目标向量)及其对应的变异向量执行交叉,以生成试验向量。在 DE/rand/1/exp 中,交叉采用指数交叉(exponential crossover)方式。该方式从向量中一个随机选取的起始位置开始,连续将变异向量中的元素复制到试验向量中,直到随机数超过交叉概率(CR)或到达向量末尾为止。
选择
最后,选择步骤决定试验向量是否替换种群中的目标向量进入下一代。在 DE/rand/1/exp 中,采用贪婪选择策略,即仅当试验向量的适应度优于目标向量时,才用其替换目标向量。
算法持续执行上述变异、交叉和选择过程,直到达到预设代数,或找到满足要求的解为止。
过程
- 初始化种群
- 设置种群规模(NP)和问题维数(D)
- 在搜索空间边界内随机初始化 NP 个个体
- 当未满足停止准则时,执行:
- 对种群中的每个个体(目标向量),执行:
- 变异:
- 从种群中随机选取三个互不相同且不同于目标向量的个体(r1, r2, r3)
- 计算变异向量:v = x_r1 + F * (x_r2 - x_r3),其中 F 为变异缩放因子
- 交叉:
- 从 [1, D] 中随机选择一个交叉起点 k
- 用目标向量 x 的元素初始化试验向量 u
- 对 j = k 到 D,执行:
- 若 rand() < CR 或 j == D,则令 u_j = v_j,否则令 u_j = x_j
- 若 j == D,则终止
- 选择:
- 计算试验向量 u 的适应度
- 若 u 的适应度优于 x,则在种群中用 u 替换 x
- 变异:
- 更新当前找到的最优解
- 对种群中的每个个体(目标向量),执行:
- 返回当前找到的最优解
数据结构
- 种群:由 NP 个个体构成的数组,每个个体表示一个候选解
- 个体:由 D 个实值分量组成的向量,对应搜索空间中的一个点
- 变异向量:在变异步骤中生成的向量,用于构造试验向量
- 试验向量:在交叉步骤中生成的向量,可能在下一代替换目标向量
参数
- NP:种群规模
- D:问题维数(决策变量个数)
- F:变异缩放因子,用于控制差分扰动的幅度
- CR:交叉概率,用于决定从变异向量继承分量的比例
注意事项
优点
- 结构简单,易于实现
- 控制参数较少
- 能够有效求解多种优化问题
- 兼具较好的探索能力与开发能力
缺点
- 在高维搜索空间中性能可能下降
- 对复杂问题而言,收敛速度可能较慢
- 对控制参数(F 和 CR)的选取较为敏感
启发式建议
种群规模(NP)
- 一般经验上,可将 NP 设为问题维数的 10 倍左右
- 对于更复杂的问题,可能需要更大的种群规模,以维持多样性并避免早熟收敛
变异缩放因子(F)
- 通常从区间 [0.4, 1.0] 中选取
- 较小的 F 值更偏向开发,较大的 F 值更有利于探索
- 一个较好的初始值是 F = 0.5,之后可根据问题特性进行调整
交叉概率(CR)
- 通常从区间 [0.0, 1.0] 中选取
- 较大的 CR 值更偏向开发,较小的 CR 值更鼓励探索
- 常见取值是 CR = 0.9,但也可根据具体问题进行调整
停止准则
- 可根据可用计算资源和问题复杂度设置最大迭代代数
- 也可以监测最优解的改进情况,若在一定代数内没有显著提升,则停止算法
边界约束
- 应确保初始种群在搜索空间边界内生成
- 在变异和交叉之后,若试验向量违反边界约束,可通过以下方式修复:
- 将越界分量重置为最近的边界值
- 在边界范围内随机重新初始化越界分量
问题特定适配
- 可将具体问题的先验知识融入变异算子或交叉算子中,以提升搜索效率
- 也可尝试不同的变异策略(如 DE/best/1/exp、DE/current-to-best/1/exp),以根据问题特征平衡探索与开发