当前位置:文档之家› 微粒群算法

微粒群算法

微粒群算法
微粒群算法

目录

1绪论 (2)

1.1研究的背景和意义 (2)

1.2常用的参数整定法 (2)

1.3PID参数优化法 (3)

1.4微粒群PID参数优化 (3)

2微粒群算法 (4)

2.1算法起源 (4)

2.2算法原理 (4)

2.3算法流程 (5)

2.4算法特点 (6)

2.5全局模型和局部模型 (7)

2.6带惯性权重的微粒群算法 (7)

2.7微粒群算法的研究现状 (8)

3 PSO算法优化PID参数 (8)

3.1PID控制原理 (8)

3.2PID控制特点 (9)

3.3优化设计简介 (9)

3.4目标函数的选取 (10)

3.5大迟滞系统简介 (11)

3.6加温炉控制简介 (14)

4 系统仿真 (14)

4.1工程上的参数整定 (14)

4.2微粒群算法参数整定 (16)

4.3结果比较 (16)

结论与展望 (16)

1 绪论

1.1 研究的背景和意义

效率是人们追求的最终目标,不断提高解的质量和求解的速度,尽可能地提

高效率以节省时间,顺应现代工业的发展,PID 控制器在智能控制方面起着越来越重要的作用,因为其具有结构简单,鲁棒性好,可靠性高等特点。在工业控制过程中,大多控制都是高阶,时滞和非线性的,所以对PID 控制的参数整定是非常困难的,PID 的控制性能与控制器参数d i p K K K ,,的优化整定直接相关,其参数的整定已成为PID 控制器应用需要解决的首要问题[1]。为解决各种优化问题,人们提出了许多优化算法,比较著名的有蚁群算法、神经网络算法[2]和遗传算法等。优化问题有两个主要问题。一是要求寻找全局最小点,二是要求有较高的收敛速度。蚁群算法适合在图上搜索路径问题,但计算开销会大。神经网络算法,编程和解码过程需要大量CPU 时间,算法易早熟,收敛易陷入局部最优。遗传算法,涉及到繁琐的编码解码过程和很大的计算量。所以到现在还没有万能的优化算法,不同的问题要用合适的算法。

1.2 常用的参数整定法

常用的参数整定方法:实验凑试法、衰减曲线法、临界比例度法、反应曲线

法。实验凑试法是通过闭环运行或模拟,观察系统的响应曲线,然后根据各参数对系统的影响,反复凑试参数,直至出现满意的响应,从而确定PID 控制参数。用衰减曲线法整定调节器参数的方法是:在纯比例作用下,i T 为∞,d T 为0,目的是要得到4:1,衰减振荡过度过程曲线。根据所得曲线,若衰减大于4:1 应调整δ朝小比例带方向;若小于4:1,应调整δ朝大比例带方向。记下4:1的比例带δ,并在记录曲线上求得4:1衰减时的调节周期P T ,然后计算δ,i T ,d T 各值。临界比例度法考虑的实质是通过现场试验找到等幅振荡的过渡过程,得到临界比例度和等幅振荡周期。当操纵变量作阶跃变化时,被控变量随时间变化的曲线称为反应曲线。对有自衡的非振荡过程,广义对象传递函数常可用

()()()exp 1s G s K s T τ=-+近似。K ,τ和T 可用图解法等得出。调节器参数整定的反应曲线是依据广义对象的K ,τ和T 确定调节器参数的方法。

1.3 PID 参数优化法

目前PID 参数整定优化方法有很多,比如最速下降法、单纯形法、误差积

分准则ISTE 最优设定方法、遗传算法、蚁群算法等。最速下降法是选取目标函数的负梯度方法(最速下降方向)作为每步迭代的搜索方向,逐步逼近函数的极小值点,以梯度法为基础的多维无约束最优化问题的数值计算法;单纯形法是求解多变量无约束最优化问题的一种直接搜索法,是求解非线性函数的经验方法;误差积分准则ISTE 最优设定方法是针对一类特定被控对象的,如果被控对象形式已知,可以考虑使用这种ISTE 误差积分准则作为目标函数进行参数优化;遗传算法是一种典型的启发式算法,属于非数值算法范畴。它是模拟达尔文的自然 选择学说和自然界的生物进化过程的一种计算模型。它是采用简单的编码技术来表示各种复杂 的结构,并通过对一组编码表示进行简单的遗传操作和优胜劣汰的自然选择来指导学习和确定 搜索的方向。蚁群算法是受到自然界中真实蚁群集体行为的研究成果的启发而提出的基于种群的模拟进化算法。

1.4 微粒群PID 参数优化

本文用微群算法对PID 参数进行优化,PID 控制器的参数整定, 就是通过选择合适的比例、 积分、 微分三个参数的值, 从而使控制器具有良好的控制效果[3]。先选择控制系统的目标函数,采用时间平方乘以误差的平方,通过对控制系统的逐步仿真,对结果进行分析。由于选取的这个目标函数的解析式不能直接写出,故采用逐步仿真来实现,然后采用工程上的整定方法(临界比例度法)粗略的确定其初始的三个参数,,p i d K K K ????,并以此进行寻优,得到较好的PID 参数。再利用MATLAB 编制粒子群算法寻优程序。通过粒子群算法优化系统性能最佳的PID 参数后采用SIMULINK 的仿真工具对PID 参数优化系统进行仿真,得出系统的响应曲线。从中发现它的性能指标,都比原来的曲线有了很大的改进。

2微粒群算法

2.1算法起源

微粒群算法,又称粒子群优化(Particle Swarm Optimization, PSO),是由J. Kennedy和R. C. Eberhart等于1995年开发的一种演化计算技术,来源于对一个简化社会模型的模拟。其中“群(swarm)”来源于微粒群符合M. M. Millonas在开发应用于人工生命(artificial life)的模型时所提出的群体智能的5个基本原则。“粒子(particle)”是一个折衷的选择,因为既需要将群体中的成员描述为没有质量、没有体积的,同时也需要描述它的速度和加速状态。PSO算法最初是为了图形化的模拟鸟群优美而不可预测的运动。而通过对动物社会行为的观察,发现在群体中对信息的社会共享提供一个演化的优势,并以此作为开发算法的基础。通过加入近邻的速度匹配、并考虑了多维搜索和根据距离的加速,形成了PSO的最初版本。之后引入了惯性权重w来更好的控制开发(exploitation)和探索(exploration),形成了标准版本。

2.2算法原理

PSO算法是基于群体的,根据对环境的适应度将群体中的个体移动到好的区域。然而它不对个体使用演化算法,而是将每个个体看作是D维搜索空间中的一个没有体积的微粒(点),在搜索空间中以一定的速度飞行,这个速度根据它本身的飞行经验和同伴的飞行经验来动态调整。第i个微粒表示为Xi = (xi1,xi2,…,xiD),它经历过的最好位置(有最好的适应值)记为Pi = (pi1,pi2,…,piD),也称为pbest。在群体所有微粒经历过的最好位置的索引号用符号g表示,即Pg,也称为gbest。微粒i的速度用Vi = (vi1,vi2,…,viD)表示。对每一代,它的第d 维(1 ≤ d ≤D)根据如下方程进行变化:

vid = w*vid+c1*rand()*(pid-xid)+c2*Rand()*(pgd-xid)(1a) (2.1)

xid = xid+vid (1b) (2.2)

其中w为惯性权重(inertia weight),c1和c2为加速常数(acceleration constants),rand()和Rand()为两个在[0,1]范围里变化的随机值。

此外,微粒的速度Vi被一个最大速度Vmax所限制。如果当前对微粒的加速

导致它的在某维的速度vid超过该维的最大速度vmax,d,则该维的速度被限制为该维最大速度vmax,d。

对公式(1a),第一部分为微粒先前行为的惯性,第二部分为“认知(cognition)”部分,表示微粒本身的思考;第三部分为“社会(social)”部分,表示微粒间的信息共享与相互合作。

“认知”部分可以由Thorndike的效应法则(law of effect)所解释,即一个得到加强的随机行为在将来更有可能出现。这里的行为即“认知”,并假设获得正确的知识是得到加强的,这样的一个模型假定微粒被激励着去减小误差。

“社会”部分可以由Bandura的替代强化(vicarious reinforcement)所解释。根据该理论的预期,当观察者观察到一个模型在加强某一行为时,将增加它实行该行为的几率。即微粒本身的认知将被其它微粒所模仿。

PSO算法使用如下心理学假设:在寻求一致的认知过程中,个体往往记住自身的信念,并同时考虑同事们的信念。当其察觉同事的信念较好的时候,将进行适应性地调整。

2.3 算法流程

a). 初始化一群微粒(群体规模为m),包括随机的位置和速度;

b). 评价每个微粒的适应度;

c). 对每个微粒,将它的适应值和它经历过的最好位置pbest的作比较,如果较好,则将其作为当前的最好位置pbest;

d). 对每个微粒,将它的适应值和全局所经历最好位置gbest的作比较,如果较好,则重新设置gbest的索引号;

e). 根据方程⑴变化微粒的速度和位置;

f). 如未达到结束条件(通常为足够好的适应值或达到一个预设最大代数Gmax),回到b)。

粒子群优化算法的流程如图2.1所示

开始

初始化每个粒子的速度和位置

计算每个粒子的适应值

求出每个粒子的个体最优

求出整个群体的全局最优值

根据方程(2.1)对粒子的速度进行进化

根据方程(2.2)对粒子的位置进行进化

是否满足结束条件

输出结果

图2.1 基本粒子群算法流程图

2.4算法特点

(1)易于描述

(2)设置参数少

(3)容易实现

(4)收敛速度快

粒子群算法非常容易实现,占用计算机硬件资源少计算代价不高,他能解决很多全局优化问题都非常好已经得到了证明。当然,PSO算法也不是全能的和其它全局优化算法一样,有收敛精度不高,后期收敛速度慢,易陷入局部最优等缺

点。

2.5 全局模型和局部模型

粒子的行为是受自身最优pbest 和全局最优gbest 的影响,这种版本称为全局

版本PSO 算法。另一种为局部版本PSO 算法,在该算法中,粒子的行为是不受全局最优gbest 影响的,而是受自身最优pbest 和拓扑结构中邻近粒子中的局部最优lbest 影响的,对局部版本,式(2.1)改为:

()()()()()()()()()()t x t p t r c t x t p t r c t v t v ij ij ij ij ij ij -+-+=+22111 (2.3)

其中,p ij 为邻近粒子的局部最优。

比较两种版本的算法,我们可以发现:因为全局版本PSO 算法中所有粒子

信息是共享的,所以算法收敛到全局最优的速度比局部版本PSO 算法快。但全局PSO 算法易陷入局部最优;局部PSO 算法允许粒子与邻近粒子比较,相互施加影响,虽然算法收敛速度慢,但不易陷入局部最优。

2.6 带惯性权重的微粒群算法

探索是偏离原来的寻优轨迹去寻找一个更好的解,探索能力是一个算法的全

局搜索能力。开发是利用一个好的解,继续原来的寻优轨迹去搜索更好的解,它是算法的局部搜索能力。如何确定局部搜索能力和全局搜索能力的比例,对一个问题的求解过程很重要。1998年,Yuhui Shi [9]提出了带有惯性权重的改进粒子群算法。其进化过程为:

()()()()()()()()()()t x t p t r c t x t p t r c t wv t v ij gj ij ij ij ij -+-+=+22111 (2.4) ()()()11++=+t v t x t x ij ij ij (2.5)

在式(2.1)中,第一部分表示粒子先前的速度,用于保证算法的全局收敛性能;

第二部分、第三部分则是使算法具有局部收敛能力。可以看出,式(2.4)中惯性权重w 表示在多大程度上保留原来的速度。w 较大,全局收敛能力强,局部收敛能力弱;w 较小,局部收敛能力强,全局收敛能力弱。

当w=1时,式(2.4)与式(2.1)完全一样,表明带惯性权重的粒子群算法是基本粒子群算法的扩展。实验结果表明,w在[0.8,1.2]之间时,PSO算法有更快的收敛速度,而当w>1.2时,算法则易陷入局部极值。

2.7 微粒群算法的研究现状

自1995年微粒群算法提出以来,特别是近年来国内也越来越多人投入了研究,但是目前PSO算法还没有成熟的理论分析,少数人对算法收敛性进行分析,大部人在算法的结构和性能改善方面进行了探索,包含参数分析,粒子多样性保持,拓扑结构,性能比较和算法融合等。由于PSO算法的特点,其在连续非线性优化问题和组合优化问题中都表现出良好的效果。

3 PSO算法优化PID参数

PID(比例-积分-微分)控制器作为最早实用化的控制器已有70多年历史,现在仍然是应用最广泛的工业控制器。PID控制器简单易懂,使用中不需精确的系统模型等先决条件,因而成为应用最为广泛的控制器。这个理论和应用自动控制的关键是,做出正确的测量和比较后,如何才能更好地纠正系统。

3.1 PID控制原理

PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。其输入e (t)与输出u (t)的关系为:

u(t)=kp[e(t)+1/TI∫e(t)dt+TD*de(t)/dt] (3.1)

式中积分的上下限分别是0和t

因此它的传递函数为:

G(s)=U(s)/E(s)=kp[1+1/(TI*s)+TD*s] (3.2)

其中kp为比例系数; TI为积分时间常数; TD为微分时间常数

图3.1 PID控制系统原理框图

3.2 PID 控制特点

PID 控制器原理简单、鲁棒性好、可靠性高,因此一直是工业过程控制中应

用最广的策略,尤其适用于可建立精确数学模型的确定性系统。

但是实际工业生产过程往往具有非线性、时变不确定性等困难性,难以建立

精确的数学模型,应用常规PID 控制器不能达到理想的控制效果。此外,在实际生产的现场中,常规PID 控制器往往会受到参数整定过程繁杂的困扰,出现整定不良、性能欠佳的情况,对运行工况的适应性也很差。

3.3 优化设计简介

优化设计英文名是optimization design ,从多种方案中选择最佳方案的设

计方法。它以数学中的最优化理论为基础,以计算机为手段,根据设计所追求的性能目标,建立目标函数,在满足给定的各种约束条件下,寻求最优的设计方案。实际上,在任何一项设计工作中都包含着寻优过程,但这种寻优在很大程度上带有经验性,多根据人们的直觉、经验及不断试验而实现的,由于受到经验、时间、环境等条件的限制,往往难以得到最佳的结果。

优化步骤:

①建立数学模型。

②选择最优化算法。

③程序设计。

比例

积分 微分

被控对象 r(t) e(t)

u(t) y(t) + +

+ –

④制定目标要求。

⑤计算机自动筛选最优设计方案等。通常采用的最优化算法是逐步逼近法,有线性规划和非线性规划。

优化设计就是在满足设计要求的众多设计方案中选出最佳设计方案的设计

方法。工程设计中的优化方法有多种类型,有不同的分类方法。若按设计变量数值的不同,可将优化设计分为单变量(一维)优化和多变量优化;若按约束条件的不同,可分为无约束优化和有约束优化;若按目标函数数量的不同,又有单目标优化和多目标优化[10]。

3.4 目标函数的选取

在参数最优化的问题中要涉及性能指标函数,性能指标函数是被寻参数的函

数,称为目标函数。要比较明确的反映系统的品质,又便于计算就要选择不同的目标函数。即便同一系统,选取不同的目标函数寻优到最后得到的优化参数也有可能会不一样。

目标函数的选择分为两大类:第一类是特征型目标函数,它是按照系统的输

出响应的特征提出的。第二类是误差型目标函数,它是采用期望响应和实际响应之差的某个函数作为目标函数。这种目标函数实际上是对第一类目标函数的几个特征向量做数学分析,把它们包含在一个目标函数的表达式中。因此它反映整个系统的性能。

几种常用的误差型目标函数:

(1)误差平方的积分型。这种目标函数的表达式为

()20t

J e t dt =? (3.3) 其中e(t)=r(t)-y(t)表示系统误差。一般要求e(t)越小越好,即要求控制系统的

输出响应y(t)尽可能的接近输入r(t)。由于在过度过程中e(t)时正时负,故取误差的平方进行积分。这种目标函数在数学上是很容易实现的,常常可以得到比较简单的解析式。但是在过度过程中,不同时期的误差是不完全相同的,如果全部用误差的平方再积分显然是不怎么合理的,不能很好的反映系统的最终品质指标的要求。

(2)时间乘以平方误差型。这种目标函数的表达式为

20t J t e d t =? (3.4)

由于在误差平方上乘以了t ,相当加上了时间权。这样过度过程的初始误差

考虑比较少,而着重权衡过度过程中后期出现的误差。这种目标函数的选取不止一种方法可以更精确地反映系统的最终品质要求。

(3)误差绝对值积分型。这种目标函数的表达式为

()0t J e t dt =? 或者为 ()0t

J t e t dt =? (35)

其寻优方法显然要比其他两种方法优点突出。一方面加了绝对值,它克服了

在过度过程中e(t)时正时负的缺点,另外加了时间t ,这样过度过程中后期出现的误差也基本上能消除。因此本文在选择目标函数的表达式取()0t

J t e t dt =?。 3.5 大迟滞系统简介

在生产过程中,被控制对象除了具有容积延迟外,往往有不同程度的纯迟滞。

例如在交换器中,被测量是被加热物料的出口温度,而控制量是载热介质,当改变载热介质流量后,对物料的出口温度必然有一个迟滞的时间,即介质经过管道的时间。此外,如反应器,管道混合,皮带传输,多容量,多个设备串联以及用分析仪表测量流体成分过程等等都存在着比较大的滞后。在这些过程中,由于纯滞后的存在,使得被调量不能及时反映系统所受的扰动,即使测量信号达到调节器,调节机关接受调节信号后立即动作,也需要经过纯滞后时间τ以后,才波及被调量,使之受到控制。因此,这样的过程必然会产生比较明显的超调量和较长的调节时间。所以具有纯滞后的系统认为是最难控制的系统。其控制难度将随着滞后时间τ占整个过程的时间动态的分配份额的增加而增加。一般认为纯滞后的时间τ与过程时间常数T 之比的值大于0.3,则说明该过程具有大滞后的工艺过程。当τ/T 增加,过程中的相位滞后增加,使上述现象更为突出,有时甚至会因为超调量严重而出现聚爆,结焦等停产事故;有时则可能引起系统不稳定,被调量超出安全限,从而危及设备及人身安全。因此大迟滞系统一直被受人们的关注,成为重要的课题之一。

解决的方法很多,最简单的是利用常规调节器适应性强,调整方便的特点,

经过仔细个别的调整,在控制要求不太苛刻的情况下,满足生产过程的要求。1959年由Smith 率先提出了大滞后系统的预估补偿方案,其主要原理是预先估计出被控过程的动态模型,然后将预估器并联在被控过程上,使其对过程中的纯滞后特性进行补偿,力图将被延迟的时间τ的被控量提前送入调节器,因而调节器能提前动作,这样就通过补偿装置消除了纯滞后特性在闭环中的影响。从而可明显地减少过程的超调量、缩短过渡过程时间,有效地改善控制品质,所以它是一种比较理想的大滞后系统控制方案。Smith 预估补偿器方案原理如图3.2所示。

图3.2 Smith 预估补偿器方案原理框图

图中 ()s W c ——PID 调节器;

()s e s W 00τ-——广义被控对象的数学模型,()s W 0为不包括纯滞后时间0τ的对

象模型;

()s W s ——Smith 预估补偿器。

显然,在未进行Smith 预估补偿情况下,系统闭环传递函数为

()()()()()()()s c s c e

s W s W e s W s W s R s C s 00001ττφ--+== (3.6)

故其闭环特征方程式为

()()s c e s W s W 001τ-+=0 (3.7)

()s W c ()s e s W 00τ-

()s W s

R

E C M +

由于在系统特征方程式中出现了纯时间滞后项s e 0τ-,这就在系统中引入了易

造成不稳定的相角滞后,因此增加了系统的控制难度。引入Smith 预估补偿器的目的,是使调节器()s W c 所控制的等效对象中能消除纯滞后部分,即图3.2中应该满足如下关系

()s e s W 00τ-+()s W s =()s W 0 (3.8) 由此可得Smith 预估补偿器的数学模型为

()s W s =()()

s e s W 010τ-- (3.9)

于是,图3.2所示之Smith 预估补偿系统方框图可由图3.3表示。

图3.3 Smith 预估补偿系统一般型框图

图3.3经方框图通过等效变换,可转为如图3.4所示的方框图。

由图3.4显然可得等效Smith 预估系统闭环传递函数为

()()()()()()()

s W s W e s W s W s R s C s c s

c 0010+==-τφ (3.10) 故闭环系统特征方程式为

()()s W s W c 01+=0 (3.11) ()s W c ()s e s W 00τ-

()s W 0R

C s

e 0τ-

图3.4 Smith 等效预估补偿系统框图

这就是Smith 预估补偿的基本思路,即从系统特征方程式中消除纯滞后因素,因而可消除过程纯滞后特性对系统稳定性的不利影响。

3.6 加温炉控制简介

在过程控制系统中,温度控制是一种常见的控制形式,本文主要通过加热炉温度控制的模型结构,来阐述最优控制,即用粒子群算法的思想,来对PID 参数进行自整定。

加热炉对象是一个自衡系统,即在其他条件不变,一定的燃油流量和助燃风量的作用下,炉出口温度和烟气中的氧体积分数是一定的。资料显示,在大多数情况下,自衡对象的动态特性都可以用一阶、一阶滞后、二阶、二阶滞后4种模型来描述。对加热炉测试的结果表明:燃油流量qm(s)及助燃风量挡板开度X (s)对炉出口温度T(s)及烟气中氧体积分数φO2(s)的关系均可用二阶滞后传递函数来描述。设在本控制系统中采用传递函数:

1

148547)(228++=-s s e s W s

(3.12)

4 系统仿真

4.1 工程上的参数整定

对于本文选中的加热炉模型。这里采用临界稳定法对系统进行初始整定,步骤如下:

()s W c ()s W 0s

e 0τ-C R

1. 置调节器的积分时间i T 为最大值,微分时间d T 为0,比例带取适当大小的值,使系统进入运行状态。

2. 待系统运行稳定后,逐渐减小比例带,直到出现等幅振荡为止,即所谓的临界振荡过程。记录下此时的比例带值,并计算两个波峰的间距,记做cr T 。

3. 利用K 和cr T 再按

4.1表所给的计算公式,求出调节器各参数K ,i T ,d T 的数值。

表4.1 临界比例度法计算公式

参数调节规律

比例带δ 积分时间i T 微分时间d T P

2cr δ __ __ PI

2.2cr δ 0.85i T __ PID 1.6cr δ 0.5cr T 0.125cr T

得到初始结果为:

cr T =185-80=105

K=8.02

125.0/1==K δ

根据上表,可以计算用PID 调节器调节时的各参数为:

p K =5.01

i T =52.5,i K =0.0954

d T =13.125,d K =65.75

用工程整定后的仿真图形如下所示.取p K =5.01,i K =0.0954,d K =65.75。

4.2 微粒群算法参数整定

用粒子群算法优化后得到的参数为p K =5.0017,i K =0.0229,d K =65.7811。

4.3 结果比较

图4.1 两种不同方法的仿真曲线

采用工程上的整定方法(临界比例度法)粗略的确定其初始的三个参数,,p i d K K K ????,并通过仿真得到响应曲线,曲线的上升时间虽然比较快,但是过度时间比较长,超调量也过大,这对工程实践是不利的。再采用粒子群算法整定参数,通过粒子群算法对参数优化后的曲线,曲线的各个指标也有了明显的提高,尤其是超调量有了明显的减少,上升时间也有了明显的缩短。这正是我们所期待的。

结论与展望

本设计采用多变量寻优的粒子群算法对控制系统的PID 参数进行优化设计,通过采用工程上的整定方法(临界比例度法)粗略的确定其初始的三个参数,,p i d K K K ????,并采用粒子群算法用SIMULINK 的仿真工具对PID 参数进行优化,

得出系统的响应曲线,比原来得到了良好的改善。但是还有一些地方不足或我不知道的,希望以后还有更大的更进。

(完整word版)基本粒子群算法的原理和matlab程序

基本粒子群算法的原理和matlab程序 作者——niewei120(nuaa) 一、粒子群算法的基本原理 粒子群优化算法源自对鸟群捕食行为的研究,最初由Kennedy和Eberhart提出,是一种通用的启发式搜索技术。一群鸟在区域中随机搜索食物,所有鸟知道自己当前位置离食物多远,那么搜索的最简单有效的策略就是搜寻目前离食物最近的鸟的周围区域。PSO 算法利用这种模型得到启示并应用于解决优化问题。PSO 算法中,每个优化问题的解都是粒子在搜索 空间中的位置,所有的粒子都有一个被优化的目标函数所决定的适应值,粒子还有一个速度值决定它们飞翔的方向和距离,然后粒子群就追随当前的最优粒子在解空间中搜索。 PSO 算法首先在给定的解空间中随机初始化粒子群,待优化问题的变量数决定了解空间的维数。每个粒子有了初始位置与初始速度。然后通过迭代寻优。在每一次迭代中,每个粒子通过跟踪两个“极值”来更新自己在解空间中的空间位置与飞翔速度。第一个极值就是单个粒子本身在迭代过程中找到的最优解粒子,这个粒子叫做个体极值。另一个极值是种群所有粒子在迭代过程中所找到的最优解粒子,这个粒子是全局极值。上述的方法叫全局粒子群算法。如果不用种群所有粒子而只用其中一部分作为该粒子的邻居粒子,那么在所有邻居粒子中的极值就是局部极值,该方法称为局部PSO 算法。 速度、位置的更新方程表示为: 每个粒子自身搜索到的历史最优值p i ,p i=(p i1,p i2,....,p iQ),i=1,2,3,....,n。所有粒子搜索到的最优值p g,p g=(p g1,p g2,....,p gQ),注意这里的p g只有一个。 是保持原来速度的系数,所以叫做惯性权重。 是粒子跟踪自己历史最优值的权重系数,它表示粒子自身的认识,所以叫“认知”。通常设置为2。 是粒子跟踪群体最优值的权重系数,它表示粒子对整个群体知识的认识,所以叫做“社会知识”,经常叫做“社会”。通常设置为2。 是[0,1]区间内均匀分布的随机数。 是对位置更新的时候,在速度前面加的一个系数,这个系数我们叫做约束因子。通常设 置为1 。

粒子群优化算法及其参数设置

毕业论文 题目粒子群算法及其参数设置专业信息与计算科学 班级计算061 学号3060811007 学生xx 指导教师徐小平 2016年 I

粒子群优化算法及其参数设置 专业:信息与计算科学 学生: xx 指导教师:徐小平 摘要 粒子群优化是一种新兴的基于群体智能的启发式全局搜索算法,粒子群优化算法通过粒子间的竞争和协作以实现在复杂搜索空间中寻找全局最优点。它具有易理解、易实现、全局搜索能力强等特点,倍受科学与工程领域的广泛关注,已经成为发展最快的智能优化算法之一。论文介绍了粒子群优化算法的基本原理,分析了其特点。论文中围绕粒子群优化算法的原理、特点、参数设置与应用等方面进行全面综述,重点利用单因子方差分析方法,分析了粒群优化算法中的惯性权值,加速因子的设置对算法基本性能的影响,给出算法中的经验参数设置。最后对其未来的研究提出了一些建议及研究方向的展望。 关键词:粒子群优化算法;参数;方差分析;最优解 II

Particle swarm optimization algorithm and its parameter set Speciality: Information and Computing Science Student: Ren Kan Advisor: Xu Xiaoping Abstract Particle swarm optimization is an emerging global based on swarm intelligence heuristic search algorithm, particle swarm optimization algorithm competition and collaboration between particles to achieve in complex search space to find the global optimum. It has easy to understand, easy to achieve, the characteristics of strong global search ability, and has never wide field of science and engineering concern, has become the fastest growing one of the intelligent optimization algorithms. This paper introduces the particle swarm optimization basic principles, and analyzes its features. Paper around the particle swarm optimization principles, characteristics, parameters settings and applications to conduct a thorough review, focusing on a single factor analysis of variance, analysis of the particle swarm optimization algorithm in the inertia weight, acceleration factor setting the basic properties of the algorithm the impact of the experience of the algorithm given parameter setting. Finally, its future researched and prospects are proposed. Key word:Particle swarm optimization; Parameter; Variance analysis; Optimal solution III

基本粒子群算法的matlab源程序

主函数源程序(main.m) %------基本粒子群优化算法(Particle Swarm Optimization)-----------%------名称:基本粒子群优化算法(PSO) %------作用:求解优化问题 %------说明:全局性,并行性,高效的群体智能算法 %------初始格式化--------------------------------------------------clear all; clc; format long; %------给定初始化条件---------------------------------------------- c1=1.4962;%学习因子1 c2=1.4962;%学习因子2 w=0.7298;%惯性权重 MaxDT=1000;%最大迭代次数 D=10;%搜索空间维数(未知数个数) N=40;%初始化群体个体数目 eps=10^(-6);%设置精度(在已知最小值时候用) %------初始化种群的个体(可以在这里限定位置和速度的范围)------------for i=1:N for j=1:D x(i,j)=randn;%随机初始化位置 v(i,j)=randn;%随机初始化速度 end end %------先计算各个粒子的适应度,并初始化Pi和Pg----------------------for i=1:N p(i)=fitness(x(i,:),D); y(i,:)=x(i,:); end pg=x(1,:);%Pg为全局最优 for i=2:N if fitness(x(i,:),D) pg=x(i,:); end end %------进入主要循环,按照公式依次迭代,直到满足精度要求------------for t=1:MaxDT for i=1:N 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,:),D) p(i)=fitness(x(i,:),D); y(i,:)=x(i,:);

微粒群算法

目录 1绪论 (2) 1.1研究的背景和意义 (2) 1.2常用的参数整定法 (2) 1.3PID参数优化法 (3) 1.4微粒群PID参数优化 (3) 2微粒群算法 (4) 2.1算法起源 (4) 2.2算法原理 (4) 2.3算法流程 (5) 2.4算法特点 (6) 2.5全局模型和局部模型 (7) 2.6带惯性权重的微粒群算法 (7) 2.7微粒群算法的研究现状 (8) 3 PSO算法优化PID参数 (8) 3.1PID控制原理 (8) 3.2PID控制特点 (9) 3.3优化设计简介 (9) 3.4目标函数的选取 (10) 3.5大迟滞系统简介 (11) 3.6加温炉控制简介 (14) 4 系统仿真 (14) 4.1工程上的参数整定 (14) 4.2微粒群算法参数整定 (16) 4.3结果比较 (16) 结论与展望 (16)

1 绪论 1.1 研究的背景和意义 效率是人们追求的最终目标,不断提高解的质量和求解的速度,尽可能地提 高效率以节省时间,顺应现代工业的发展,PID 控制器在智能控制方面起着越来越重要的作用,因为其具有结构简单,鲁棒性好,可靠性高等特点。在工业控制过程中,大多控制都是高阶,时滞和非线性的,所以对PID 控制的参数整定是非常困难的,PID 的控制性能与控制器参数d i p K K K ,,的优化整定直接相关,其参数的整定已成为PID 控制器应用需要解决的首要问题[1]。为解决各种优化问题,人们提出了许多优化算法,比较著名的有蚁群算法、神经网络算法[2]和遗传算法等。优化问题有两个主要问题。一是要求寻找全局最小点,二是要求有较高的收敛速度。蚁群算法适合在图上搜索路径问题,但计算开销会大。神经网络算法,编程和解码过程需要大量CPU 时间,算法易早熟,收敛易陷入局部最优。遗传算法,涉及到繁琐的编码解码过程和很大的计算量。所以到现在还没有万能的优化算法,不同的问题要用合适的算法。 1.2 常用的参数整定法 常用的参数整定方法:实验凑试法、衰减曲线法、临界比例度法、反应曲线 法。实验凑试法是通过闭环运行或模拟,观察系统的响应曲线,然后根据各参数对系统的影响,反复凑试参数,直至出现满意的响应,从而确定PID 控制参数。用衰减曲线法整定调节器参数的方法是:在纯比例作用下,i T 为∞,d T 为0,目的是要得到4:1,衰减振荡过度过程曲线。根据所得曲线,若衰减大于4:1 应调整δ朝小比例带方向;若小于4:1,应调整δ朝大比例带方向。记下4:1的比例带δ,并在记录曲线上求得4:1衰减时的调节周期P T ,然后计算δ,i T ,d T 各值。临界比例度法考虑的实质是通过现场试验找到等幅振荡的过渡过程,得到临界比例度和等幅振荡周期。当操纵变量作阶跃变化时,被控变量随时间变化的曲线称为反应曲线。对有自衡的非振荡过程,广义对象传递函数常可用

用粒子群算法求解多目标优化问题的Pareto解

粒子群算法程序 tic D=10;%粒子群中粒子的个数 %w=0.729;%w为惯性因子 wmin=1.2; wmax=1.4; c1=1.49445;%正常数,成为加速因子 c2=1.49445;%正常数,成为加速因子 Loop_max=50;%最大迭代次数 %初始化粒子群 for i=1:D X(i)=rand(1)*(-5-7)+7; V(i)=1; f1(i)=X(i)^2; f2(i)=(X(i)-2)^2; end Loop=1;%迭代计数器 while Loop<=Loop_max%循环终止条件 %对粒子群中的每个粒子进行评价 for i=1:D k1=find(1==Xv(i,:));%找出第一辆车配送的城市编号 nb1=size(k1,2);%计算第一辆车配送城市的个数 if nb1>0%判断第一辆车配送城市个数是否大于0,如果大于0则 a1=[Xr(i,k1(:))];%找出第一辆车配送城市顺序号 b1=sort(a1);%对找出第一辆车的顺序号进行排序 G1(i)=0;%初始化第一辆车的配送量 k51=[]; am=[]; for j1=1:nb1 am=find(b1(j1)==Xr(i,:)); k51(j1)=intersect(k1,am);%计算第一辆车配送城市的顺序号 G1(i)=G1(i)+g(k51(j1)+1);%计算第一辆车的配送量 end k61=[]; k61=[0,k51,0];%定义第一辆车的配送路径 L1(i)=0;%初始化第一辆车的配送路径长度 for k11=1:nb1+1 L1(i)=L1(i)+Distance(k61(k11)+1,k61(k11+1)+1);%计算第一辆车的配送路径长度end else%如果第一辆车配送的城市个数不大于0则 G1(i)=0;%第一辆车的配送量设为0 L1(i)=0;%第一辆车的配送路径长度设为0 end

粒子群算法的研究现状及其应用

智能控制技术 课程论文 中文题目: 粒子群算法的研究现状及其应用姓名学号: 指导教师: 年级与专业: 所在学院: XXXX年XX月XX日

1 研究的背景 优化问题是一个古老的问题,可以将其定义为:在满足一定约束条件下,寻找一组参数值,使系统的某些性能指标达到最大值或最小值。在我们的日常生活中,我们常常需要解决优化问题,在一定的范围内使我们追求的目标得到最大化。为了解决我们遇到的最优化问题,科学家,们进行了不懈的努力,发展了诸如牛顿法、共轭梯度法等诸多优化算法,大大推动了优化问题的发展,但由于这些算法的低运行效率,使得在计算复杂度、收敛性等方面都无法满足实际的生产需要。 对此,受达尔文进化论的影响,一批新的智能优化算法相继被提出。粒子群算法(PSO )就是其中的一项优化技术。1995 年Eberhart 博士和Kennedy 博士[1]-[3]通过研究鸟群捕食的行为后,提出了粒子群算法。设想有一群鸟在随机搜索食物,而在这个区域里只有一块食物,所有的鸟都不知道食物在哪里。那么找到食物最简单有效的办法就是鸟群协同搜寻,鸟群中的每只鸟负责离其最近的周围区域。 粒子群算法是一种基于群体的优化工具,尤其适用于复杂和非线性问题。系统初始化为一组随机解,通过迭代搜寻最优值,通过采用种群的方式组织搜索,同时搜索空间内的多个区域,所以特别适合大规模并行计算,具有较高的效率和简单、易操作的特性。 目前使用的粒子群算法的数学描述[3]为:设粒子的寻优空间是m 维的,粒子的数目为ps ,算法的最大寻优次数为Iter 。第i 个粒子的飞行速度为T i i1i2im v [v v ]= ,,,v ,位置为T i i1i2im x [x x x ]= ,,,,粒子的个体极值T i i1i2im Pbest [,]P = ,P ,P ,全局极值为 T i i1i2im Gbest [,]g = ,g ,g 。 粒子群算法的寻优过程主要由粒子的速度更新和位置更新两部分组成,其更新方式如下: i+11122v ()()i i i i i v c r Pbest x c r Gbest x =+?+?; i+1i+1i x x v =+, 式中:12c c ,为学习因子,一般取2;12r r ,是均与分布着[0,1]上的随机数。

(完整word版)基本粒子群算法的原理和matlab程序.doc

基本粒子群算法的原理和matlab 程序 作者—— niewei120 (nuaa) 一、粒子群算法的基本原理 粒子群优化算法源自对鸟群捕食行为的研究,最初由Kennedy 和 Eberhart 提出,是一种通 用的启发式搜索技术。一群鸟在区域中随机搜索食物,所有鸟知道自己当前位置离食物多远, 那么搜索的最简单有效的策略就是搜寻目前离食物最近的鸟的周围区域。PSO 算法利用这种模型得到启示并应用于解决优化问题。PSO 算法中,每个优化问题的解都是粒子在搜索 空间中的位置,所有的粒子都有一个被优化的目标函数所决定的适应值,粒子还有一个速度值决定它们飞翔的方向和距离,然后粒子群就追随当前的最优粒子在解空间中搜索。 PSO 算法首先在给定的解空间中随机初始化粒子群,待优化问题的变量数决定了解空间的维数。每个粒子有了初始位置与初始速度。然后通过迭代寻优。在每一次迭代中,每个粒子通过跟踪两个“极值”来更新自己在解空间中的空间位置与飞翔速度。第一个极值就是单个粒子本身在迭代过程中找到的最优解粒子,这个粒子叫做个体极值。另一个极值是种群所有粒子在迭代过程中所找到的最优解粒子,这个粒子是全局极值。上述的方法叫全局粒子群算法。如果不用种群所有粒子而只用其中一部分作为该粒子的邻居粒子,那么在所有邻居粒子中的极值就是局部极值,该方法称为局部PSO 算法。 速度、位置的更新方程表示为: 每个粒子自身搜索到的历史最优值p i,p i=(p i1 ,p i2 ,....,p iQ ), i=1,2,3,....,n 。所有粒子搜索到的最优值p g, p g=(p g1 ,p g2,....,p gQ ),注意这里的p g只有一个。 是保持原来速度的系数,所以叫做惯性权重。 是粒子跟踪自己历史最优值的权重系数,它表示粒子自身的认识,所以叫“认知”。通常设置为 2 。 是粒子跟踪群体最优值的权重系数,它表示粒子对整个群体知识的认识,所以叫做“社会知识”,经常叫做“社会”。通常设置为2。 是[0,1] 区间内均匀分布的随机数。 是对位置更新的时候,在速度前面加的一个系数,这个系数我们叫做约束因子。通常设 置为 1 。

粒子群算法基本原理

4.1粒子群算法基本原理 粒子群优化算法[45]最原始的工作可以追溯到1987年Reynolds 对鸟群社会系统Boids (Reynolds 对其仿真鸟群系统的命名)的仿真研究 。通常,群体的行为可以由几条简单的规则进行建模,虽然每个个体具有简单的行为规则,但是却群体的行为却是非常的复杂,所以他们在鸟类仿真中,即Boids 系统中采取了下面的三条简单的规则: (1)飞离最近的个体(鸟),避免与其发生碰撞冲突; (2)尽量使自己与周围的鸟保持速度一致; (3)尽量试图向自己认为的群体中心靠近。 虽然只有三条规则,但Boids 系统已经表现出非常逼真的群体聚集行为。但Reynolds 仅仅实现了该仿真,并无实用价值。 1995年Kennedy [46-48]和Eberhart 在Reynolds 等人的研究基础上创造性地提出了粒子群优化算法,应用于连续空间的优化计算中 。Kennedy 和Eberhart 在boids 中加入了一个特定点,定义为食物,每只鸟根据周围鸟的觅食行为来搜寻食物。Kennedy 和Eberhart 的初衷是希望模拟研究鸟群觅食行为,但试验结果却显示这个仿真模型蕴含着很强的优化能力,尤其是在多维空间中的寻优。最初仿真的时候,每只鸟在计算机屏幕上显示为一个点,而“点”在数学领域具有多种意义,于是作者用“粒子(particle )”来称呼每个个体,这样就产生了基本的粒子群优化算法[49]。 假设在一个D 维搜索空间中,有m 个粒子组成一粒子群,其中第i 个粒子的空间位置为123(,,,...,)1,2,...,i i i i iD X x x x x i m ==,它是优化问题的一个潜在解,将它带入优化目标函数可以计算出其相应的适应值,根据适应值可衡量i x 的优劣;第i 个粒子所经历的最好位置称为其个体历史最好位置,记为123(,,,...,)1,2,...,i i i i i D P p p p p i m ==,相应的适应值为个体最好适应值 Fi ;同时,每个粒子还具有各自的飞行速度123(,,,...,)1,2,...,i i i i iD V v v v v i m ==。所有粒子经历过的位置中的最好位置称为全局历史最好位置,记为

粒子群算法解决函数优化问题

粒子群算法解决函数优化问题 1、群智能算法研究背景 粒子群优化算法(Particle Swarm Optimization,PSO)是由Kennedy 和Eberhart 在研究鸟类和鱼类的群体行为基础上于1995 年提出的一种群智能算法,其思想来源于人工生命和演化计算理论,模仿鸟群飞行觅食行为,通过鸟集体协作使群体达到优。 PSO算法作为一种新的群智能算法,可用于解决大量非线性、不可微和多峰值的复杂函数优化问题,并已广泛应用于科学和工程领域,如函数优化、神经网络训练、经济调度、模式识别与分类、结构设计、电磁场和任务调度等工程优化问题等。 PSO算法从提出到进一步发展,仅仅经历了十几年的时间,算法的理论基础还很薄弱,自身也存在着收敛速度慢和早熟的缺陷。如何加快粒子群算法的收敛速度和避免出现早熟收敛,一直是大多数研究者关注的重点。因此,对粒子群算法的分析改进不仅具有理论意义,而且具有一定的实际应用价值。 2、国内外研究现状 对PSO算法中惯性权重的改进:Poli等人在速度更新公式中引入惯性权重来更好的控制收敛和探索,形成了当前的标准PSO算法。 研究人员进行了大量的研究工作,先后提出了线性递减权值( LDIW)策略、模糊惯性权值( FIW) 策略和随机惯性权值( RIW) 策略。其中,FIW 策略需要专家知识建立模糊规则,实现难度较大,RIW 策略被用于求解动态系统,LDIW策略相对简单且收敛速度快, 任子晖,王坚于2009 年,又提出了基于聚焦距离变化率的自适应惯性权重PSO算法。 郑春颖和郑全弟等人,提出了基于试探的变步长自适应粒子群算

法。这些改进的PSO算法既保持了搜索速度快的特点, 又提高了全局搜索的能力。 对PSO算法的行为和收敛性的分析:1999 年采用代数方法对几种典型PSO算法的运行轨迹进行了分析,给出了保证收敛的参数选择范围。在收敛性方面Fransvan den Bergh引用Solis和Wets关于随机性算法的收敛准则,证明了标准PSO算法不能收敛于全局优解,甚至于局部优解;证明了保证收敛的PSO算法能够收敛于局部优解,而不能保证收敛于全局优解。 国内的学者:2006 年,刘洪波和王秀坤等人对粒子群优化算法的收敛性进行分析,指出它在满足收敛性的前提下种群多样性趋于减小,粒子将会因速度降低而失去继续搜索可行解的能力,提出混沌粒子群优化算法。 2008 年,黄翀鹏和熊伟丽等人分析惯性权值因子大小对PSO算法收敛性所带来的影响,对粒子群算法进行了改进。2009 年,高浩和冷文浩等人,分析了速度因子对微粒群算法影响,提出了一种基于Gaussian 变异全局收敛的粒子群算法。并证明了它能以概率 1 收敛到全局优解。 2010 年,为提高粒子群算法的收敛性,提出了基于动力系统的稳定性理论,对惯性权重粒子群模型的收敛性进行了分析,提出了使得在算法模型群模型收敛条件下的惯性权重和加速系数的参数约束关系,使算法在收敛性方面具有显著优越性。在PSO算法中嵌入别的算法的思想和技术。 1997年,李兵和蒋慰孙提出混沌优化方法; 1998年,Angeline在PSO算法中引入遗传算法中的选择算子,该算法虽然加快了算法的收敛速度,但同时也使算法陷入局部优的概率大增,特别是在优化Griewank 基准函数的优值时得到的结果不理想; 2004 年,高鹰和谢胜利将混沌寻优思想引入到粒子群优化算法中,首先对当前群体中的优粒子进行混沌寻优, 再用混沌寻优的结果随机替换群体中的一个粒子,这样提出另一种混沌粒子群优化算法。

粒子群算法(1)----粒子群算法简介

粒子群算法(1)----粒子群算法简介 二、粒子群算法的具体表述 上面罗嗦了半天,那些都是科研工作者写论文的语气,不过,PSO的历史就像上面说的那样。下面通俗的解释PSO算法。 PSO算法就是模拟一群鸟寻找食物的过程,每个鸟就是PSO.中的粒子,也就是我们需要求解问题的可能解,这些鸟在寻找食物的过程中,不停改变自己在空中飞行的位置与速度。大家也可以观察一下,鸟群在寻找食物的过程中,开始鸟群比较分散,逐渐这些鸟就会聚成一群,这个群忽高忽低、忽左忽右,直到最后找到食物。这个过程我们转化为一个数学问题。寻找函数y=1-cos(3*x)*exp(-x)的在[0,4]最大值。该函数的图形如下: 当x=0.9350-0.9450,达到最大值y=1.3706。为了得到该函数的最大值,我们在[0,4]之间随机的洒一些点,为了演示,我们放置两个点,并且计算这两个点的函数值,同时给这两个点设置在[0,4]之间的一个速度。下面这些点就会按照一定的公式更改自己的位置,到达新位置后,再计算这两个点的值,然后再按照一定的公式更新自己的位置。直到最后在y=1.3706这个点停止自己的更新。这个过程与粒子群算法作为对照如下: 这两个点就是粒子群算法中的粒子。 该函数的最大值就是鸟群中的食物 计算两个点函数值就是粒子群算法中的适应值,计算用的函数就是粒子群算法中的适应度函数。 更新自己位置的一定公式就是粒子群算法中的位置速度更新公式。 下面演示一下这个算法运行一次的大概过程: 第一次初始化

第一次更新位置 第二次更新位置

第21次更新 最后的结果(30次迭代) 最后所有的点都集中在最大值的地方。

粒子群优化算法及其应用研究

摘要 在智能领域,大部分问题都可以归结为优化问题。常用的经典优化算法都对问题有一定的约束条件,如要求优化函数可微等,仿生算法是一种模拟生物智能行为的优化算法,由于其几乎不存在对问题的约束,因此,粒子群优化算法在各种优化问题中得到广泛应用。 本文首先描述了基本粒子群优化算法及其改进算法的基本原理,对比分析粒子群优化算法与其他优化算法的优缺点,并对基本粒子群优化算法参数进行了简要分析。根据分析结果,研究了一种基于量子的粒子群优化算法。在标准测试函数的优化上粒子群优化算法与改进算法进行了比较,实验结果表明改进的算法在优化性能明显要优于其它算法。本文算法应用于支持向量机参数选择的优化问题上也获得了较好的性能。最后,对本文进行了简单的总结和展望。 关键词:粒子群优化算法最小二乘支持向量机参数优化适应度

目录 摘要...................................................................... I 目录....................................................................... II 1.概述. (1) 1.1引言 (1) 1.2研究背景 (1) 1.2.1人工生命计算 (1) 1.2.2 群集智能理论 (2) 1.3算法比较 (2) 1.3.1粒子群算法与遗传算法(GA)比较 (2) 1.3.2粒子群算法与蚁群算法(ACO)比较 (3) 1.4粒子群优化算法的研究现状 (4) 1.4.1理论研究现状 (4) 1.4.2应用研究现状 (5) 1.5粒子群优化算法的应用 (5) 1.5.1神经网络训练 (6) 1.5.2函数优化 (6) 1.5.3其他应用 (6) 1.5.4粒子群优化算法的工程应用概述 (6) 2.粒子群优化算法 (8) 2.1基本粒子群优化算法 (8) 2.1.1基本理论 (8) 2.1.2算法流程 (9) 2.2标准粒子群优化算法 (10) 2.2.1惯性权重 (10) 2.2.2压缩因子 (11) 2.3算法分析 (12) 2.3.1参数分析 (12) 2.3.2粒子群优化算法的特点 (14) 3.粒子群优化算法的改进 (15) 3.1粒子群优化算法存在的问题 (15) 3.2粒子群优化算法的改进分析 (15) 3.3基于量子粒子群优化(QPSO)算法 (17) 3.3.1 QPSO算法的优点 (17) 3.3.2 基于MATLAB的仿真 (18) 3.4 PSO仿真 (19) 3.4.1 标准测试函数 (19) 3.4.2 试验参数设置 (20) 3.5试验结果与分析 (21) 4.粒子群优化算法在支持向量机的参数优化中的应用 (22) 4.1支持向量机 (22) 4.2最小二乘支持向量机原理 (22)

粒子群优化算法介绍及matlab程序

粒子群优化算法(1)—粒子群优化算法简介 PSO算法就是模拟一群鸟寻找食物的过程,每个鸟就是PSO中的粒子,也就是我们需要求解问题的可能解,这些鸟在寻找食物的过程中,不停改变自己在空中飞行的位置与速度。大家也可以观察一下,鸟群在寻找食物的过程中,开始鸟群比较分散,逐渐这些鸟就会聚成一群,这个群忽高忽低、忽左忽右,直到最后找到食物。这个过程我们转化为一个数学问题。寻找函数y=1-cos(3*x)*exp(-x)的在[0,4]最大值。该函数的图形如下: 当x=0.9350-0.9450,达到最大值y=1.3706。为了得到该函数的最大值,我们在[0, 4]之间随机的洒一些点,为了演示,我们放置两个点,并且计算这两个点的函数值,同时给这两个点设置在[0, 4]之间的一个速度。下面这些点就会按照一定的公式更改自己的位置,到达新位置后,再计算这两个点的值,然后再按照一定的公式更新自己的位置。直到最后在y=1.3706这个点停止自己的更新。这个过程与粒子群算法作为对照如下: 这两个点就是粒子群算法中的粒子。 该函数的最大值就是鸟群中的食物。 计算两个点函数值就是粒子群算法中的适应值,计算用的函数就是粒子群算法中的适应度函数。 更新自己位置的公式就是粒子群算法中的位置速度更新公式。 下面演示一下这个算法运行一次的大概过程: 第一次初始化 第一次更新位置

第二次更新位置 第21次更新 最后的结果(30次迭代) 最后所有的点都集中在最大值的地方。

粒子群优化算法(2)—标准粒子群优化算法 在上一节的叙述中,唯一没有给大家介绍的就是函数的这些随机的点(粒子)是如何运动的,只是说按照一定的公式更新。这个公式就是粒子群算法中的位置速度更新公式。下面就介绍这个公式是什么。在上一节中我们求取函数y=1-cos(3*x)*exp(-x)的在[0, 4]最大值。并在[0,4]之间放置了两个随机的点,这些点的坐标假设为x1=1.5,x2=2.5;这里的点是一个标量,但是我们经常遇到的问题可能是更一般的情况—x 为一个矢量的情况,比如二维z=2*x1+3*x22的情况。这个时候我们的每个粒子均为二维,记粒子P1=(x11,x12),P2=(x21,x22),P3=(x31,x32),......Pn=(xn1,xn2)。这里n 为粒子群群体的规模,也就是这个群中粒子的个数,每个粒子的维数为2。更一般的是粒子的维数为q ,这样在这个种群中有n 个粒子,每个粒子为q 维。 由n 个粒子组成的群体对Q 维(就是每个粒子的维数)空间进行搜索。每个粒子表示为:x i =(x i1,x i2,x i3,...,x iQ ),每个粒子对应的速度可以表示为v i =(v i1,v i2,v i3,....,v iQ ),每个粒子在搜索时要考虑两个因素: 1. 自己搜索到的历史最优值 p i ,p i =(p i1,p i2,....,p iQ ),i=1,2,3,....,n ; 2. 全部粒子搜索到的最优值p g ,p g =(p g1,p g2,....,p gQ ),注意这里的p g 只有一个。 下面给出粒子群算法的位置速度更新公式: 112()()()()k k k k i i i i v v c rand pbest x c rand gbest x ω+=+??-+??-, 11k k k i i i x x av ++=+. 这里有几个重要的参数需要大家记忆,因为在以后的讲解中将会经常用到,它们是: ω是保持原来速度的系数,所以叫做惯性权重。1c 是粒子跟踪自己历史最优值的权重系数,它表示粒子自身的认识,所以叫“认知”。通常设置为2。2c 是粒子跟踪群体最优值的权重系数,它表示粒子对整个群体知识的认识,所以叫做“社会知识”,经常叫做“社会”。通常设置为2。()rand 是[0,1]区间内均匀分布的随机数。a 是对位置更新的时候,在速度前面加的一个系数,这个系数我们叫做约束因子。通常设置为1。这样一个标准的粒子群算法就介绍结束了。下图是对整个基本的粒子群的过程给一个简单的图形表示。 判断终止条件可是设置适应值到达一定的数值或者循环一定的次数。 注意:这里的粒子是同时跟踪自己的历史最优值与全局(群体)最优值来改变自己的位置预速度的,所以又叫做全局版本的标准粒子群优化算法。

粒子群优化算法

什么是粒子群优化算法
粒子群优化算法(Particle Swarm optimization,PSO)又翻译为粒子群算法、微粒群算法、或 粒子群优化算法 微粒群优化算法。是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法。通 常认为它是群集智能 (Swarm intelligence, SI) 的一种。它可以被纳入多主体优化系统 (Multiagent Optimization System, MAOS). 是由 Eberhart 博士和 kennedy 博士发明。 PSO 模拟鸟群的捕食行为。一群鸟在随机搜索食物,在这个区域里只有一块食物。所有的 鸟都不知道食物在那里。但是他们知道当前的位置离食物还有多远。那么找到食物的最优策略是 什么呢。最简单有效的就是搜寻目前离食物最近的鸟的周围区域。 PSO 从这种模型中得到启示并用于解决优化问题。PSO 中,每个优化问题的解都是搜索空 间中的一只鸟。我们称之为“粒子”。所有的粒子都有一个由被优化的函数决定的适应值 (fitnessvalue),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最 优粒子在解空间中搜索。 PSO 初始化为一群随机粒子(随机解),然后通过叠代找到最优解,在每一次叠代中,粒子通 过跟踪两个“极值”来更新自己。第一个就是粒子本身所找到的最优解,这个解叫做个体极值 pBest,另一个极值是整个种群目前找到的最优解,这个极值是全局极值 gBest。另外也可以不 用整个种群而只是用其中一部分最优粒子的邻居,那么在所有邻居中的极值就是局部极值。 [编辑]
PSO 算法介绍[1]
如前所述,PSO 模拟鸟群的捕食行为。设想这样一个场景:一群鸟在随机搜索食物。在这 个区域里只有一块食物。所有的鸟都不知道食物在那里。但是他们知道当前的位置离食物还有多 远 那么找到食物的最优策略是什么呢 最简单有效的就是搜寻目前离食物最近的鸟的周围区域 。 。 。 PSO 从这种模型中得到启示并用于解决优化问题。PSO 中,每个优化问题的解都是搜索空 间中的一只鸟。我们称之为“粒子”。所有的例子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子 在解空间中搜索 PSO 初始化为一群随机粒子(随机解)。然后通过叠代找到最优解。在每一次叠代中,粒子通 过跟踪两个"极值"来更新自己 第一个就是粒子本身所找到的最优解 这个解叫做个体极值 pBest. 。 。 另一个极值是整个种群目前找到的最优解。这个极值是全局极值 gBest。另外也可以不用整个种 群而只是用其中一部分最为粒子的邻居,那么在所有邻居中的极值就是局部极值。 在找到这两个最优值时, 粒子根据如下的公式来更新自己的速度和新的位置

经典算法优缺点

根据电为系统无功优化问题非线性、多约束、多目标、连续和离散变量共存的 特点[3],目前无功优化研究的关键点主要集中在两个问题上,第一个是建立合适的无功优化数学模型,第二个是选择合适的无功优化方法。针对第一个问题,一般采 取的是具体问题具体分析,建立的数学模型首先要符合电力系统的运行情况和各项 约束,其次再根据个人偏好确定所需的目标函数。针对第二个问题,目前广泛使用 的无功优化方法主要分为两类:经典数学优化方法和新型人工智能优化方法,这两 类方法在电力系统无功优化问题上都得到了广泛的应用。 1.2.1经典数学优化算法 经典数学优化算法的基本思路大致都是:先选定某一合适的初值,进行不断迭 代,当满足迭代结束条件时,收敛到局部或者全局最优解。无功优化中最常见的数 学优化算法主要包括线性规划法W、非线性规划法W、混合整数规划法及动态规 划法m等等。 线性规划法的原理是对目标函数和约束条件运用泰勒公式进行数学变换,变换 后略去高次项,这样就把电力系统无功优化这一非线性问题转换为线性问题。典型 的线性规划法主要有内点法W和灵敏度分析法W。这类方法的优势在于方法成熟、 模型简单、求解速度快、收敛性好。但是把非线性问题运用线性化的方法解决必然 会带来一系列误差。首先是对于大型电网,线性规划法的收敛精度可能存在较大的 误差,其次是步长的选择问题,步长过大会导致反复偏离最优解而产生振荡,步长 过小则会导致算法的收敛速度变慢。显然,要针对不同系统选择合适的步长,因此 算法的通用性不强。最后,线性规划法对初值和函数的凹凸性都有一定要求,W上 这些缺陷使其在应用和发展上都存在一定局限性。 (2)非线性规划法 非线性规划法的原理是通过引入拉格朗日系数或惩罚系数将含约束的优化问题 转换为序列无约束优化问题或者线性规划问题求解,是一种能处理系统优化模型中 各类约束条件或目标函数至少有^个是非线性函数的规划方法。因为电力系统无功 优化问题本身就是非线性优化问题,所L乂非线性规划法更加适合求解电力系统无功优化问题。典型的非线性规划法主要有简化梯度法W、牛顿法和二次规划法U23。这类方法优势主要是模型精确,方法简单,计算精度高,但其缺点也十分明显,如 计算量大、稳定性不好、某些不等式和高维问题难LjA处理等等,尤其是电力系统无功优化的控制变量既有连续变量又有离散变量且各类等式不等式约束较多,这就大 大限制了非线性规划法的作用。 (3)混合整数规划法 混合整数规划法是一种处理含离散变量问题的方法,主要的原理是先取好整数 变量,再用上述线性或非线性规划法处理连续变量。送比直接将离散变量当做连续 变量优化,然后再对其取整有一定优势。因此,混合整数规划法十分适合优化电刀 系统无功优化的某些控制变量,如变压器的抽头位置和电容器组的投切数目。这类 方法的优势主要是能更精确的处理优化过程中的离散变量,但也存在一系列问题, 如随着维数提升,计算量成倍増加,容易产生"维数灾",尤其随着电力系统规模 的不断增大,混合整数规划法的作用将会大大受限。所tU兑,混合整数规划法一般适用于规模较小的电力系统无功优化研究。典型的混合整数规划法主要有分支界定 法山]。 3

c语言实现的粒子群算法代码及解释

//粒子群PSO算法 #include #include #include #include #define PI 3.141592653589 /* */ #define P_num 200 //粒子数目 #define dim 50 #define low -100 //搜索域范围 #define high 100 #define iter_num 1000 #define V_max 20 //速度范围 #define c1 2 #define c2 2 #define w 0.5 #define alp 1 double particle[P_num][dim]; //个体集合 double particle_loc_best[P_num][dim]; //每个个体局部最优向量 double particle_loc_fit[P_num]; //个体的局部最优适应度,有局部最优向量计算而来double particle_glo_best[dim]; //全局最优向量 double gfit; //全局最优适应度,有全局最优向量计算而来double particle_v[P_num][dim]; //记录每个个体的当前代速度向量 double particle_fit[P_num]; //记录每个粒子的当前代适应度 double Sphere(double a[]) { int i; double sum=0.0; for(i=0; i

粒子群算法

摘要:,粒子群算法据自己的速度来决定搜索过程,只有最优的粒子把信息给予其他的粒子,整个搜索更新过程是跟随当前最优解的过程,所有的粒子还可以更快的收敛于最优解。由于微粒群算法简单,容易实现,与其它求解约束优化问题的方法相比较,具有一定的优势。实验结果表明,对于无约束的非线性求解,粒子群算法表现出较好的收敛性和健壮性。 关键词:粒子群算法;函数优化;极值寻优 0 引言 非线性方程的求根问题是多年来数学家努力解决的问题之一。长期以来,人们已找出多种用于解决方程求根的方法,例如牛顿法、弦割法、抛物线法等。然而,很多传统的方法仅能运用于相应的小的问题集,推广性相对较差。对于一个现实世界中的优化问题,必须尝试很多不同的方法,甚至要发明相应的新的方法来解决,这显然是不现实的。我们需要另外的方法来克服这样的困难。 粒子群算法是一种现代启发式算法,具有推广性强、鲁棒性高等特点[1]。该算法具有群体智能、内在并行性、迭代格式简单、可快速收敛到最优解所在区域等优点[2]。本文采用粒子群算法,对函数的极值进行寻优计算,实现了对函数的极值求解。 1 粒子群算法 1.1 基本原理 粒子群算法(PSO)是一种基于群体的随机优化技术,它的思想来源于对鸟群捕食行为的研究与模拟。粒子群算法与其它基于群体的进化算法相类似,选用“群体”和“进化”的概念,按照个体的适应度值进行操作,也是一种基于迭代的寻优技术。区别在于,粒子群算法中没有交叉变异等进化算子,而是将每个个体看作搜索空间中的微粒,每个微粒没有重量和体积,但都有自己的位置向量、速度向量和适应度值。所有微粒以一定的速度飞行于搜索空间中,其中的飞行速度是由个体飞行经验和群体的飞行经验动态调整,通过追踪当前搜索到的最优值来寻找全局最优值。 1.2 参数选择 粒子群算法需要修改的参数很少,但对参数的选择却十分敏感。El-Gallad A, El-Hawary M, Sallam A, Kalas A[3]主要对算法中的种群规模、迭代次数和粒子速度的选择方法进行了详细分析,利用统计方法对约束优化问题的求解论证了这3 个参数对算法性能的影响,并给出了具有一定通用性的3 个参数选择原则[4]。 种群规模:通常根据待优化问题的复杂程度确定。 最大速度:决定粒子在一次迭代中的最大移动距离,通常设定为不超过粒子的范围宽度。 加速常数:加速常数c1和c2通常是由经验值决定的,它代表粒子向pbest和gbest靠拢的加速项的权重。一般取值为:c1=c2=2。 中止条件:达到最大迭代次数或得到最小误差要求,通常要由具体问题确定。 惯性权重:惯性权重能够针对待优化问题调整算法的局部和全局搜索能力。当该值较大时有利于全局搜索,较小时有利于局部搜索。所以通常在算法开始时设置较大的惯性权重,以便扩大搜索范围、加快收敛。而随着迭代次数的增加逐渐减小惯性权重的值,使其进行精确搜索,避免跳过最优解。 1.3 算法步骤 PSO算法步骤如下: Step1:初始化一个规模为m 的粒子群,设定初始位置和速度。 初始化过程如下: (1)设定群体规模m; (2)对任意的i,s,在[-xmax, xmax]内均匀分布,产生初始位置xis; (3)对任意的i,s,在[-vmax, vmax]内均匀分布,产生速度vis;

相关主题
文本预览
相关文档 最新文档