遗传算法(genetic algorithm)模型
遗传算法需要通过编码实现对个体的表示,并利用适应度函数对个体优劣进行评价,通过选择、交叉和变异等进化操作实现优化搜索。
编码方法
遗传算法的编码方式有:二进制编码、自然数编码、实数编码和树形编码等。其中最常见的就是二进制编码。例如:一个长度为5的二进制串10100就可以表示为一个个体;三个二进制串010、110、111就可以表示为规模为3的群体。
解码 :将二进制串10100表示成问题的解为20,就是解码。(解码的原因:对个体的评价需要在问题的解空间中进行)
实际上交替进行编码和解码时遗传算法的必备组成部分,实现了问题的解空间对算法搜索空间的相互转换。
适应度函数
每一个个体都有一个适应度函数相对应。其优劣需要通过适应度函数值大小进行定量评价。个体越优越,其适应度函数值越大。适应度函数直接决定搜索群体的进化行为。
适应度函数标定
令F和H分别表示变换前和变换后的适应度函数,以下给出对适应度值进行尺度变换的常用方法:
1)线性尺度变换法
H=aF+b
其中,参数a和b要根据具体问题设置
2)σ截断法
H=F+( ̅F -cσ)
其中 ̅F表示变换前的适应度函数值的平均值,参数c需要根据具体问题设置
3)幂律尺度变换
H=Fα(α在右上角)
当参数α>1时,选择压力增加;当参数α<1时,选择压力减小
选择策略
在遗传算法中,一方面要保持搜索群体的多样性,设置低选择压力可选择多种类型的个体,加强对未知解区域的搜索,避免算法陷入局部极值,但算法优化速度会变得缓慢;另一方面要设置高选择压力可选择优良个体,实现优胜劣汰,可以加快优化速度但群体多样性会下降,会减小搜索到全局最优值概率。目前,可以通过选择策略调节选择压力和群体多样性之间的矛盾。
1)轮盘赌算法
实现选择操作的方法有很多,最基本的是霍兰德推荐的轮盘赌算法。计算每个个体被选择进入到下一代群体的概率,即
其中,P;表示第i个个体被选择的概率;F;表示第i个个体的适应度函数值;N表示群体规模。
2)分级选择法
3)锦标赛选择法
这种选择策略与基于排名的思想,但不显示排名,在当前群体中,每次随机选择K个个体,然后从这k个个体中选出适应度值最大的个体到下一代群体中。被选择的个体仍然返回到当前群体中,参加下一次k个个体的随机选择。重复上述过程N次,就可以产生N个个体,达到群体规模的要求。
4)Boltzmann选择法