Elaine_yzz 发表于 2006-7-25 17:05

[求助]遗传算法迭代终止问题

书上说的迭代终止方法是最大适应度不再增加,或增加幅度很小时迭代终止。不然就到自己限定的迭代次数时终止。

但是我发现我自己写的一个最基本的遗传算法,并不是每一次迭代最大适应度都会增加,尤其是到了迭代到后来(我设置的最大迭代次数为1000),一般都是好几步,甚至是十好几步增加一次。一般能达到的最终最大适应度是280,最开始每一步增幅能有十多,到后来就成个位数增长。快到一千时也还在很慢的增长,可能二十多次适应度增加一次吧。

我想请问一下,出现这样的情况,是我写的代码有问题,还是迭代次数本身就该是多于一千,还是我应该控制在最大适应度多少步以内没有增长,就停止迭代呢??

请各位高手帮帮忙,感恩不尽!

luckyfox 发表于 2006-7-30 12:19

和你的优化问题有关系,也和你选择的遗传操作方式有关系,根据你目前的描述应该不好说吧?你自己可以再好好分析一下。

woshishui 发表于 2006-8-1 09:36

我所知道的遗传算法只能找到更优解,而不是全局最优解,也就是说你的解的精度满足要求就可以了,我看有的文献是30步左右没增长的话我们就认为它已经收敛了,你可以参考参考,遗传算法我个人理解它就是一个不断向更优解进化的过程,在找全局最优解的时候它的收敛性和你的初始种群大小等的定义有关,对于组合优化问题有时候很难找到最优解。
页: [1]
查看完整版本: [求助]遗传算法迭代终止问题