遗传算法学习笔录
本文为遗传算法个人学习记录,也是为了后面可以温习,内容比较简单,对于刚接触遗传算法的会很容易理解
遗传算法
遗传算法是基于达尔文的进化论,模拟了自然选择,物竞天择、适者生存,通过N代的遗传、变异、交叉、复制,进化出问题的最优解。下面就对各个环节进行一一叙述。
概念一、基因和染色体
遗传算法的运用,需要利用数学建模方法进行转化,比如满足问题一系列可行解便是染色体,而可行解中的元素便称为基因。比如说,对于如下函数而言,[1,2,3]、[1,3,2]、[3,2,1]均是这个函数的可行解(代进去成立即为可行解),那么这些可行解在遗传算法中均被称为染色体。
3x+4y+5z<100
概念二、适应度函数
适应度函数的作用,你可以将其理解为是针对众多染色体进行一个优劣判断,保留每一代优良的个体,淘汰一些环境适应度较差的个体(染色体)。对个体的好坏需要一个评判方式,在遗传算法中,这个评判方式就是适应度函数。
遗传算法在运行的过程中会进行N次迭代,每一次迭代都会生成若干个染色体。适应度函数会给本次迭代中生成的所有染色体打个分。来评判这些染色体的适应度,然后将适应度较低的染色体淘汰,保留适应度较高的染色体,从而经过若干次迭代,染色体的质量将越来越好。
概念三、交叉
对于每一次迭代生成的染色体,在