遗传算法在全局寻优过程中具有独特的优势而受到各领域研究者的广泛关注。遗传算法受达尔文生物进化论启发而产生,其过程主要包括:选择、交叉、变异、重组四个过程。整个遗传算法思想简单,但是在实际应用中需要注意以下几个方面:
1、适应度函数的设计。由于选择过程中一般都是以各染色体的适应度在整个种群中的比例来进行选择,适应度越高表示越能适应环境、其被选择繁殖到下一代的概率就越大。因此,适应度函数设计的好坏直接影响遗传算法的性能。
2、种群规模的设计。种群规模表示是初始解集的大小,太少容易丢失种群多样性,导致无法寻找到最优解;太多则会增加计算量,因此,需要对二者进行一个平衡。
3、染色体长度设置。在遗传算法中,一般将变量编译成0、1二进制的染色体。
本文以http://blog.csdn.net/b2b160/article/details/4680853/ 这篇博文的例子来加深对遗传算法的理解。根据其例子编写对应的MATLAB代码,其描述如下:
例子:
求下述函数最大值
第一步、个体编码
由于x1,x2都属于[1,7],因此可以分别采用3个无符号的二进制来表示,将它们连接在一起形成6位二进制数,如001100。
第二步、初始化种群
根据个体编码规则和种群大小,利用谢菲尔德大学的遗传算法工具箱 gatbx来初始化种群,其MATLAB代码如下: