基于遗传算法求函数最大值
先给出实例:设函数为:f(x)=cos(5x)-sin(3x)+10,取种群大小20,搜索精度0.0001,交叉概率0.6,变异概率0.1,遗传20代。下面根据这个例子来叙述如何通过遗传算法来计算最大值。
遗传算法的概念和相关知识可以去网上查看,这里主要介绍和程序相关的知识。遗传算法的流程图如下:
遗传算法流程图
种群的产生一般由随机数产生固定长度的01序列,可以理解成染色体,例如:1111010011100001011000,这表示一个单独个体的染色体,那么结合这个例子就是产生20个这样的染色体。
种群适应度估计,因为是求最大值,所以适应度可以通过求函数值来确定,函数值越大,越适合生存。
选择,这是一个自然选择的过程,这里用轮盘赌选择法,
轮盘赌选择法
交叉用单点交叉: