我的遗传算法程序在一定的适应度范围内不会收敛



我正试图为古应力反演编写一个遗传算法程序,即从给定的一组数据中我想计算应力张量。(最小化问题)

我已经生成了一个用于测试的合成数据集,但它没有给我想要的结果。

我的适应度值在最初的几次迭代中收敛得非常快,但在一段时间后趋于平缓,并且适应度值不会低于该值。

期望适应度~ 10^(-6)适应度是0.015

我还注意到,我正在使用的数据的人口(人口大小= 20),他们中的大多数在几百次迭代后采取相同的值,即20个值中约有15个是相同的,所以我猜交叉将停止产生新的后代。

GA的物流是-人口规模迭代次数1000单点交叉锦标赛选择突变概率= 1/no。位

我已经在matlab上执行了编程

这就是GAs。这叫做过早收敛

在你的情况下,我要做的第一件事就是大幅增加种群规模,例如500个个体。如此少的人口很可能变得同质化。然后我会调整参数(交叉和变异的问题)。如果这些方法不起作用,你可以尝试其他方法,如健身共享和拥挤。

相关内容

最新更新