本关任务:使用 python 实现遗传算法,并求目标函数最优解。
为了完成本关任务,你需要掌握:1.遗传算法,2.使用 python 实现遗传算法。
初始化种群
计算适应度
选择适应度高的个体
通过交叉变异选择新的染色体
终止进化
本关任务是使用遗传算法求解目标函数最大值,首先需要随机产生很多个解,即初始化种群,代码如下:
#初始化种群
pop = np.random.randint(2, size=(POP_SIZE, DNA_SIZE)) # Size函数需要传入两个参数 POP_SIZE为解的个数,即染色体个数。DNA_SIZE为染色体长度
其中POP_SIZE
为解的个数,即染色体个数。DNA_SIZE
为染色体长度。
由于染色体为二进制编码,所以还需要将二进制转换为浮点数的解码方法:
#解码
def translateDNA(pop):
return pop.dot(2 ** np.arange(DNA_SIZE)[::-1]) / float(2**DNA_SIZE-1) * X_BOUND[1]
上述代码中: pop