利用遗传算法求解函数优化问题
一、引言:
遗传算法是一种受生物进化启发的学习方法,它不再是从一般到特殊或从
简单到复杂地搜索假设,而是通过变异和重组当前已知的最好假设来生成后续
假设。遗传算法研究的问题是搜索候选假设空间并确定最佳假设,最佳假设被
定义为使适应度最优的假设。适应度是当前问题预先定义的数字度量。
遗传算法是一种大致基于模拟进化的学习方法,模拟生物繁殖的突变、交
换和达尔文的自然选择(在每一生态环境中适者生存)。它把问题可能的解编
码为一个向量,称为个体,向量的每一个元素称为基因,并利用目标函数(相
应于自然选择标准)对群体(个体的集合)中的每一个个体进行评价,根据评
价值(适应度)对个体进行选择、交换、变异等遗传操作,从而得到新的群体。
遗传算法采用亚符号表示方式。遗传算法中的假设常常被表示成二进制位串,
这便于用变异和交叉遗传算子来操作。
二、遗传算法流程:
(1)编码
遗传算法先将解空间的解数据表示成遗传空间的基因型串结构数据,其不同
的组合就构成了不同的点。
(2)生成初始种群
采用随机的方法产生若干个初始串结构数据,每个串结构数据代表一个个
体,全体初始串结构数据构成了初始种群。种群的大小一般为 20~100,这样
既可以提高遗传算法的稳定性,又能够保证种群的多样性,容易获得全局最优
解。
(3)适应度评估
对于不同的优化问题,采用不同的适应度函数来评价个体的优劣性。
(4)选择
按照适者生存的目的,从当前的种群中选择出适应度强的优良个体,使它
们有机会作为父代产生下一代,适应度强的个体被选择的概率大。
(5)交叉
交叉算子根据交叉率将种群中两个个体随机的交换某些基因,从而产生新
一代个体。新个体组合了父辈个体的特性。交叉率根据具体问题确定,一般取
0.25~0.75,这样既可以得到高适应度的结构,又可以保证搜索效率。
(6)变异
变异算子根据交叉率随机的在当前种群中选择一个个体,对其以一定的概率
随机的改变串结构数据中的某个串的数值,从而产生新一代个体。变异率不宜
取的过高,一般取 0.005~0.20。