遗传算法优化 返回
进化计算·优化

遗传算法优化模拟器

对Rastrigin、Ackley等困难基准函数执行GA。实时可视化种群探索适应度地形并收敛到最优解的过程。

参数设置
目标函数
种群规模 N
突变率
交叉率
最大代数
当前状态
计算结果
0
代数
最佳适应度
最佳 x
最佳 y
多样性(标准差)
0.05
突变率
0.80
交叉率
200
最大代数
适应度地形(等高线)+ 种群(白点)+ 最佳个体(红星)
最佳适应度演化
理论·主要公式
$$f(x,y)=20+x^2+y^2-10(\cos 2\pi x+\cos 2\pi y)$$

定义域 $[-5,5]^2$,最小值 $f(0,0)=0$

遗传算法优化简介

🙋
听说遗传算法是模仿生物进化来找最优解,具体是怎么做的呢?
🎓
简单来说,就是创建一个随机解的种群(群体),通过选择好的解、将它们组合在一起(交叉)、偶尔随机改变一下(突变),经过多代进化来改进解。你可以先按默认设置点"运行"按钮试试看。你会看到点(个体)在布满山谷的地形上搜索,逐渐向最低的谷地(最优解)聚集。
🙋
那图上"布满山谷"是什么意思?Rastrigin函数是什么?看起来确实很凹凸不平呢。
🎓
这正是关键!Rastrigin函数 f(x,y)=20+x²+y²−10(cos2πx+cos2πy) 看起来有个很深的谷在中间(全局最优解),但周围周期性地分布着无数个浅谷(局部最优解)。普通的梯度下降法会在第一个陷入的浅谷里困住,无法脱身。而遗传算法因为同时用多个点搜索,而且种群保持多样性,所以更容易找到深谷,并吸引其他个体过来。试试调低"交叉率"参数,你会看到种群间信息共享减少,收敛速度变慢。
🙋
明白了!那在真实的CAE设计工程中,有这么凹凸的函数需要优化吗?
🎓
当然有。比如优化汽车发动机燃烧室的形状时,计算燃油消耗和排放污染的CAE仿真非常复杂,改变参数后输出会上下波动,是一个很"嘈杂"的函数。这就像Rastrigin函数有很多局部最优一样。遗传算法可以把仿真当黑盒处理,只根据输入参数和输出结果来寻找最优的形状参数。你试试把"目标函数"改为Ackley函数,看看算法在不同地形上的表现吧。

常见问题

请尝试调整交叉率和突变率。突变率过低容易陷入局部最优,过高则收敛缓慢。此外,增加种群数量(群体规模)可以提升搜索多样性,有时会改善收敛效果。
两者都是多峰基准函数,但Rastrigin的凹凸周期均匀,局部最优非常多;Ackley则中央有陡峭的谷,外围基本平坦。Ackley对遗传算法的挑战更大,更能评估算法的全局搜索能力。
需要在模拟开始前固定随机数种子(Random Seed)。使用相同的种子值,交叉和突变的随机性就完全一致,能重现完全相同的搜索路径。初始设置界面可以指定种子值。
可以的。默认定义域是[-5,5],但可以改为任意范围。不过范围越大,搜索空间越宽广,需要更多迭代才能收敛。同时要确保全局最优解在指定范围内。

现实应用

结构拓扑优化: 在给定体积约束下,决定材料应该放在哪里。SIMP法等梯度法的初始设计或离散设计变量(开孔/不开孔)的搜索中,遗传算法被广泛使用。应用于轻量化汽车零部件和航空机翼设计。

发动机燃烧优化: 燃烧室形状、喷油时机、气门时序等多个参数复杂地影响燃油效率和排气性能。将CAE仿真(CFD)和遗传算法结合,搜索全局最优参数组合。

天线和电磁器件设计: 对天线形状或滤波器结构参数化,使用遗传算法搜索满足所需频率特性。由于电磁仿真计算量大,高效搜索至关重要。

飞机机翼设计: 优化升力阻力比的机翼形状。同时满足多个设计条件(起降、巡航)的多目标优化中,遗传算法也被应用。

常见误区与注意事项

接触这个模拟器后,容易把遗传算法看成"万能优化工具",这需要纠正。首先,遗传算法不能保证找到"最优解"。它只是高概率找到"非常好的解"。在实务中计算代价往往巨大。比如用CAE仿真优化车体碰撞安全性时,一次解析需要数小时。若种群100、世代50,则需5000次仿真,实际上不可行。实践中,遗传算法主要用于粗略探索、为其他方法提供初始设计,或者在完全没有梯度信息的问题上做初步探索。

其次,不要迷信参数调优的"魔法公式"。"突变率0.01是黄金法则"之类的说法要摒弃。最优参数随问题而异差异很大。本工具的价值在于让你体验:将突变率调到极高(如0.5)时,种群会陷入随机游走无法收敛;调得太低(如0.001)时,初期多样性丧失,困在第一个局部最优。实际应用中的策略是:先用默认值运行,观察多样性衰减速度,如衰减过快就提高突变率,衰减太慢就加强选择压力

使用指南

  1. 设置种群数量(20~200个体)并选择Rastrigin或Ackley函数。这些都是多峰基准函数,有大量局部最优。
  2. 调整突变率(0.01~0.3)和交叉率(0.5~0.95),设置世代数(50~500代),点击运行按钮。
  3. 实时3D可视化展示搜索轨迹,最佳适应度收敛曲线和种群多样性(标准差)变化反映了GA的搜索特性。

具体计算示例

Rastrigin函数最小化(f(x,y) = 20 + x² + y² - 10(cos(2πx) + cos(2πy))):种群数200、交叉率0.8、突变率0.1、1000代运行。第1代最佳适应度45.2,第500代降至5.3,第1000代最终值2.1(接近理论最小值0)。多样性从第300代的0.8降至0.2,表现为早期收敛。

实务注意事项