首页 > 技术知识 > 正文

  编写完基本的代码流程后,本节我们进行代码的调试,并分析在不同参数下的结果分析比对。

五、解决过程 5.1 main function:

遗传算法(三):算法的调试 遗传算法(三):算法的调试1 遗传算法(三):算法的调试2

5.2算法复杂度分析:

  以lastmax(N = 1000; N_chrom = 2;iter = 2000;mut = 0.05; acr = 0.8; best = 1;)为例,采用代码运行时间和函数调用次数模糊反应算法复杂度:

遗传算法(三):算法的调试3

六、实验结果 6.1实际函数

F使用matlab直接求区间最值得到:

遗传算法(三):算法的调试4 遗传算法(三):算法的调试5

6.2通过meshgrid绘图得到函数最值:

遗传算法(三):算法的调试6

实际函数图像(蓝色高亮显示为最大值) 遗传算法(三):算法的调试7

6.3 改变参数对比实验结果

参数:

N(种群个体数目); N chrom(染色体节点数); iter(迭代次数); mut(变异概率); acr(交叉概率) (1)N = 100; N_chrom = 2;iter = 2000;mut = 0.05; acr = 0.8; best = 1; 遗传算法(三):算法的调试8 遗传算法(三):算法的调试9 (2)N = 1000; N_chrom = 2;iter = 2000;mut = 0.05; acr = 0.8; best = 1;   初始种群个数至1000反倒收敛速度减慢,通过实验对比初始种群数量为15左右时候收敛速度最快。 遗传算法(三):算法的调试10 遗传算法(三):算法的调试11 (3)N = 100; N_chrom = 2;iter = 200;mut = 0.05; acr = 0.8; best = 1;   缩减迭代次数至200,仍然可以收敛到期望的最值。通过实验发现大约迭代次数少于50次时,开始有一定概率无法收敛到期望的最值。 遗传算法(三):算法的调试12 遗传算法(三):算法的调试13 (4)N = 100; N_chrom = 2;iter = 2000;mut = 0.5; acr = 0.8; best = 1;   增大变异概率,可通过图像看出迭代运算时,平均适应度抖动很厉害, 说明变异概率对算法稳定度的影响,即变异概率越大,适应度毛刺越多。收敛过程越不线性。 遗传算法(三):算法的调试14 遗传算法(三):算法的调试15 (5)N = 100; N_chrom = 2;iter = 2000;mut = 0.05; acr = 0.2; best = 1;   缩小交叉概率可以通过图像发发现,与变异概率0.8并没有很大区别。 遗传算法(三):算法的调试16 遗传算法(三):算法的调试17   到这里使用遗传算法来解决实际函数优化问题就全部讲解结束了。如果有什么问题欢迎在评论区提问交流。

猜你喜欢