混合粒子群算法是指借鉴其它一些智能优化算法的思想而形成的粒子群算法。除了粒子群算法外,还有遗传算法、模拟退火算法以及神经网络等智能算法,这些算法是目前应用比较广泛的智能算法,每种智能算法都有其特点,因此自然而然就有了结合各种智能算法的优点而形成的混合智能算法。下面介绍基于模拟退火算法的粒子群优化算法。
模拟退火算法在搜索过程中具有概率突跳的能力,能够有效避免搜索过程陷入局部极小解。模拟退火算法在退火过程中不但接受好的解,而且还以一定的概率接受差的解,同时这种概率受到温度参数的控制,其大小随着温度的下降而减小。
基于模拟退火的粒子群算法的步骤如下
T F ( p i ) = e − [ f ( p i ) − f ( p g ) ] / t ∑ i = 1 N e − [ f ( p i ) − f ( p g ) ] / t TF(p_{i})=\frac{e^{-[f(p_{i})-f(p_{g})]/t}}{\sum_{i=1}^{N}e^{-[f(p_{i})-f(p_{g})]/t}} TF(pi)=∑i=1Ne−[f(pi)−f(pg)]/te−[f(pi)−f(pg)]/t
v i , j ( t + 1 ) = φ { v i , j ( t ) + c 1 r 1 [ p i , j − x i , j ( t ) ] + c 2 r 2 [ p g , j ′ − x i , j ( t ) ] } x i , j ( t + 1 ) = x i , j ( t ) + v i , j ( t + 1 ) v_{i,j}(t+1)=\varphi{\{v_{i,j}(t)+c_{1}r_{1}[p_{i,j}-x_{i,j}(t)]+c_{2}r_{2}[p_{g,j}^{'}-x_{i,j}(t)]\}} \\ x_{i,j}(t+1)=x_{i,j}(t)+v_{i,j}(t+1)\\ vi,j(t+1)=φ{vi,j(t)+c1r1[pi,j−xi,j(t)]+c2r2[pg,j′−xi,j(t)]}xi,j(t+1)=xi,j(t)+vi,j(t+1)
其中 φ = 2 ∣ 2 − C − C 2 − 4 C ∣ , C = c 1 + c 2 ; \varphi=\frac{2}{\vert 2-C-\sqrt{C^2-4C} \vert},C=c_1+c_2; φ=∣2−C−C2−4C∣2,C=c1+c2;
function [xm,fv]=SimuAPSO(fitness,N,c1,c2,lamda,M,D)
% 功能:用基于模拟退火的粒子群优化算法求解无约束优化问题
% 待优化的目标函数:fitness
% 粒子数目:N
% 学习因子1:c1
% 学习因子2:c2
% 退火常数:lamda
% 最大迭代次数:M
% 自变量的个数:D
% 目标函数取最小值时的自变量值:xm
% 目标函数的最小值:fv
format long;
for i=1:N
for j=1:D
x(i,j)=randn; %随机初始化位置
v(i,j)=randn; %随机初始化速度
end
end
for i=1:N
p(i)=fitness(x(i,:));
y(i,:)=x(i,:);
end
pg=x(N,:); %pg为全局最优
for i=1:(N-1)
if fitness(x(i,:))
求解如下最优化问题:
f ( x ) = [ 0.01 + ∑ i = 1 5 1 i + ( x i − 1 ) 2 ] − 1 , − 10 ≤ x i ≤ 10 , i = 1 , 2 , ⋅ ⋅ ⋅ , 5 f(x)=[0.01+\sum_{i=1}^{5} \frac{1}{i+(x_i-1)^2}]^{-1},-10 \leq x_i \leq 10,i=1,2,\sdot \sdot\sdot,5 f(x)=[0.01+i=1∑5i+(xi−1)21]−1,−10≤xi≤10,i=1,2,⋅⋅⋅,5
建立目标函数文件fitness.m
function F=fitness(x)
F=0;
for i=1:5
F=F+1/(i+(x(i)-1)^2);
end
F=1/(0.01+F);
%以下是添加罚函数,将约束优化转变为无约束优化。
for i=1:5
if x(i)>10||x(i)<-10
F=inf;
end
end
在Matlab命令行窗口输入:
[xm,fv]=SimuAPSO(@fitness,40,2.05,2.05,0.5,10000,5)
所得结果为:
xm =
1.055591945162607
0.963930004971746
0.642244374435185
0.399445483282264
0.270228145056420
fv =
0.447155413432555
《精通MATLAB最优化计算》(第四版) 龚纯、王正林,电子工业出版社