2021-07-29

【优化求解】模拟退火结合粒子群优化算法matlab源码

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; %随机初始化速度 endend%------先计算各个粒子的适应度----------------------for i=1:N p(i)=fitness(x(i,:)); y(i,:)=x(i,:);endpg=x(N,:);    %Pg为全局最优for i=1:(N-1) if fitness(x(i,:))<fitness(pg)  pg=x(i,:); endend%------进入主要循环------------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 endendxm = pg';fv = fitness(pg);

5 结论

  改进的PSO算法通过与模拟退火算法的结合,能够有效地调节全局搜索与局部搜索能力,不容易陷入局部最优,能得到更好的优化效果。粒子群算法与各种优化算法的结合近年来发展很快,但其数学基础比较薄弱,缺乏深刻且具有普遍意义的理论分析,这也是今后需要研究的一个重要方向[......

原文转载:http://www.shaoqun.com/a/892250.html

跨境电商:https://www.ikjzd.com/

黑石集团:https://www.ikjzd.com/w/1339.html

stadium:https://www.ikjzd.com/w/2729

淘粉吧首页:https://www.ikjzd.com/w/1725.html


​1引言  粒子群算法(ParticalSwarmOptimization-PSO)是1995年由Eberhart博士和kennedy博士共同提出的一种优化算法[1][2]。它属于群智能算法的一种,和遗传算法相似,它也是从随机解出发,通过迭代寻找最优解,通过适应度来评价解的品质。但是粒子群算法比遗传算法规则更为简单,它没有遗传算法的"交叉"和"变异"操作,它通过追随当前搜索到的最优值来寻找全局最优
ryder:https://www.ikjzd.com/w/1264.html
四川省德阳市绵竹市发生4.0级地震_蛙步报告 :http://www.30bags.com/a/409990.html
四川省第七届乡村文化旅游节(秋季)在宝兴开幕:http://www.30bags.com/a/425293.html
四川省旅游景区有序开放:http://www.30bags.com/a/426350.html
四川省旅游局赴渝洽商川渝合作事宜 :http://www.30bags.com/a/409474.html
老师你下面太紧进不去 老师脱下裙子坐在我的巨物上:http://lady.shaoqun.com/a/247572.html
和老外交换太大了第二部分 老外又粗又长一晚做五次:http://lady.shaoqun.com/a/247018.html
喜欢让人㖭我下面啊 女人口述被亲下面的感觉:http://www.30bags.com/m/a/249841.html
招生在高校旁边开酒店的推广方式有争议:http://lady.shaoqun.com/a/428527.html
为什么大学附近有那么多小旅馆?大学生不都住校园吗?:http://lady.shaoqun.com/a/428528.html
大学周边的酒店往往供不应求。他们在里面做什么?你有过难忘的经历吗?:http://lady.shaoqun.com/a/428529.html
女人给你这四个暗示是因为想和你发生关系!:http://lady.shaoqun.com/a/428530.html

No comments:

Post a Comment