一、求解目标
,范围是 [1, 2],函数的图像如下所示,目的是找到该函数在这个区间的最小值。
二、遗传算法(GA, Genetic Algorithm)
遗传算法的步骤就是首先对个体(染色体)进行二进制编码(十进制转二进制),设置成 0 1 编码的形式,目的是后续操作方便,然后随机产生初始的种群,设定好适应度的计算函数(也就是你要优化的函数)并计算每个个体适应度,然后采用轮盘赌算法(说的高大上,其实就是把适应度进行归一化当做选择的概率)进行选择操作,之后就随机设置个体两两配对就是交叉操作,再随机设置每一个对的交叉点位进行交叉操作,之后随机设置变异点位并按照概率将该点进行取反,也就是变异操作。就这样一直循环直至达到需要的精度或者设定的最大遗传代数。不说了,直接上代码,注释也很清楚,只是需要下载一个 gatbx 的依赖包。
具体下载和安装操作参见链接: