作业:分别用GA和PSO算法求解函数的最小值:遗传算法:编码:将x1,x2的作用域转化成16位的二进制串,x=0000000000000000代表-1,x=1111111111111111代表1。二进制码长度越长说明编码越精确,求得的结果精度高。初始种群的产生:选取种群个数为80,群众大小关系到计算结果的精度和最优解的收敛速度。初始种群用随机产生(0,1)数字的方法来确定二进制串,将x1和x2的二进制串串联起来表示一个染色体。一共产生80个染色体。取交叉概率为0.7,变异概率为0.1,交叉概率和变异概率对全局解的收敛性有很大影响。本题我开始忽略了变异概率的小概率事件,结果计算很容易陷入局部极值,无法正确求得全局的最优解。初始种群遗传算法操作流程:计算适配值变异交叉选择 结果:可以看出,随着遗传算法代数的增加,最大适配值跟平均适配值都增大,向着最优解的方向移动,直至大于55代后收敛找到最优解。本题函数最小值为1/f_avr≈0。讨论:在遗传算法中,交叉概率和变异概率的选择是获得全局最优解的关键,一般变异概率取较小,太小的变异概率可能难以找到全局最优解,容易陷入局部极值,而太大的变异概率虽然能增加样本的多样性,但可能引起不稳定。交叉概率一般较大,决定了交叉操作的频率,频率越高可以越快的收敛到最优解,但过高的频率也有可能导致过早的收敛到一个局部解。所以应该结果具体对象仔细分析。粒子群算法:粒子个数为80个,学习率alfa1=alfa2=2.1。学习率影响搜索的速度。选取惯性权重,为了在开始时获得较大的全局搜索能力,然后随着迭代的进行线性递减,以加强后期的局部搜索精度。惯性权重w初始为1.0.随着迭代次数递减,将其在第100步时减为0.5.本题采用星形结构,粒子群中的信息在全领域范围内共享。这种算法虽然初期收敛速度较慢,但是在优化的最后阶段能完成精细的搜索。为了保证迭代过程中,x1,x2的值在[-1,1]范围内,对每次的迭代结果进行[-1,1]的界限定,同样为了防止迭代过程中速度的快速增加,影响算法性能,对每次的迭代结果的速度进行[-1,1]的界限定。结果:本题搜索速度为[-1,1]之间,搜索速度较快,所以经过很短的时间就能得到最优解。
温馨提示
请用电脑打开本网页,即可以免费获取你想要的了。