遗传算法是一种模拟自然选择和遗传机制的寻优程序。
一般的遗传算法由四个部分组成:
编码机制、控制参数、适应度函数、遗传算子。
编码机制:
GA的基础,GA不是对研究对象直接进行讨论,而是通过某种编码机制把对象统一赋于由特定符号(字母)按一定顺序拍成的串。
适应度函数:
优化问题中,适应度函数就是目标函数,引进适应度函数的目的在于可根据其适应度对个体进行评估比较,定出优劣程度,适应度函数的值域常取为[0,1]。
遗传算子:
最重要的算子有选择、交换、突变。
选择算子的作用在于根据个体的优劣程度决定它在下一代是被淘汰还是被复制。通过选择,将使适应度即优良的个体有较大的存在机会,而适应度小即优劣的个体继续存在的机会也较小。
交换算子,即从群体中随机取出两个字符串,设串长为
L
L
L,随机确定交叉点,它在1到
L
−
1
L-1
L−1间的正整数取值。然后,将两个串的右半段互换再重新连接得到两个新串。
进行交换后,可进行突变。突变算子是改变字符串的某个位置上的字符。
控制参数:
在GA的实际操作时,需要适当确定某些参数的值以提高优选的效果。这些参数是:
1)字符串所含字符的个数,即串长。在SGA,在一长度为常数,即为定长,即为
L
L
L
2)每一代群体的大小,即所包含字符串的个数,也称群体的容量,记为
n
n
n
3)交换律,即施行交换算子的概率,记为
P
c
P_c
Pc
4)突变率,即施行突变算子的概率,记为
P
m
P_m
Pm,在SGA,若群体容量较大,如
n
=
100
n=100
n=100,通常取
P
c
=
0.6
,
P
m
=
0.001
P_c=0.6,P_m=0.001
Pc=0.6,Pm=0.001;若群体容量较小,如
n
=
30
n=30
n=30,通过取
P
c
=
0.9
,
P
m
=
0.01
P_c=0.9,P_m=0.01
Pc=0.9,Pm=0.01。
遗传算法流程图:
主要流程如下:
1)生成初始种群,设置遗传算法的参数
2)通过设置的种群适应度函数进行评估,评估当前种群中各个体对环境的适应值。
3)通过选择、交叉与变异等操作不断产生新个体
4)判断个体的适应值是否满足当前结束条件,如果满足结束条件则结束进化过程,输出当前的个体,如果未满足结束条件则返回步骤2),直到满足结束条件为止。
GA与传统的优化技术比较,GA的特点在于:
1)GA的工作对象不是决策变量本身,而是将有关变量进行编码所得的码,即位串;
2)传统的寻优技术都是从一个初始点出发,再逐步迭代以求最优解,GA是从点的一个群体出发经过代代相传求得满意解
3)GA只充分利用适应度函数(目标函数)的信息而完全不依靠其它补充知识
4)GA的操作规则是概率性的而非确定性的。
GA较为适合于维数很高、总体很大、环境复杂、问题结构不十分清楚的场合。
参考文献:
[1]谢文庆. 基于遗传算法的深度学习优化方法研究[D]. 黑龙江大学.
[2]任平. 遗传算法(综述)[J]. 工程数学学报, 1999, 16(1):8.