ZeroHour's Site

Back

08 遗传算法#

1. 本章定位#

遗传算法是智能优化算法。考试重点是基本流程、编码、适应度、选择/交叉/变异、模式定理、参数影响和应用。

2. 智能优化算法#

智能优化算法又称现代启发式算法,特点:

  1. 具有全局优化性能。
  2. 通用性强。
  3. 适合并行处理。
  4. 通常能在一定时间内找到最优解或近似最优解。

常见算法:

  1. 遗传算法 GA。
  2. 模拟退火 SA。
  3. 禁忌搜索 TS。

3. 遗传算法思想#

遗传算法由 J. Holland 于 1975 年提出,借鉴自然选择和自然遗传机制。

基本搜索过程:

  1. 保留一组候选解。
  2. 根据适应度选择较优个体。
  3. 通过选择、交叉、变异产生新一代。
  4. 重复迭代直到满足收敛条件。

4. SGA 基本组成#

基本遗传算法 SGA 包括:

  1. 编码与初始种群。
  2. 适应度函数。
  3. 遗传算子:选择、交叉、变异。
  4. 运行参数。

5. 编码#

SGA 常用二进制串编码。

函数优化示例:

f(x)=xsin(10πx)+2.0,x[1,2]f(x)=x\sin(10\pi x)+2.0,\quad x\in[-1,2]

若精度要求为 10610^{-6},区间长度为 3,需要:

221<3×106<2222^{21}<3\times 10^6<2^{22}

因此至少需要 22 位二进制编码。

6. 适应度函数#

适应度函数评价个体好坏,是遗传算法进化过程的驱动力。

原则:

  1. 适应度越大,解质量越好。
  2. 适应度设计要结合具体问题。
  3. 对约束问题可加入惩罚函数。

7. 选择算子#

选择实现优胜劣汰。适应度高的个体进入下一代概率更大。

轮盘赌选择:

Pi=Fii=1nFiP_i=\frac{F_i}{\sum_{i=1}^{n}F_i}

步骤:

  1. 计算所有个体适应度。
  2. 计算每个个体选择概率。
  3. 用随机数模拟赌盘确定下一代个体。

8. 交叉算子#

交叉按交叉概率 PcP_c 对两个配对染色体交换部分基因,产生新个体。

SGA 常用单点交叉。

作用:遗传算法产生新个体的主要方式,也是区别于许多其他进化算法的重要特征。

9. 变异算子#

变异按变异概率 PmP_m 改变编码串中的某些基因。

二进制编码中:

0 -> 1
1 -> 0
text

作用:

  1. 增强局部搜索能力。
  2. 保持种群多样性。
  3. 防止过早收敛。

10. SGA 流程#

  1. 产生初始种群。
  2. 判断是否满足停止准则。
  3. 计算个体适应度。
  4. 比例选择。
  5. 单点交叉。
  6. 基本位变异。
  7. 产生新一代种群。
  8. 循环直到停止。

11. 遗传算法特点#

常见简答题答案:

  1. 群体搜索,易于并行化。
  2. 不是盲目穷举,而是启发式搜索。
  3. 适应度函数不要求连续、可微。
  4. 适用范围广。
  5. 具有全局搜索能力。

12. 模式定理#

模式:基因串中的相似样板,用 {0,1,}\{0,1,*\} 表示,其中 * 表示任意字符。

例:

10**1
text

模式阶:

O(101)=3O(10**1)=3

定义距:

δ(101)=4\delta(10**1)=4

模式定理:

具有低阶、短定义距、平均适应度高于种群平均适应度的模式,在子代中呈指数增长。

13. 积木块假设#

积木块假设:

遗传算法通过短定义距、低阶、高平均适应度的模式,在遗传操作下相互结合,最终接近全局最优解。

模式定理解释“优良模式会增加”,积木块假设解释“优良模式能组合出更好的解”。

14. 收敛性影响因素#

因素影响
种群规模 MM太小采样不足,太大计算慢
选择操作高适应度个体保留,提高收敛性
交叉概率 PcP_c太大破坏优秀个体,太小搜索停滞
变异概率 PmP_m太小缺少新模式,太大变随机搜索

最优保存策略:保留父代最佳个体,不参加交叉和变异,直接进入下一代,有利于防止最优解丢失。

15. 遗传算法改进#

遗传欺骗问题:超常个体过早控制选择过程,使算法陷入局部最优。

改进方向:

  1. 编码方式:格雷编码、浮点数编码。
  2. 遗传算子:排序选择、均匀交叉、逆序变异。
  3. 控制参数:自适应 PcP_cPmP_m
  4. 执行策略:混合遗传算法、小生境遗传算法、并行遗传算法等。

Schaffer 建议范围:

M=20100M=20\sim100 T=100500T=100\sim500 Pc=0.40.9P_c=0.4\sim0.9 Pm=0.0010.01P_m=0.001\sim0.01

16. 应用#

常见应用领域:

  1. 组合优化。
  2. 函数优化。
  3. 自动控制。
  4. 生产调度。
  5. 图像处理。
  6. 机器学习。
  7. 数据挖掘。

PID 参数优化中,可把 Kp,Ki,KdK_p,K_i,K_d 编码为染色体,适应度由控制性能指标构造。例如 ITAE:

J=te(t)dtJ=\int t|e(t)|\,dt

通常希望 JJ 越小越好,可把适应度设计为 1/J1/J 或相关变形。

17. 本章考点#

必背:

  1. SGA 的组成和流程。
  2. 轮盘赌选择公式。
  3. 交叉和变异的作用。
  4. 遗传算法特点。
  5. 模式定理与积木块假设。
  6. 参数 M,T,Pc,PmM,T,P_c,P_m 的影响。
  7. 遗传算法在 PID 优化中的应用思路。
08 遗传算法
https://zerohour.fun/blog/intelligent_control/08-%E9%81%97%E4%BC%A0%E7%AE%97%E6%B3%95
Author ZeroHour
Published at 2026年5月12日
Comment seems to stuck. Try to refresh?✨