想要快速的了解一个算法,最好的方式便是拿个例子手动进行实现算一遍。这里借鉴了网络上的一个例子,求解如下的一个函数:
f(x)=x∗sin(10∗π∗x)+2x∈[−1,2]
其函数图像为:
例子来源:
http://blog.csdn.net/emiyasstar__/article/details/6938608/
求解流程与概念
染色体(编码)
在遗传算法中,一个个体一般只包含一条染色体。染色体上包含这一组基因组。
- 基因 ( Gene ) :一个遗传因子。
- 染色体 ( Chromosome ) :一组的基因。
- 个体 ( individual ):单个生物。
- 群体:一群个体
在上述的例子中自变量只有x,所有只有一个gene,因此在本例子中:
一个个体=一条染色体=一个基因
将x表达为gene的过程,称之为编码,常见的编码格式有二进制编码和浮点编码。本文采用2进制编码:
- 设我们求解精度为 e=0.01