1.2 国内外研究现状
1.3 水平和发展趋势
第二章 基于自然选择的算法
2.1 算法原理
科学家将基本粒子群算法和遗传算法中的自然选择原理结合起来,并且引入了学习因子,通过异步变化提高算法精确度以及收敛性的粒子群优化理论。基于自然选择的粒子群算法基本思想是在每次迭代中,粒子群中的每个粒子的适应值排序,取而代之的是更好的速度和位置的粒子的位置和速度的一半,并在原始的记录上记录下每个粒子的最佳值。
2.2 算法步骤源[自-751^`论/文'网·www.751com.cn
基于自然选择的算法的步骤:
①初始化粒子群中各个微粒的位置和速度;
②评价出各个微粒的适应度,将当前各个微粒的位置和适应值储存在各个微粒的pbest中,将所有pbest中适应值最优的个体的位置和适应值储存于gbest中;
③不断更新每个粒子的位置和速度;
④对各个微粒将其适应值和其经历过的最佳位置比较,最优值替换较差值;
⑤比较所有当前pbest与gbest的值,并且更新gbest;
⑥粒子群中的每个粒子的适应值排序,取而代之的是更好的速度和位置的粒子的位置和速度的一半,并在原始的记录上记录下每个粒子的最佳值;
⑦若满足停止条件(通常到达预设的计算精度或者是迭代次数),停止搜索,输出其结果,否则继续③搜索。
2.3 算法的MATLAB实现
在MATLAB中编写程序实现基于自然选择的算法的粒子群优化函数为:SelPSO。
功能:通过基于自然选择的粒子群优化算法求解无约束化问题。
调用格式:[xm,fv]=SelPSO(@fitness,N,c1,c2,w,M,D)
其中,fitness为待优化函数;
N:粒子数目;
c1:学习因子1;
c2:学习因子2;
w:惯性权重;
M:最大迭代次数;
D:自变量的个数;
xm:目标函数取最小值时的自变量值;
fv:目标函数的最小值;
基于自然选择粒子群优化算法的MATLAB代码见[附录1]。