1

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

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

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

期望的健身 ~ 10^(-6) 我得到的健身 ~ 0.015

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

遗传算法的逻辑是 - 种群大小 20 迭代次数 1000 单点交叉锦标赛 选择变异概率 = 1/no。位数

我在matlab上进行过编程

4

1 回答 1

2

好吧,这只是发生在 GA 上。这称为早熟收敛

在您的情况下,我会尝试的第一件事是大幅增加人口规模,例如 500 个人。这么小的人口很可能会变得同质化。然后我会调整参数(交叉和突变的概率)。如果这些事情效果不佳,您可以尝试其他技术,例如健身分享和拥挤。

于 2015-05-18T21:30:29.273 回答