PSOParticleSwamOptimization粒子群优化算法应用.docx

上传人:b****5 文档编号:8237753 上传时间:2023-01-30 格式:DOCX 页数:25 大小:239.97KB
下载 相关 举报
PSOParticleSwamOptimization粒子群优化算法应用.docx_第1页
第1页 / 共25页
PSOParticleSwamOptimization粒子群优化算法应用.docx_第2页
第2页 / 共25页
PSOParticleSwamOptimization粒子群优化算法应用.docx_第3页
第3页 / 共25页
PSOParticleSwamOptimization粒子群优化算法应用.docx_第4页
第4页 / 共25页
PSOParticleSwamOptimization粒子群优化算法应用.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

PSOParticleSwamOptimization粒子群优化算法应用.docx

《PSOParticleSwamOptimization粒子群优化算法应用.docx》由会员分享,可在线阅读,更多相关《PSOParticleSwamOptimization粒子群优化算法应用.docx(25页珍藏版)》请在冰豆网上搜索。

PSOParticleSwamOptimization粒子群优化算法应用.docx

PSOParticleSwamOptimization粒子群优化算法应用

前言1

第一章概述2

1.1引言2

1.2研究背景2

1.2.1人工生命计算2

1.2.2粒子群算法与遗传算法3

1.2.3人工神经网络与粒子群优化算法3

第二章粒子群优化算法5

2.1基本粒子群优化算法5

2.2算法流程5

2.3基本粒子群优化算法的缺点及改进方法6

2.3.1基本粒子群优化算法的缺点6

2.3.2几种改进算法6

2.3.2.1标准粒子群优化算法6

2.3.2.2带有收缩因子的粒子群优化算法7

2.3.2.3采用微分扰动的粒子群8

2.3.2.4带有小生境拓扑结构的粒子群优化算法9

2.3.2.5带有梯度加速因子的粒子群优化算法10

第三章基于多种群的粒子群优化算法11

3.1算法基本改进方法11

3.2算法伪代码11

第四章实验分析14

4.1几种常用改进算法14

4.2标准测试函数14

4.3收敛速度实验分析15

4.3.1实验设置16

4.3.2实验结果16

4.4收敛性能实验分析17

4.4.1实验设置17

4.4.2实验结果18

4.5算法参数分析19

4.5.1实验设置19

4.5.2实验结果20

第五章基于多种群的粒子群优化算法的应用21

5.1生产计划问题描述21

5.2实例22

5.3运行结果23

第六章总结与展望24

6.1课题总结24

6.2后续研究展望24

参考文献25

致谢27

摘要

在智能领域,大部分问题都可以归结为优化问题。

常用的经典优化算法都对问题有一定的约束条件,如要求优化函数可微等,仿生算法是一种模拟生物智能行为的优化算法,由于其几乎不存在对问题的约束,因此,得到广泛应用。

本文首先描述了基本粒子群优化算法及其几种改进算法的基本原理,并对基本粒子群优化算法参数进行了简要分析.根据分析结果,提出了一种基于多种群的粒子群优化算法.在5个标准优化函数上与基本粒子群优化算法及几种改进算法进行了比较,实验结果表明本文算法在优化多模式函数时性能明显要优于其它算法.本文算法应用于生产计划安排问题上也获得了较好的性能.最后,对本文进行了简单的总结和展望

关键词:

粒子群优化,适应度,群智能

 

Abstract

Inthefieldofartificialintelligence,mostproblemsbelongtothecategoryofoptimization.Theclassicalalgorithmsincommonuseareusuallylimitedbycertainoptimizingproblemssuchastheobjectoptimizationfunction,whichhastobeacontinuousone.Asbionicalgorithmimitatestheintellectiveactionsoflifefreefromthelimitsresultingfromtheoptimizingproblems,thiskindofalgorithmiscommonlyused.

Atfirstplace,thisdissertation,basingontheparticleswarmoptimization,illustratesthefundamentofthisalgorithm.Thispaperalsoplacesemphasisontheanalysisofparameterthatmayaffecttheperformanceofthealgorithm.Alsoanintroductionofimprovedalgorithmsandpopularadvancedimprovingstrategiesisshown,aswellasthemasteryofbasicresearchingprocessandmethods.Accordingtotheresultoftheanalysis,theauthorputforwardanewmulti-swarmsPSOalgorithmtoovercomethedefectsoftheoriginal.Throughthesimulation,theresultsshowthat,comparedwithotherPSOvariants,thealgorithmproposedbytheauthorhasattainedabettersolutiontothesameproblems.Finally,thepapergavesomefurtherexpectationsconcerningthePSOalgorithmresearch.

Keywords:

ParticleSwarmOptimization,Fitness,GroupIntelligence

前言

优化是个古老的问题,其研究的问题是在众多方案中寻找最优方案。

长期以来,优化问题一直受到广泛关注,是研究的热点问题。

早在17世纪,英国Newton和德国Leibnitz发明的微积分就蕴涵了优化的内容。

而法国数学家Cauchy则首次采用最速梯度下降法解决了无约束优化问题。

后来针对约束优化问题又提出了Lagrange乘数法。

人们关于优化问题的研究工作,随着历史的发展不断深入。

但是,任何科学的进步都要受到历史条件的限制,直到二十世纪四十年代,由于科学技术突飞猛进的发展,尤其是高速数字计算机日益广泛应用,使得优化问题的研究不仅成为一种迫切需要,而且有了求解的有力工具。

因此,优化理论和算法迅速发展起来,成为一门新的学科。

至今已出现线性规划、整数规划、非线性规划、几何规划、动态规划、随机规划等许多分支。

这些优化技术在实际应用中正发挥越来越大的作用。

随着人们生存空间的扩大,这些常规的优化方法已经无法处理人们所面对的复杂问题。

因此,高效的优化算法成为科学工作者的研究目标之一。

本文研究的粒子群优化算法(particleswarmoptimization,简称PSO)是Kennedy和Eberhart源于群体智能和人类认知学习过程而发展的一种智能优化算法。

它与遗传算法(GA)同属群体优化技术,但PSO比GA更简单、操作更方便。

因此,PSO算法从诞生起,就引起了国内外学者的广泛关注,并掀起了该方法的研究热潮,且在诸多领域得到了成功应用。

但是,PSO的发展历史尚短,在理论基础与应用推广上都还存在一些问题,如早熟,种群单一化等,有待于解决。

针对上述的问题,本文通过对PSO算法原理进行分析,在深入理解几种PSO改进算法的基础上,对PSO存在的问题提出了新的改进方法,并将改进的算法应用于实际优化问题中。

本文主要通过MATLAB7系列作为工作环境,实现算法以及相应的问题模拟。

全文共分五章。

第一章概述,主要介绍PSO算法研究背景。

第二章粒子群优化算法,主要介绍PSO算法基本原理,简要分析PSO主要缺陷,并介绍几种常用的改进PSO方法。

第三章基于多种群的粒子群优化算法,针对PSO的主要缺陷提出相应改进策略,并给出伪代码。

第四章实验分析,为了检测本文算法性能,选择了三种常用改进PSO算法与本文算法进行了实验比较,并对实验结果进行了简要分析。

同时对本文算法中主要参数设置方法进行了实验分析,以给出算法参数设置指导思想。

第五章基于多种群粒子群优化算法的应用,本文算法被用于优化生产计划问题并得出结果。

第六章对课题进行总结,并对未来的改进进行展望。

 

第一章概述

1.1引言

最优化问题是在满足一定约束条件下,寻找一组参数值,使得系统的某些性能指标达到最大或者最小。

它广泛的存在于农业,国防,工程,交通,金融,能源,通信,材料等诸多领域。

最优化技术在上述领域的应用已经产生了巨大的经济效益和社会效益。

国内外的实践证明,在同样条件下,经过优化技术的处理,对系统效率的提高,能耗的降低,资源的合理利用及经济效益提高均有显著的效果,而且随着处理对象规模的增大,这种效果也更加显著。

但随着处理对象规模的增大,优化问题也越来越复杂,而经典的优化技术对问题的约束比较大,如梯度下降法要求优化函数是可导等,因此,对于新型优化算法的研究具有重要的意义。

1.2研究背景

1.2.1人工生命计算

人们从生命现象中得到启示,发明了许多智能的优化方法来解决复杂优化问题。

现在已有很多源于生物现象的计算技巧。

例如,人工免疫[1]模拟生物免疫系统的学习和认知功能,人工神经网络[2~6]是简化的大脑模型,遗传算法[7]是模拟基因进化的过程。

在计算智能(computationalintelligence)领域有两种基于群体智能swarmintelligence[8~13]的算法,粒子群优化算法(particleswarmoptimization)[14]和蚁群算法(antcolonyoptimization)。

[9,13,15]蚁群优化算法模拟了蚂蚁群体在路径选择和信息传递方面的行为,而粒子群优化算法模拟群居动物觅食迁徙等群体活动中个体与群体协调合作的工作过程。

这类借鉴了模拟生命系统行为功能和特性的科学计算方法称为人工生命计算。

人工生命计算包括两方面的内容,研究如何利用计算技术研究生物现象和研究如何利用生物技术研究计算问题。

人工神经网络,粒子群优化算法,遗传算法,蚁群优化算法等都属于人工生命计算的范畴。

本文详细介绍的粒子群优化算法是其中的一种新兴计算方法。

它同遗传算法类似,同属随机迭代优化工具。

同遗传算法等其他人工生命计算相比,粒子群算法概念简单,容易实现,调节参数较少。

目前粒子群算法越来越引起人们的关注。

1.2.2粒子群算法与遗传算法

大多数迭代优化技术都有相似的流程:

1.种群元素随机初始化。

2.计算种群个体位置适应值(fitnessvalue)。

适应值体现与最优解的差异。

3.种群依适应值进行相应演化。

4.达到停止条件,停止,否则转2。

通过对上述步骤观察,可见粒子群算法和遗传算法有很多相似之处。

两者都随机初始化种群(遗传算法则是染色体)。

使用适应函数评价系统,且根据其得出的结果进行多次随机寻优。

然而,粒子群算法没有遗传算法中的交叉(crossover)和变异(mutation)行为。

他根据变化的粒子速度进行每一轮的搜索。

再者,粒子群算法中的粒子还有一个重要的特色,粒子具有记忆能力。

在搜索个体信息共享方面,粒子群算法和遗传算法的做法也是非常不同的。

在遗传算法中,其粒子个体染色体(chromosomes)俩俩之间共享信息,因此其整体是比较均匀的向最优区移动。

粒子群算法通过全局最优粒子指引其他粒子向本轮迭代最优位置移动,这是一种单向的信息流动。

对于第二种机制,较多情况下,算法可能具有更快的收敛速度。

1.2.3人工神经网络与粒子群优化算法

人工神经网络是基于生物学中神经网络的基本原理而建立的一种模仿人脑工作方式的计算模型,可以被视为一种具有大量连接的并行分布式处理器,它可以通过学习获取知识并解决问题,并且将知识分布存储在连接权中(对应生物神经元的突触)。

由于人工神经网络具有较强的自适应性,学习能力和大规模并行计算能力,目前已被广泛应用于各种研究及实际工程领域中,如模式识别,信号处理,控制与优化,预测建模,通信等领域。

近年来,随着进化计算研究热潮的兴起,人们逐渐将进化计算与人工神经网络相结合,利用各种进化方法去训练神经网络。

由于进化算法具有较强的全局收敛能力和较强的稳定性,且不需要借助问题的特征信息,如导数等梯度信息。

因此,将两者相结合,不仅能发挥神经网络的泛化映射能力而且能够提高神经网络的收敛速度和学习能力。

进化计算用于神经网络优化主要有两个方面:

一是用于网络训练,即各层之间的连接权值;二是优化网络的拓扑结构。

具体的研究方法有如下三种:

1.通过优化连接权值来训练神经网络

针对特定的神经网络,列出所有的神经元,并将所有的神经元可能存在的连接权值编码成二进制编码或是实数码串表示的个体,随机生成这些码串的群体,按照常规的方法执行进化操作。

将新形成的码串解码构成神经网络,计算所有训练样本通过此神经网络产生平均误差,以此来确定每一个体的适应度。

这种方法思路简单,但是用于优化的计算量较大尤其是在优化解决复杂问题的大规模神经网络时,随着神经元的怎多,连接权的总数也随之增多,从而造成进化计算的搜索空间增大。

2.优化神经网络的结构和学习规则

利用进化算法计算优化设计神经网络的结构,同时包括网络的学习规则以及与之关联的参数。

这种方法直接将未经训练的神经网络的结构模式和学习规则编码成码串表示的个体,再执行进化操作。

与前一种方法相比,器搜索空间相对较小,但是也存在着一定的缺陷。

在优化过程中,每个被选择的个体都必须解码成未经训练的神经网络,再经过传统的训练以确定其连接权值,因此收敛速度较慢。

3.同时优化神经网络的结构和连接权值

同时优化神经网络的结构和连接权值进行编码以进行优化。

Vittorio曾提出粒度编码方法来提高连接权值的优化精度,但是粒度控制同时会加剧个体适应度的不连续变化,从而影响到算法的收敛速度。

采用进化算法去优化神经网络,比起基于梯度的BP学习算法,无论是精度还是速度上,均有了很大的提高。

然而,作为一种仿生的随机算法,进化计算本身有具有不可克服的缺陷。

比如进化计算中研究最为充分的遗传算法,虽然它可以用来求解各类复杂问题,但总是难以克服过早收敛的缺点,同时在采用遗传操作进化时,需要的控制参数过多,尤其是在优化神经网络的时候,优化过程总是难以控制。

因此,为神经网络的优化寻求更简单,更有效的全局优化函数,是优化领域中的一个研究热点。

第二章粒子群优化算法

2.1基本粒子群优化算法

JamesKennedy和RussellEberhart在1995年的IEEEInternationalConferenceonNeuralNetworksand6thInternationalSymposiumonMicromachineandHumanScience上分别发表了“Particleswarmoptimization”(粒子群优化)and“Anewoptimizerusingparticleswarmtheory”(一种使用粒子群理论的新优化器)的论文,标志着粒子群优化算法的诞生。

设想有这样的一个场景:

一群鸟在一个只有一块食物的区域内随机的搜索食物。

所有的鸟都不知道食物在哪里。

但是他们知道当前位置和食物的距离。

那么最简单有效的寻找策略就是搜索目前和食物距离最小的鸟的周围区域。

PSO从这种模型中得到启示并用其解决优化问题。

PSO中,每个优化问题的解都是搜索空间中的一只鸟,我们称之为“粒子”。

所有粒子都有一个由被优化函数决定的适应度值(fitnessvalue),每个粒子还有一个速度决定他们飞翔速度的大小和方向。

随即,粒子们会追随当前的最优粒子在解空间内搜索。

PSO初始化为一群随机粒子(随机解)。

其最终最优解通过若干轮迭代求得。

每一次迭代,每一粒子通过两个因素进行自我更新(通过取得新速度而取得新位置):

粒子自身寻解过程中的最佳解,我们称它为“自我意识”,它往往和算法的局部搜索性能有很大的关系,另一个因素我们称之为“群体智慧”,是整个群体所找到的最佳解,在速度更新中他能带领整个群体向问题的全局最优靠拢,在个体和群体的共同协作下算法可以取得最优解。

可用下面的公式来表示粒子每轮的更新行为:

(2.1)

(2.2)

其中,Vid为粒子速度,Xid为粒子位置,C1,C2称为学习因子或加速常量,φ1,φ2(0,1)区间内两个随机正数,Plid为个体意识(个体最佳解位置),pg为群体最佳解位置。

2.2算法流程

1.初始化,设定加速常数

,最大进化代数

将当前进化代数置为t=1,在定义空间

中随机产生m个粒子X1,X2,…,Xn,组成初始种群

随机产生各粒子初速度V1,V2,…,VS组成位移变化矩阵V(t)。

2.计算种群中所有粒子的适应值,初始化每粒子pbest为当前粒子,设定种群的gbest为当前种群的最优粒子。

3.种群X(t)演化,对种群中的每一个粒子:

(1)按(2.1),(2.2)式更新粒子的位置和速度。

(2)计算粒子的适应值。

(3)比较粒子的适应值和自身的最优值pbest。

如果当前值比pbest更优,则更新pbest为当前值,并更新pbest位置到n维空间中的当前位置。

(4)比较粒子适应值与种群最优值。

如果当前值比gbest更优,则更新gbest为当前种群最优粒子。

4.检查结束条件,若满足,则结束寻优;否则,t=t+1,转至2.。

结束条件为寻优达到最大进化代数

,或评价值小于给定精度

2.3基本粒子群优化算法的缺点及改进方法

2.3.1基本粒子群优化算法的缺点

首先,通过实验发现,PSO的实施过程与他所采用的参数取值有较大的关系,这些参数取值仍然是一个亟待解决的问题。

通常认为,对于不同的问题算法参数设置是不同的。

然而如何设置,则主要依赖设计者的经验,目前还没有理论用于指导算法的参数设置。

其次,PSO应用于高维复杂问题优化时,往往会遇上早熟收敛的问题,也就是说,种群还没有达到全局最优点时已经聚集到一点停滞不动。

从公式(2.1)中可以会发现,基本粒子群算法存在一些缺陷,即容易出现早熟收敛,Vid较小和|Plid-Xid|和|pg-Xid|也很小时,粒子的速度就会受到抑制,从而导致算法搜索停滞不前。

这种情况甚至会发生在搜索的早期,当粒子是当前全局最佳解的时候,就会引起|Plid-Xid|,|Pg-Xid|成为零。

这些早熟收敛点,有可能是局部极小点,也有可能是局部极小点临域的一个点。

换句话说,早熟收敛并不能保证算法收敛到局部极小点。

因而,对算法早熟收敛行为处理也是算法改进的一个难点。

此外,PSO在接近或进入最优点区域时的收敛速度也比较缓慢。

实际上对PSO的研究发现,PSO早期收敛速度较快,但到了寻优的后期,其结果改进则不甚理想。

这主要归因于算法收敛到局部极小,缺乏有效的机制使算法保持多样性或逃离局部极小点。

2.3.2几种改进算法

2.3.2.1标准粒子群优化算法

为了改善基本PSO算法的收敛性能,Y.Shi与R.C.Eberhart在1998年的IEEE国际进化计算学术会议上发表了题为“AModifiedParticleSwarmOptimizer”[16]的论文,首次在速度方程中引入了惯性权重的概念,即

(2.3)

式(2.3)中,w称为惯性权重,因此,基本PSO算法是惯性权重w=1的特殊情况。

惯性权重w使粒子保持运动惯性,使其有扩展搜索空间的趋势,有能力探索新的区域。

引入惯性权重w可清除基本PSO算法对速度最大值的需求,因为w本身具有维护全局和局部搜索能力的平衡的作用。

这样,当速度最大值增加时,可通过减少w来达到平衡搜索。

而w的减少可使得所需的迭代次数变少。

从这个意义上看,可以将d维速度的最大值锁定为每维变量的变化范围,只对w进行调节。

文献[6]建议w的取值范围为[0,1.4]。

对全局搜索,通常的好方法是在前期有较高的探索能力以得到合适的种子,而在后期有较高的开发能力以加快收敛速度。

为此,可将w设定为随着进化迭代次数而线性减少,例如由0.9到0.4等。

Y.Shi和R.C.Eberhart的仿真实验结果也表明w线性减少取得了较好的实验结果。

在文献[14]中,这种线性的w可以模仿模拟退火的中的温度。

(在某些情况下属实)在本文提出的算法中发现,有些情况下,对上轮迭代粒子速度给于不保留策略,能够有效提高整个种群的搜索能力。

2.3.2.2带有收缩因子的粒子群优化算法

在Clerc[16,17]的研究中,提出了收缩因子的概念。

该方法描述了一种选择w,c1和c2的值的方法,以确保算法收敛。

通过正确的选择这些控制参数,就没有必要将粒子速度控制在速度的极值区间内。

接下来首先讨论一个带有收缩因子的粒子群优化算法相关的收敛模式特例。

一个与某个收敛模式相符合的改进了的速率方程式以以下形式提出:

(2.4)

在这里

且l=C1+C2=4.1我们得出X=0.7298并带入方程

(2.4),同时省略参数t,结果为:

(2.5)

因为2.05*0.7298=1.4962,所以这个方程式与在改进的PSO速率更新方程式使用C1=C2=1.4962和w=0.7298所得到的方程式是等价的。

Eberhart和Shi将分别利用速度极值和收缩因子来控制粒子速度的两种算法性能做了比较,结果表明,后者比前者通常具有更好的收敛率。

然而在有些测试函数的求解过程中,使用收缩因子的算法在给定的迭代次数内无法达到全局极值点。

按照Eberhart和Shi的观点,这是由于粒子偏移所期望的搜索空间太远而造成的。

为了降低这种影响,他们建议在使用收缩因子时首先对算法进行限定,比如使得速度极值等于搜索域极值或者预先设置搜索空间的大小这样可以改进算法对所有测试函数的求解性能——不管是在收敛率方面还是在搜索能力方面。

2.3.2.3采用微分扰动的粒子群

SwagatamDas,AmitKonarUday,K.Chakraborty对于PSO的研究发现,通过从微分进化[18]中引入微分扰动[19]因子取代公式中(2.1)中粒子的个体意识部分。

该因子形成于群体中随机选择的两个粒子的位置差异向量。

同时,与标准PSO算法不同,在该算法中只有当粒子在新位置的适应度值优于原来位置时,粒子位置才会更新,具体描述如下:

在他们提出的算法中,对于每一个粒子i,随机选取两个不同于i且互不相同的粒子j,k。

他们之间的差异用向量δ来表示。

(2.6)

第i个粒子的第d维速度更新公式为:

ifrandd(0,1)

=Vid(t)otherwise

CR是交叉选择概率,δd是(2.7)式中的差异向量δ的第d维分量。

ß是在[0,1]上随机数,为了获得额外探索能力,公式(2.6)中向量微分运算符代替了粒子“个体意识”部分。

当每轮迭代产生的随机概率

(2.8)

然而只有新位置体现出更好的适应值时,粒子才会变迁到那里。

因此,如果在一个n维搜索空间中寻找最小值。

那么目标粒子的位置将会被更新为:

(2.9)

otherwise

即粒子只限于移动到更优的位置,或不动。

粒子的位置始终为至今最佳解。

另一方面,为了保持粒子搜索活跃性。

如果粒子在搜索域中变迟钝(如果他在预定迭代次数内停滞不前),该粒子就会被赋予一随机位置,具体方法如下:

(2.10)

在这里

是适应函数的全局最小值,N是该算法中设置的最大迭代次数,(

)定义算法每一轮所允许的搜索区域。

2.3.2.4带有小生境拓扑结构的粒子群优化算法

基于粒子群优化算

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1