遗传算法是借鉴生物界自然选择和进化机制发展起来的高度并行、随机、自适应搜索算法,是一类以达尔文的自然进化论为基础的求解复杂全麓优纯问题的仿生型算法。由于算法健壮,特别适合于处理传统搜索算法解决不好的复杂的非线性问题。
基于遗传算法的数值优化方法是从随机生成的初始群体出发,采用优胜劣汰的选择策略选择优良个体作为父代,之后通过父代个体的复 制、杂交以及变异来繁衍进化其子代种群。其基本步骤包括编码、初始群体的生成、适应度评估和检测、选择、交叉操作和变异操作。
1、编码(coding)
编码的作用是将设计变量表示成遗传空间的基因型串结构数据。通常采用一定长度的二进制码代表设计变量的各种取值,例如x1: 0101。将各个变量的二进制码连成一串,得到一个二进制代码串(染色体,chromosome,或称个体),它代表一个设计方案。
例如:
二进制码所有可能的结构代表了整个设计空间。
2、产生初始群体(Population)
遗传算法是一种群体操作算法,必须为遗传操作准备一个由若干初始解组成的初始群体。通常采用随机方法来产生初始群体。群体规模越大,GA陷入局部最优解的危险性越小,但计算量会增加。群体规模太小,会使GA在搜索空间中分布范围有限,会引起未成熟收敛现象。
3、适应度函数的评估(Fitness)
遗传算法在进化搜索中基本上不用外部信息,仅用目标函数即适应度函数为依据。适应度函数评估是选择操作的依据。一般需将目标函数以一定的方式映射成适应度函数。
4、选择算子(Selection)
选择算子的目的是把优化的个体(或设计点)直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的,适应度越大的个体,被选中的概率越大,也就是说适应度越高的个体,有更多的机会繁殖后代,使其优良特性得以遗传和保留。
5、交叉操作(Crossover)
在自然界生物进化过程中起核心作用的是生物遗传基因的重组。遗传算法中起核心作用的遗传操作的交叉算子。所谓交叉是指把两个父代个体的部份结构加以替换重组而生成新的个体,通过交叉,遗传算法的搜索能力得以飞跃提高。
例如:
6、变异算子(mutation operator)
变异算子的目的是模拟生物在自然的遗传环境中由于各种偶然因素引起的基因突变。其方法是以一定的概率选取群体中若干个体,对已选取的每个个体,随机选取某一位,将该位的数码翻转。变异算子增加了群体基因材料的多样性,增加了自然选择的余地,有利的变异将由于选择操作的作用,得以遗传与保留,而有害的变异则将在逐代遗传中被淘汰。
7、进化(迭代)
通过用选择、交叉、变异得到的新一代群体代替其上一代群体,再进行评估、选择、交叉、变异。如此迭代下去,各代群体的优良基因成份逐渐积累,群体的平均适应度和最优个体适应度不断上升,直到迭代过程趋于收敛,适应度趋于稳定,不再上升时,就找到了所需的最优解。
未完待续。。。。。
------------------------------------------------------------------------
写在最后
欢迎大家留言评论,一起探讨技术。我们将更新一系列飞行器总体设计,螺旋桨设计,结构设计,气动仿真和整机气动数据库建立,无人机电机设计内容,敬请关注我们的公 众号。