遗传算法(GA)是一种基于种群的进化优化技术,它灵感源于自然选择和遗传学原理。在传统优化技术难以奏效的复杂问题面前,它通过使用选择、交叉和变异等受生物学启发的算子,对候选解种群进行迭代进化,从而找到最优或接近最优的解决方案。
- 非常适用于非线性、非凸和多模态问题
- 使用概率搜索而非确定性规则
- 不需要梯度信息
1. 种群
!population种群
种群是指在遗传算法的特定阶段(即“代”)中存在的候选解(个体)的集合。与仅处理单个解决方案不同,遗传算法会同时评估和进化多个解,这有助于保持多样性,并降低陷入局部最优的风险。
- 种群的大小会显著影响收敛行为
- 较大的种群能增强探索能力,但会提高计算成本
- 较小的种群收敛速度更快,但存在过早收敛的风险
2. 染色体
染色体代表了问题的一个完整候选解。它是基因的结构化集合,编码了使用适应度函数评估解决方案所需的所有决策变量。
3. 基因
基因是染色体中最小的信息单位,代表了解的单个变量、参数或特征。所有基因的集体表现决定了染色体的质量。
4. 编码方法
编码是指候选解在染色体中的表示方式。选择合适的编码至关重要,因为它直接影响遗传算子的有效性。
a. 二进制编码
- 使用二进制字符串(0和1)
- 简单且易于实现
- 常用于理论遗传算法模型
b. 实值编码
- 基因是实数
- 适用于连续优化问题
- 收敛速度更快且精度更高
c. 排列编码
- 染色体表示有序序列
- 用于路径规划、调度和排序问题
- 需要专门的交叉和变异算子
5. 适应度函数
!chromosome适应度函数
适应度函数是一种数学公式,用于评估染色体解决给定问题的程度。它是遗传算法的指导力量,决定了哪些个体更有可能进行繁殖。
- 适应度越高意味着解的质量越好
- 适应度函数因具体问题而异
- 可以设计为最大化或最小化问题
6. 终止准则
终止准则定义了遗传算法停止运行的条件。恰当的终止条件既能防止不必要的计算,又能保证解的质量。常见的终止条件包括:
- 达到最大进化代数
- 达到预期的适应度或阈值
- 连续多代适应度没有改善
- 超过计算时间限制
7. 选择
选择是从当前种群中选择染色体的过程,目的是让它们作为下一代的父代。我们的目标是优先选择适应性更强的个体,同时保持种群的多样性。常见的父代选择方案包括:
a. 轮盘赌选择: 这是一种适应度比例选择技术,每个个体被选中的概率与其适应度值成正比。适应度越高的个体在轮盘上占据的扇区越大,因此被选中的可能性也越高。
!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20251223154731875584/fitnessvalue.webp">fitnessvalue轮盘赌选择
b. 锦标赛选择: 这种方法从种群中随机选择一小群个体,并选出其中适应度最高的作为父代。重复此过程直到选出所需数量的父代。
!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20251223154806452649/fitnessvalue3.webp">fitnessvalue3锦标赛选择
c. 随机普遍采样(SUS): 这是适应度比例选择的改进版本,旨在减少标准轮盘赌选择中存在的随机性和采样偏差。SUS 不是使用单个随机指针,而是使用多个等间距的指针从种群中选择个体。
!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20251223154833482582/fitnessvalue2.webp">fitnessvalue2随机普遍采样选择
8. 交叉
交叉是一种遗传算子,它将两个父代染色体的遗传物质结合起来,生成 n