我的遗传算法程序没有超出一定的适应度

时间:2015-05-18 05:57:08

标签: matlab genetic-algorithm inversion

我正在尝试编写古应力反演的遗传算法程序,即从我想要计算应力张量的给定数据集中得到。(最小化问题)

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

我的适应值在少数初始迭代中很快收敛,但在一段时间后变平,并且不能给出低于该值的适应度。

理想的健身~10 ^( - 6) 我得到的健身~0.015

此外,我注意到我使用的数据总体(人口规模= 20),其中大多数在几百次迭代后采用相同的值,即20个中的大约15个值是相同的,所以我猜交叉会停止产生新的后代。

GA的物流是 - 人口规模20 迭代次数1000 单点交叉 比赛选择 突变概率= 1 /否。比特

我在matlab上进行了编程

1 个答案:

答案 0 :(得分:1)

嗯,这恰好与GAs有关。它被称为premature convergence

我要在你的情况下尝试的第一件事就是大幅增加人口规模,例如: 500个人。这么小的人口很可能变得同质化。然后我会调整参数(交叉和变异的probs)。如果这些东西不能很好地运作,你可以尝试其他技术,如健身共享和拥挤。