最近很忙,但开始想记录一些东西了。。。
1 概念
所谓遗传算法就是根据达尔文“物竞天择,适者生存”的自然选择原则改进而来的。引入了选择、交叉和变异,这与人类的进化类似。也正由此,我们也可以考虑到遗传算法的优缺点。
遗传算法适合用于全局搜索,但却很容易陷入局部解。但是相对来说,在大量反复的实验中,遗传算法的效果还是很有优势的。
2 选择
实现遗传算法时,进行的第一个操作就是选择,一般来说,选择操作是从上一代中的最优解中选择父代和母代。这其中一般采用的办法是轮盘赌法。
所谓轮盘赌法,就是一个概率选择。每次挑选一个进行概率累积,多次累计后,若该个体大于随机概率时,便入选。可想而知,如果个体的适应度值本来就大,就很容易被选入,但也不妨有些不好的个体也可以入选,这样一来,就为整体提供了基因库,没准会得到意想不到的好处。
3 交叉
交叉操作是获得个体最直接简便的办法。父本和母本以一定的概率和交叉位置进行后代生成,择优获取。但楼主记得曾经看过的一篇论文,对生成的个体再次进行挑选,以牺牲时间为代价,获得了比其他算法更好的结果。
4 变异
变异操作是对原有基因的跳脱。像人类一样,有的是猩猩,有的是猴,总有意外发生。有的论文为了满足后期的操作,还引进了自适应的交叉率和变异率。所谓自适应,一般都与迭代次数相关,根据迭代次数构造迭代公式。
5 局部搜索
局部搜索也是为了提高遗传算法的局部搜索能力引入的。究其原因还是目前相关方面的论