遗传算法(Genetic Algorithm,GA)是一种受生物进化理论启发的优化算法,通过模拟自然选择和遗传机制来搜索复杂问题的最优解。
核心原理
- 自然选择与适者生存:适应度高的个体更有可能繁殖,将基因传递给下一代。
- 遗传操作:通过交叉(基因重组)和变异引入多样性,避免局部最优。
基本步骤
-
初始化种群
随机生成一组可能的解(个体),每个个体由基因型(如二进制串、实数向量)表示。 -
适应度评估
计算每个个体的适应度(由目标函数转换而来,例如取倒数或负数以处理最小化问题)。 -
选择
根据适应度选择优秀个体作为父代。常用方法:- 轮盘赌选择:概率与适应度成正比。
- 锦标赛选择:随机选取几个个体竞争最优者。
-
交叉(Crossover)
两个父代交换部分基因,生成子代。例如:- 单点交叉:随机选分割点,交换后半部分基因。
- 均匀交叉:按概率交换每个基因位。
-
变异(Mutation)
以低概率随机改变基因(如翻转二进制位或微调实数值),保持多样性。 -
生成新一代种群
用新个体替换或部分替换旧种群,重复步骤2-5直至满足终止条件(如迭代次数、适应度阈值)。
关键参数
- 种群规模:影响搜索效率与多样性,需平衡计算成本。
- 交叉率(0.7-0.9):控制基因交换频率。
- 变异率(0.01-0.1):避免早熟收敛,促进探索。
应用场景
- 函数优化:寻找复杂函数极值。
- 组合优化:如旅行商问题(TSP)、调度问题。
- 机器学习:超参数调优、神经网络结构搜索。
- 工程设计:结构优化、控制系统设计。
示例:优化f(x)=x²
- 编码:实数编码直接表示x值。
- 适应度:取-f(x),因目标是最小化。
- 操作:选择高适应度个体,交叉生成新x值,变异引入小幅扰动。
- 结果:种群逐渐收敛到x=0附近。
优缺点
- 优点:全局搜索能力强,适用于离散/连续、高维、非线性问题。
- 缺点:计算成本高,参数敏感,不保证全局最优。
与其他算法对比
- 粒子群优化(PSO):个体追踪自身和群体最佳位置。
- 蚁群算法:通过信息素模拟蚂蚁觅食路径优化。
遗传算法通过模拟生物进化机制,为解决复杂优化问题提供了灵活而强大的工具,其成功依赖于合理的编码设计、适应度函数及参数调优。