关键词:
1 引言
粒子群算法(Partical Swarm Optimization -PSO)是1995年由Eberhart博士和kennedy 博士共同提出的一种优化算法[1] [2]。它属于群智能算法的一种,和遗传算法相似,它也是从随机解出发,通过迭代寻找最优解,通过适应度来评价解的品质。但是粒子群算法比遗传算法规则更为简单,它没有遗传算法的“交叉”和“变异”操作,它通过追随当前搜索到的最优值来寻找全局最优。这种算法以其实现容易、精度高等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性[3]。
在标准PSO算法中由于粒子的移动没有选择性,即使粒子的下一个位置的评价函数值很差,粒子依然用这个位置代替当前位置,这就使粒子容易跳出最优解附近的某一邻域,在一定程度上使PSO方法在局部搜索能力上表现较差。因此将粒子群算法与模拟退火算法相结合,利用退火算法在一定概率控制下暂时接受一些劣质解的特性,改善了标准PSO算法的局部寻优能力,并给出了仿真实例,结果证明所提算法具有更好的优化效果。
2 标准粒子群算法
PSO算法通过个体间的协作与竞争,实现复杂空间中最优解的搜索。PSO先生成初始种群,即在可行解空间中随机初始化一群粒子,每个粒子都为优化问题的一个解,并由目标函数为之确定一个适应值(Fitness Value)。每个粒子将在解空间中运动,并由一个速度决定其方向和距离。通常粒子将追随当前的最优粒子而动,并经逐代搜索,最后得到最优解。
3 模拟退火算法与粒子群算法的结合
针对上述情况,我们在PSO中引入了模拟退火思想,利用退火算法在一定概率控制下暂时接受一些劣质解的特性改进标准PSO。仿真结果表明,基于模拟退火的粒子群算法能够得到更好的优化效果。
通过对改进后的算法的研究,发现在粒子运动过程中,当粒子下一代位置比当前位置好时,粒子移动到下一代位置;反之,若下一代位置比当前位置差,则粒子并不直接移动到下一代位置,而是以某一概率进行移动,且通过温度 来控制这一概率。这样粒子不会盲目的直接扑向下一代位置,而是以某种概率“试探”后再行动。因此,当温度下降的足够慢时,粒子不会轻易的跳出有“希望”的搜索区域,从而增强了粒子的局部搜索能力。
4 部分代码
function [xm,fv] = SAPSO(fitness,N,c1,c2,wmax,wmin,M,D)
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,:))<fitness(pg)
pg=x(i,:);
end
end
%------进入主要循环------------
for t=1:M
for j=1:N
fv(j) = fitness(x(j,:));
end
fvag = sum(fv)/N;
fmin = min(fv);
for i=1:N
if fv(i) <= fvag
w = wmin + (fv(i)-fmin)*(wmax-wmin)/(fvag-fmin);
else
w = wmax;
end
v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));
x(i,:)=x(i,:)+v(i,:);
if fitness(x(i,:))<p(i)
p(i)=fitness(x(i,:));
y(i,:)=x(i,:);
end
if p(i)<fitness(pg)
pg=y(i,:);
end
end
end
xm = pg';
fv = fitness(pg);
5 结论
改进的PSO算法通过与模拟退火算法的结合,能够有效地调节全局搜索与局部搜索能力,不容易陷入局部最优,能得到更好的优化效果。粒子群算法与各种优化算法的结合近年来发展很快,但其数学基础比较薄弱,缺乏深刻且具有普遍意义的理论分析,这也是今后需要研究的一个重要方向[9]。
参考文献及代码私信博主
[1] Kennedy J, Eberhart R C. Particle swarm optimization [A]. Proceedings of IEEE International Conference on Neural Networks [C]. Piscataway, NJ: IEEE Press, 1995.1942-1948.
[2] Eberhart R C, Kennedy J. A new optimizer using particle swarm theory [A]. Proceeding of the sixth International symposium on micromachine and human science[C]. Piscataway: IEEE Service Center, 1995. 39-43.
[3] 刘康,余玲.一种仿生优化算法-微粒群算法[J].四川轻化工学院学报, 2003, (3): 9-11.
[4] Eberhart R C, Simpson P K, Dobbins R W. Computational Intelligence PC Tools [M]. Boston, MA: Academic Press Professional, 1996.
[5] Shi Y, Eberhart R C. A modified particle swarm optimizer [A]. Proceedings of the IEEE Congress on Evolutionary Computation [C]. Piscataway, NJ: IEEE Press, 1998.303-308.
[6] Shi Y, Eberhart R C. Empirical study of particle swarm optimization [A]. Proceedings of the IEEE Congress on
图像分割基于matlab粒子群算法优化模拟退火算法图像分割含matlab源码2020期
一、粒子群算法优化模拟退火算法图像分割简介(具体理论见参考文献)1基于模拟退火思想的粒子群算法1.1基本PSO算法首先,粒子群算法是由Eberhan博士和Kennedy博士最先提出的全局优化进化算法。该算法源于对鸟群捕食行... 查看详情
图像分割基于matlab粒子群算法优化模拟退火算法图像分割含matlab源码2020期
一、粒子群算法优化模拟退火算法图像分割简介(具体理论见参考文献)1基于模拟退火思想的粒子群算法1.1基本PSO算法首先,粒子群算法是由Eberhan博士和Kennedy博士最先提出的全局优化进化算法。该算法源于对鸟群捕食行为的灵... 查看详情
电力负荷预测基于matlab模拟退火算法结合狮群算法优化elman神经网络电力负荷预测含matlab源码1454期
...出:Kirkpatrick于1983年第一次使用模拟退火算法求解组合最优化问题[1]。模拟退火算法是一种基于MonteCarlo迭代求解策略的随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。其目的在于... 查看详情
优化求解基于matlab遗传算法结合粒子群算法求解单目标优化问题含matlab源码1659期(代码片段)
一、GA-PSO混合优化算法的基本思想对于遗传算法来讲,传统的遗传算法中变异算子是对群体中的部分个体实施随机变异,与历史状态和当前状态无关。而粒子群算法中粒子则能保持历史状态和当前状态。遗传算法的进化初期,变异有... 查看详情
优化求解基于matlab模拟退火算法求解函数极值问题含matlab源码1203期
...出:Kirkpatrick于1983年第一次使用模拟退火算法求解组合最优化问题[1]。模拟退火算法是一种基于MonteCarlo迭代求解策略的随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。其目的在于... 查看详情
优化覆盖基于matlab粒子群算法优化无人机编队布局求解车载网络通信覆盖优化问题含matlab源码2021期(代码片段)
...点最优或者满意的飞行航迹,其本质是一个多约束的目标优化问题。航迹规划算法是航迹规划的核心。国内外相继开展了相关研究,提出了许多航迹规划算法,如模拟退火算法、人工势场法、遗传算法、蚁群算法等。但由于无人机面... 查看详情
优化算法基于matlab量子粒子群算法求解单目标优化问题含matlab源码2203期
...代码方式获取代码方式1:完整代码已上传我的资源:【优化算法】基于matlab量子粒子群算法求解单目标优化问题【含Matlab源码2203期】点击上面蓝色字体,直接付费下载,即可。获取代码方式2:付费专栏优化求解(Matlab)备注:... 查看详情
优化算法天牛须搜索优化粒子群算法含matlab源码1256期
...AS),也叫甲壳虫须搜索,是2017年提出的一种高效的智能优化算法。类似于遗传算法、粒子群算法、模拟退火等智能优化算法,天牛须搜索不需要知道函数的具体形式,不要虚梯度信息,就可以实现高效寻优。相比于粒子群算法... 查看详情
路径优化基于人工蜂群(abc)算法和粒子群优化算法的组合求解路径优化问题(matlab代码实现)
...录1概述2基本人工蜂群算法3粒子群优化算法4运行结果 5参考文献 6 Matlab代码实现1概述旅行商问题是一个典型的NP-Hard问题.由于经典算法在解决较大规模的组合... 查看详情
优化求解基于matlabgui模拟退火算法求解全局最大值最小值问题含matlab源码1242期
...出:Kirkpatrick于1983年第一次使用模拟退火算法求解组合最优化问题[1]。模拟退火算法是一种基于MonteCarlo迭代求解策略的随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。其目的在于... 查看详情
三维装箱基于matlab粒子群算法求解三维装箱优化问题含matlab源码950期
一、简介1粒子群算法的概念粒子群优化算法(PSO:Particleswarmoptimization)是一种进化计算技术(evolutionarycomputation)。源于对鸟群捕食的行为研究。粒子群优化算法的基本思想:是通过群体中个体之间的协作和信息共享来寻找最优解... 查看详情
优化覆盖基于matlab粒子群算法求解传感器覆盖优化问题含matlab源码1493期(代码片段)
一、粒子群算法简介1粒子群算法的概念粒子群优化算法(PSO:Particleswarmoptimization)是一种进化计算技术(evolutionarycomputation)。源于对鸟群捕食的行为研究。粒子群优化算法的基本思想:是通过群体中个体之间的协... 查看详情
优化求解基于matlab蚁群算法求解函数极值问题含matlab源码1201期
...进而提出了群智能算法。其中,模拟蚁群觅食过程的蚁群优化算法(AntColonyOptimization,ACO)和模拟鸟群运动方式的粒子群算法(ParticleSwarmOptimization,PSO)是两种最主要的群智能算法。蚁群算法是一种源于大自然生物世界的新 查看详情
优化选址基于matlab改进的粒子群算法求解充电桩选址优化问题含matlab源码1964期(代码片段)
一、粒子群算法简介1粒子群算法的概念粒子群优化算法(PSO:Particleswarmoptimization)是一种进化计算技术(evolutionarycomputation)。源于对鸟群捕食的行为研究。粒子群优化算法的基本思想:是通过群体中个体之间的协... 查看详情
优化调度基于matlab遗传和模拟退火算法求解码头泊位分配调度优化问题含matlab源码247期
一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情
优化求解基于加权变异的粒子群优化算法(wvpso)matlab源码(代码片段)
一、粒子群算法粒子群算法是在1995年由Eberhart博士和Kennedy博士一起提出的,它源于对鸟群捕食行为的研究。它的基本核心是利用群体中的个体对信息的共享从而使整个群体的运动在问题求解空间中产生从无序到有序的演... 查看详情
优化求解基于加权变异的粒子群优化算法(wvpso)matlab源码(代码片段)
一、粒子群算法粒子群算法是在1995年由Eberhart博士和Kennedy博士一起提出的,它源于对鸟群捕食行为的研究。它的基本核心是利用群体中的个体对信息的共享从而使整个群体的运动在问题求解空间中产生从无序到有序的演化... 查看详情
优化求解基于竞争学习的粒子群优化算法(clpso)matlab源码(代码片段)
一、粒子群算法粒子群算法是在1995年由Eberhart博士和Kennedy博士一起提出的,它源于对鸟群捕食行为的研究。它的基本核心是利用群体中的个体对信息的共享从而使整个群体的运动在问题求解空间中产生从无序到有序的演化... 查看详情