python实现高效的遗传算法
假设你有一个变量x,通过某个函数可以求出对应的y,那么你通过预设的x可求出y_pred,y_pred差距与你需要的y当然越接近越好,这就需要引入适应度的概念。假设fitness = 1/,那么误差越小,适应度越大,即该个体越易于存活。n是二进制需要表示的最大,可以反解出二进制位数 。即code:将x1,x2...化为二进制,decode:在交叉变异后重新得到十进制数,用于计算fitness。交叉后变异函数编写都很简单,random一个point,指定两个x在point位置进行切片交换即是交叉。变异也是random一个point,让其值0变为1,1变为0。得到交叉变异后的个体,需要计算fitness进行种群淘汰,保留fitness最高的一部分种群。不说了,上代码:上面的计算适应度函数需要自己更具实际情况调整。
下载地址
用户评论