一、遗传算法基础
1. 什么是遗传算法?
一种模拟生物进化过程 的优化算法,基于达尔文的“自然选择”和“遗传学理论”。 核心思想:通过选择(优胜劣汰)、交叉(基因重组)、变异(基因突变)操作,逐步逼近问题的最优解。
2. 为什么用遗传算法?
适用性强 :解决复杂的非线性、多峰、离散或连续优化问题。无需梯度信息 :对目标函数的数学性质要求低,适合黑箱优化。全局搜索能力 :通过种群并行搜索,避免陷入局部最优,适合多维优化。
二、遗传算法的核心步骤
1. 初始化种群
随机生成一组染色体(编码后的解) ,称为初始种群。 编码方式:二进制编码、实数编码、排列编码等。
2. 计算适应度(Fitness)
适应度函数:量化染色体优劣,通常是目标函数的变形。 例 :求解 f(x) = x²
的最小值,适应度可设为 1 / (1 + x²)
。
3. 选择操作(Selection)
择优保留 :根据适应度选择优秀的染色体作为父代。常用方法:轮盘赌选择、锦标赛选择、排序选择等。
4. 交叉操作(Crossover)
5. 变异操作(Mutation)
基因突变 :随机改变染色体中的部分基因,维持种群多样性。例 :二进制编码中随机翻转某一位(0→1 或 1→0)。
6. 终止条件
提前设置终止条件:如达到最大迭代次数,或适应度不再提升。
三、MATLAB 遗传算法仿真示例
问题:求解函数 f(x) = x²
的最小值
population_size = 50 ;
chromosome_length = 10 ;
max_generation = 100 ;
mutation_rate = 0.01 ;
population = randi ( [ 0 1 ]