一.遗传算法(GA)
1.1 原理
遗传算法(Genetic Algorithms,GA)是一种基于自然选择和基因遗传学原理,借鉴了生物进化优胜劣汰的自然选择机理和生物界繁衍进化的基因重组,突变的遗传机制的全局自适应概率搜索算法。
1.2 步骤
-
初始参数
种群规模n
交叉概率p_c
变异概率p_m
进化代数t -
染色体编码
利用遗传算法求解问题时,必须在目标问题实际表示与染色体位串结构之间建立一个联系。
常用的编码方式有两种:二进制编码和浮点数(实数)编码(具体在此不再介绍) -
适应度函数
适应度函数是用来衡量个体优劣,度量个体适应度的函数。适应度函数值越大的个体越好。一般而言,适应度函数是由目标函数变换而成的。由于在遗传算法中根据适应度排序的情况来计算选择概率,故适应度函数计算出的函数值(适应度)不能小于零。因此,将目标函数转换成最大化问题形式而且函数值非负的适应度函数是必要的,并且在任何情况下总是希望越大越好。所以,经常用到从目标函数到适应度函数的变换。
000
考虑如下规划问题:
minf(x) s.t. g(x) = 0 and h_min <= h(x) <= h_max
000
变换方法一
(1)对于最小化问题,建立适应度函数F(x)和目标函数f(x)的映射关系:
F(x) = C_max - f(x), f(x)<C_max
0 , f(x)>C_max
式中,C_max既可以是特定的输入值,也可以选取到目前为止所得到的f(x)的最大值。
其余见书即可 -
约束条件的处理
根据具体问题,可选择三种方法:罚函数法,搜索空间限定法和可行解变换法
(1)罚函数法
1
(2)搜索空间限定法
1
(3)可行解变换
1 -
遗传算子
(1)选择操作