改进微粒群算法

上传人:hs****ma 文档编号:545137577 上传时间:2023-04-20 格式:DOCX 页数:18 大小:104.41KB
返回 下载 相关 举报
改进微粒群算法_第1页
第1页 / 共18页
改进微粒群算法_第2页
第2页 / 共18页
改进微粒群算法_第3页
第3页 / 共18页
改进微粒群算法_第4页
第4页 / 共18页
改进微粒群算法_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《改进微粒群算法》由会员分享,可在线阅读,更多相关《改进微粒群算法(18页珍藏版)》请在金锄头文库上搜索。

1、基本微粒群算法Vt+i = oVt + c rti i 11Pt 一 X丄 c rti i 2 2Pt 一 XtgiXt +1 = Xt + V t +1i i i带压缩因子微粒群算法V t+i =piVt + c rti 1 1Pt 一 Xt L c rti i 2 2形式上与基本PSO算法相同即3=0、CF C、c 2 =9 C 2。线性递减权重微粒群算法o=omaxmaxo )mintmax式中t为当前代数,t 为最大代数,、一般可分别取0.9、0.4;随迭代进maxmax min行,惯性权重由0.9线性减小至0.4。在搜索早期,惯性权重较大,微粒具有较强的全局搜 索能力;搜索后期,惯性

2、权重较小,有利于微粒的局部搜索,提高收敛速度。自适应权重微粒群算法o=omin(co一)f f )+ - maxminminavg minmax = f favg式中 f 为当前微粒的目标函数值, f 为当前所有微粒目标函数值的平均值, f 为avgmin当前所有微粒目标函数值中的最小值。若微粒的目标函数值小于平均值,说明该微粒相对 较优,则惯性权重较小,以保持其优势倾向于局部搜索;相反,若微粒的目标函数值大于 平均值,则该微粒相对较劣,取较大惯性权重,以利全局搜索。随机权重微粒群算法(随机确定权重)=min(max一min)rand+ o -randn式中rand为随机函数,randn为正态

3、分布函数,为随机权重方差。线性递减权重 PSO算法若在搜索的初始阶段未能获得较好的点,则可能导致最终微粒群无法收敛于最优 点。随机权重则可在一定程度上克服该弱点。同步变化学习因子微粒群算法c = c = c1 2 maxt (cmaxc )mintmax异步变化学习因子微粒群算法c = c1 1maxt (c1maxc )1mintmaxc = c2 2mint (c2maxc)2mintmax随着迭代过程的进行,c 1逐渐减小自我学习能力降低全局搜索能力减弱;c2逐渐 提高,社会学习能力提高,局部搜索能力加强。二阶微粒群算法Vt+i =oVt + c rti i 1 1 xt)+ (Xt-1

4、 - X+ c rti i ig i i i该算法微粒的速度变化不仅与微粒的位置Xt 有关,而且还与微粒的位置变化 iX t-1 - X t有关。例如下图ii(Pt - Xtii)+(Xt-1 -Xtii混沌微粒群算法 混沌理论的主导思想是,宇宙本身处于混沌状态,在其中某一部分中似乎并无关联的 事件间的冲突,会给宇宙的另一部分造成不可预测的后果。这意味着,系统具有放大作用。 一个微小的运动经过系统的放大,最终影响会远远超过该运动的本身。美国气象学家爱德华罗伦兹(Edward N.Lorentz) 1963年在一篇提交纽约科学院的论 文中分析了这个效应。“一个气象学家提及,如果这个理论被证明正确

5、,一只海鸥扇动翅膀足以永远改变天气变化。”在以后的演讲和论文中他用了更加有诗意的蝴蝶。对于这个 效应最常见的阐述是:“一只南美洲亚马逊河流域热带雨林中的蝴蝶,偶尔扇动几下翅膀, 可以在两周以后引起美国德克萨斯州的一场龙卷风。”其原因就是蝴蝶扇动翅膀的运动, 导致其身边的空气系统发生变化,并产生微弱的气流,而微弱的气流的产生又会引起四周 空气或其他系统产生相应的变化,由此引起一个连锁反应,最终导致其他系统的极大变化。 它称之为混沌学。在 PSO 算法中引入混沌算法,即在搜索过程中选择微粒群中一部分目标函数较优的微粒(如 20%),进行混沌搜索,首先要将决策变量转化为混沌搜索变量(该变量范围为01

6、)SkiX k - XiminX - Xmaxmin式中X min、X maX为变量的搜索边界,S k+1 : i 而后再将混沌搜索变量转化为决策变量X k+1 二 X i min以此混沌搜索变量进行混沌搜索二 4S k ( - S Jii+ S k+1Q - X)i max minSIteration每次搜索均要对微粒群的P t、P t进行更新,经过k次混沌搜索后,缩小混沌搜索边界 igX= maxE,Pt一 rand(X一 X)minmingmaxminX= minE,Pt+ rand(X- X)maxmaxgmaxmin在此缩小的搜索范围内,重新随即产生其余80%的微粒,重新构成完整的微

7、粒群,进行下 一轮的微粒群搜索。,取 Sk = 0.02、Sk = 0.02001ii在 10 代之间基本没有差别,但 10 代以后却有很大的差异,这差异来自初始值 0.00001 的差别(0.05%的误差),这就是蝴蝶效应。基于自然选择的微粒群算法Vt +1 = Vt+1 badgoodXt+1 = Xt +1 badgood在迭代过程中,将各微粒的目标函数值排序,其中50%较劣微粒的速度与位置用其余50%较优微粒的速度与位置替换,而50%较劣微粒的个体最优位置等信息保持不变。基于杂交的微粒群算法t+1i1V t+1 + V t+1ili 2 IXt+1 = rand Xt+1 + (1 一

8、 rand)Xt+1ii1i 2t+i + V t+iili 2t+1i 2V t+1 + V t+1i1i 2Xt+1 = (1 一 ran)Xt+1 + ran dXt+1ii1i 2V t+i =i按照一定的杂交概率选取一定数量的微粒(亲代),在亲代中随机杂交获得相同数目 的子代以替换亲代。基于部分微粒更新和非线性动态惯性权重的微粒群算法(NNLDWPSO)Vt+1 = 3 tVt + c rt Ct X t L c rt Ct X J31 =3maxii 1 1 ii 2 2 g imaxXt+1 = Xt + Vt+1ii i采用非线性惯性权重和微粒更新相结合,对微粒群中一定比例的微

9、粒进行更新,即采用随机的新位置Xt+1 = X+ rand(X-X)以替换微粒的原有位置。即一定比例的i minmax min微粒离开微粒群,相同数量的新微粒进入微粒群。这不仅有较高的收敛速度,而且还能保 持较好的微粒多样性,即可提高收敛速度,又可避免陷入局部最优。全面学习的微粒群算法( CLPSO,J J Liang IEEE Transaction on EvolutionaryComputation 2006 10 (3): 67-82)-iVt+1 = wVt + - rand P Xt -iiiiXt+1 = Xt + Vt+1ii i式中0为加速因子,P为任何可能的微粒位置,任何可

10、能的微粒包括:微粒自身、微 i粒群中其他任一微粒。迭代中按照一定的概率选择学习对象是微粒自身或其他微粒(其他 微粒可选择几个,从中再选出较优的一个微粒作为学习对象)。这样算法具有更多的学习 对象,甚至微粒的每个坐标可向不同的微粒学习,具有较强的全局搜索能力。基于模拟退火的微粒群算法模拟退火算法(Simulated Annealing, SA)是基于Mente-Carlo迭代求解策略的一种随 机寻优算法。该算法基于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时, 固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都 达到平衡态,最后在常温时达到基态,内能减为最

11、小。模拟退火算法从某一较高初温出发, 伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优 解,即在局部最优解能概率性地跳出,从而可有效避免陷入局部极小并最终趋于全局最优 的串行结构的优化算法。模拟退火算法是一种通用的优化算法,理论上算法具有概率的全 局优化性能,目前已在工程中得到了广泛应用,诸如生产调度、控制工程、机器学习、神 经网络、信号处理等领域。模拟退火与微粒群算法相结合的过程如下:(1)产生初始的微粒群及P、P。 ig2)设定初始温度及退火迭代次数 M0 ln53)确定当前温度下各微粒的适应值( N 为微粒群规模)if C)f C)- ige tf c )f

12、c )- igeTi=1以此适配值以一定的策略(本例为轮盘赌,也可采用其他策略,适配值可能需要相应修改) 选择其中的一个微粒替代全局最优点 P 。这样随机选择出来的微粒并非当前的全局最优g点,而把它替代当前的最优点,则使得目标函数值并非较优(因为优化问题为最小值问题时,总是P P )的微粒有可能成为当前的最优点(体现出微粒无序)算法有一定的概 ig率跳出局部最优点。4)按照微粒群微粒的进化方程对微粒进行迭代(此时 P 已变化),并根据微粒群 g的方法更新微粒的P与P值。ig( 5)退火T =九Tk+1k九 M时(也可以运算精度作为收敛判据),退出算法,以当前的P和 g则,重复步骤( 3) (

13、6)基本微粒群算法xm,fv=PSO(fitness,N,c1,c2,w,M,D)xm,最小点;fv,最小值;fitness,目标函数;N,微粒群规模;cl, c2,学习因子;w, 惯性权重;M,最大迭代代数;D,目标函数维数。%基本微粒群算法function xm,fv = PSO(fitness,N,cl,c2,w,M,D)format long;%初始化种群的个体for i=l:Nfor j=l:Dx(i,j)=randn; %随机初始化位置v(i,j)=randn; %随机初始化速度endend%先计算各个粒子的适应度,并初始化Pi和Pgfor i=l:Np(i)=feval(fitness,x(i,:);y(i,:)=x(i,:);endpg = x(N,:);%Pg 为全局最优for i=l:(N-l)if feval(fitness,x(i,:)feval(fitness,pg)pg=x(i,:);endend%进入主要循环,按照公式依次迭代for t=l:Mfor i=l:Nv(i,:)=w*v(i,:)+cl*rand*(y(i,:)-x(i,:)+c2*rand*(pg-x(i,:);x(i,:)=x(i,:)+v(i,:);if feval(fitness,x(i,:)p(i)p(i)=feval(fitness,x(i,:); y(i,:)=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号