本关任务:使用 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