粒子群算法和遗传算法在阵列天线综合中的对比

简介

我前面的博客已经介绍了通过遗传算法综合阵列天线的方向图,这次通过粒子群算法综合阵列天线,并比较两种算法在综合阵列天线时的差异。粒子群算法是通过python的算法工具箱scikit-opt实现的,对算法进行了些修改,包括整数编码,每个变量进行单独的区间限制等。遗传算法同样是基于算法工具箱进行了修改。通过对不同种群大小和不同迭代次数的仿真,可以发现,粒子群算法的收敛速度远快于遗传算法,但是比较容易陷入局部收敛,遗传算法在多次迭代的平均效果是要由于粒子群算法的。

粒子群算法图示

粒子群算法和遗传算法在阵列天线综合中的对比_第1张图片

适应度曲线

粒子群算法和遗传算法在阵列天线综合中的对比_第2张图片

与遗传算法的对比

下图展示了不同种群大小和不同迭代次数下粒子群算法和遗传算法的综合效果
粒子群算法和遗传算法在阵列天线综合中的对比_第3张图片

粒子群算法和遗传算法适应度曲线的比较

下图左边时粒子群算法的适应度曲线,右边是遗传函数的适应度曲线
粒子群算法和遗传算法在阵列天线综合中的对比_第4张图片
粒子群算法和遗传算法在阵列天线综合中的对比_第5张图片
粒子群算法和遗传算法在阵列天线综合中的对比_第6张图片

综上

粒子群算法和遗传算法在消耗时间上是基本一致的,其中粒子群算法的收敛速度特别快,因为它的进化是有方向的,但是如果是比较复杂的问题,维数多,可能有周期性重复的极值时,粒子群算法容易陷入局部收敛,不容易获得良好的解。遗传算法收敛比较慢,因为交叉和变异因子的存在,相对与粒子群算法更容易跳出局部收敛,活得更好的解。

遗传算法图示

你可能感兴趣的:(天线,python,粒子群算法,阵列天线综合)