我正在处理一个优化问题,并使用GA算法(在MATLAB中,ga函数中)。
正如你所知道的,MATLAB用两条曲线绘制GA结果,一条表示最佳值,另一条表示平均值,当这两条曲线互相接触时,均值算法已经收敛。
基于我的原因,这两条曲线不能以两条平行线的形式继续下去,直到最大代数结束,最后是一次过早的收敛,是什么原因造成的呢?
我用其他参数值进行了测试,但结果是相同的。在预处理方面,我使用了缺失值、归一化、平滑和测试数据集属于UCI.
GA参数:
MutationFcn : @mutationadaptfeasible: 0.03
CrossoverFcn : @crossoverheuristic : 1.2
maxGenerations : 200;
populationSize : 180;
Chromosome length: 33
Test Instances : 71
发布于 2019-11-24 16:18:54
正如你所知道的,MATLAB用两条曲线绘制GA结果,一条表示最佳值,另一条表示平均值,当这两条曲线互相接触时,均值算法已经收敛。
更准确地说,当这两条曲线相互接触时,这意味着人口中的所有个体表现完全相同,因为这是实现最佳和平均相等的唯一途径(通常情况下,这是因为所有个体都是相同的)。这种情况只能通过偶然和/或如果突变概率很小才能发生,因为一旦有一个有变异的个体,这个个体的表现就不太可能达到最好的水平。
对我来说,在像你这样的情节中,成功的收敛达到了60-70次迭代。残差是由于随机突变造成的。
https://datascience.stackexchange.com/questions/63684
复制