遗传算法在某一点健身停止增加

时间:2017-01-01 07:10:42

标签: algorithm genetic-algorithm fitness

我正在尝试实现一种遗传算法,它将通过定位,调整和着色1000个圆圈来重新创建给定的图像。然而,我发现当健身达到一定值(在我的情况下约为0.37)时,它会停止增加。换句话说,它只是收敛于价值。

我想不出改善这个的方法

enter image description here

一些细节

人口规模:50

突变率:0.025

每个孩子的基因是一个1000元素的数组,其元素类型为CircleData,其中包含一个圆的大小,颜色和位置

健身功能

我遍历目标图像上的每个像素和算法所使用的画布。对于每个像素,我将RGB值映射到3D空间中的点并计算两点之间的距离。然后将对每个像素求和该距离并进行归一化以得到[0,1]中的适应度值,其中1表示每个像素是相同的。最后,我将pow(fitness, 2)的值作为最终适应值。

选择

我根据他们的健康状况对孩子进行排序,然后将2/3降到最差。对于剩下的孩子,我使用Fitness Proportionate Selection来选择两个父母

交叉

我使用一点交叉和随机交叉点

更新

我怀疑问题是由local maximum引起的,仍在尝试修复...

关于GA的局部最大值的一些SO问题:

How to prevent genetic algorithm from converging on local minima?

How can I prevent my program from getting stuck at a local maximum (Feed forward artificial neural network and genetic algorithm)

Max Fitness stuck at local maxima in genetic algorithm implementation

0 个答案:

没有答案