粒子群算法基本原理

粒子群算法基本原理
粒子群算法基本原理

4.1粒子群算法基本原理

粒子群优化算法[45]最原始的工作可以追溯到1987年Rey nol ds 对鸟群社

会系统Boids (Re ynolds 对其仿真鸟群系统的命名)的仿真研究 。通常,群体的行为可以由几条简单的规则进行建模,虽然每个个体具有简单的行为规则,但是却群体的行为却是非常的复杂,所以他们在鸟类仿真中,即B oids 系统中采取了下面的三条简单的规则:

(1)飞离最近的个体(鸟),避免与其发生碰撞冲突;

(2)尽量使自己与周围的鸟保持速度一致;

(3)尽量试图向自己认为的群体中心靠近。

虽然只有三条规则,但Boid s系统已经表现出非常逼真的群体聚集行为。但Reyno lds 仅仅实现了该仿真,并无实用价值。

1995年Kenne dy [46-48]和Eb er har t在Reyn ol ds 等人的研究基础上创造性地提出了粒子群优化算法,应用于连续空间的优化计算中 。K en ne dy 和Ebe rh art 在boids 中加入了一个特定点,定义为食物,每只鸟根据周围鸟的觅食行为来搜寻食物。Ken nedy 和Eberh art 的初衷是希望模拟研究鸟群觅食行为,但试验结果却显示这个仿真模型蕴含着很强的优化能力,尤其是在多维空间中的寻优。最初仿真的时候,每只鸟在计算机屏幕上显示为一个点,而“点”在数学领域具有多种意义,于是作者用“粒子(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 iD P p p p p i m ==,相应的适应值为个体最好适应值 Fi ;同时,每个粒子还具有各自的飞行速度123(,,,...,)1,2,...,i i i i iD V v v v v i m ==。所有粒子经历过的位置中的最好位置称为全局历史最好位置,记为

123(,,,...,)D Pg Pg Pg Pg Pg =,相应的适应值为全局历史最优适应值 。在基本P SO 算法中,对第n 代粒子,其第 d 维(1≤d ≤D )元素速度、位置更新迭代如式(4-1)、(4-2):

11122()()n n n n n n id id id id gd id v v c r p x c r p x ω+=?+??-+??- (4-1) 1n n n id id id x x v +=+ (4-2)

其中:ω为惯性权值;c 1 和c 2 都为正常数,称为加速系数;r1 和r2 是两个在[0, 1]范围内变化的随机数。第 d 维粒子元素的位置变化范围和速度变化范围分别限制为,min ,max ,d d X X ????和,min ,max ,d d V V ????。迭代过程中,若某一维粒子元素的id X 或id V 超出边界值则令其等于边界值。

粒子群速度更新公式(4-1)中的第 1部分由粒子先前速度的惯性引起,为“惯性”部分;第 2 部分为“认知”部分,表示粒子本身的思考,即粒子根据自身历史经验信息对自己下一步行为的影响;第 3部分为“社会”部分,表示粒子之间的信息共享和相互合作,即群体信息对粒子下一步行为的影响。

基本PSO 算法步骤如下:

(1)粒子群初始化;

(2)根据目标函数计算各粒子适应度值,并初始化个体、全局最优值;

(3)判断是否满足终止条件,是则搜索停止,输出搜索结果;否则继续下步; (4)根据速度、位置更新公式更新各粒子的速度和位置;

(5)根据目标函数计算各粒子适应度值;

(6)更新各粒子历史最优值以及全局最优值;

(7)跳转至步骤3。

对于终止条件,通常可以设置为适应值误差达到预设要求,或迭代次数超过最大允许迭代次数。

基本的连续 PS O 算法中,其主要参数,即惯性权值、加速系数、种群规模和迭代次数对算法的性能均有不同程度的影响 。

惯性权值ω的取值对 P SO 算法的收敛性能至关重要。在最初的基本粒子群算法中没有惯性权值这一参数 。最初的 PS O 算法容易陷入局部最小,于是

在其后的研究中引入了惯性权值来改善PSO 算法的局部搜索能力,形成了目前常用的基本PSO算法形式。取较大的ω值使得粒子能更好地保留速度,从而能更快地搜索解空间,提高算法的收敛速度;但同时由于速度大可能导致算法无法更好地进行局部搜索,容易错过最优解,特别是过大的ω会使得PSO 算法速度过大而无法搜索到全局最优。取较小的ω值则有利于局部搜索,能够更好地搜索到最优值,但因为粒子速度受其影响相应变小从而无法更快地进行全局搜索,进而影响算法收敛速度;同时过小ω值更是容易导致算法陷入局部极值。因此,一个合适的ω值能有效兼顾搜索精度和搜索速度、全局搜索和局部搜索,保证算法性能。

加速系数c1 和c2 代表每个粒子向其个体历史最好位置和群体全局历史最好位置的移动加速项的权值。较低的加速系数值可以使得粒子收敛到其最优解的过程较慢,从而能够更好搜索当前位置与最优解之间的解空间;但过低的加速系数值则可能导致粒子始终徘徊在最优邻域外而无法有效搜索目标区域,从而导致算法性能下降。较高的加速系数值则可以使得粒子快速集中于目标区域进行搜索,提高算法效率;但过高的加速系数值则有可能导致粒子搜索间隔过大,容易越过目标区域无法有效地找到全局最优解。因此加速系数对PSO能否收敛也起重要作用,合适的加速系数有利于算法较快地收敛,同时具有一定的跳出局部最优的能力。

对于速度更新公式(4-1)中,若c1= c2= 0,粒子将一直以当前的速度进行惯性飞行,直到到达边界。此时粒子仅仅依靠惯性移动,不能从自己的搜索经验和其他粒子的搜索经验中吸取有用的信息,因此无法利用群体智能,PSO 算法没有启发性,粒子只能搜索有限的区域,很难找到全局最优解,算法优化性能很差。若c= 0,则粒子没有认知能力,不能从自己的飞行经验吸取有效信息,只有社会部分,所以c又称为社会参数;此时收敛速度比基本PSO 快,但由于不能有效利用自身的经验知识,所有的粒子都向当前全局最优集中,因此无法很好地对整个解空间进行搜索,在求解存在多个局部最优的复杂优化问题时比基本P SO容易陷入局部极值,优化性能也变差。若c2=0,则微粒之间没有社会信息共享,不能从同伴的飞行经验中吸取有效信息,只有认知部分,所以c 又称为认知参数;此时个体间没有信息互享,一个规模为m的粒子群等价于m 个

1单个粒子的运行,搜索到全局最优解的机率很小。

PSO算法中,群体规模对算法的优化性能也影响很大。一般来说,群体规模越大,搜索到全局最优解的可能性也越大,优化性能相对也越好;但同时算法消耗的计算量也越大,计算性能相对下降。群体规模越小,搜索到全局最优解的可能性就越小,但算法消耗的计算量也越小。群体规模对算法性能的影响并不是简单的线性关系,当群体规模到达一定程度后,再增加群体规模对算法性能的提升有限,反而增加运算量;但群体规模不能过小,过小的群体规模将无法体现出群智能优化算法的智能性,导致算法性能严重受损。

对于最大允许迭代次数,较大的迭代次数使得算法能够更好地搜索解空间,因此找到全局最优解的可能性也大些;相应地,较小的最大允许迭代次数会减小算法找到全局最优解的可能性。对于基本连续PSO 来说,由于缺乏有效的跳出局部最优操作,因此粒子一旦陷入局部极值后就难以跳出,位置更新处于停滞状态,此时迭代次数再增多也无法提高优化效果,只会浪费计算资源。但过小的迭代次数则会导致算法在没有对目标区域实现有效搜索之前就停止更新,将严重影响算法性能。此外,随机数可以保证粒子群群体的多样性和搜索的随机性。最大、最小速度可以决定当前位置与最好位置之间区域的分辨率(或精度)。如果最大速度(或最小速度)的绝对值过大,粒子可能会因为累积的惯性速度太大而越过目标区域,从而无法有效搜索到全局最优解;但如果最大速度(或最小速度)的绝对值过小,则粒子不能迅速向当前全局最优解集中,对其邻域进行有效地搜索,同时还容易陷入局部极值无法跳出。

因此,最大、最小速度的限制主要是防止算法计算溢出、改善搜索效率和提高搜索精度。基本PSO 算法中只涉及基本的加、减、乘运算操作,编程简单,易于实现,关键参数较少,设定相对简单,所以引起了广泛的关注,目前已有多篇文献对PSO算法进行综述。

为了进一步提高基本PSO 算法的寻优性能,大量研究工作致力于对基本PS O算法的改进,主要集中于:

(1)对PSO 算法更新公式参数、结构的改进

主要是对基本PSO 算法的速度、位置更新公式中的参数、结构进行调节和增加,以进一步提高算法的优化性能,如引入了惯性权值的PSO算法、自适

应惯性权值PSO]算法 、模糊自适应惯性权值 PS O 算法、带收缩因子的 PSO 算法、Kal man 粒子群算法、带邻域算子的PSO 算法、具有社会模式的簇分析 PS O算法 、被动集合P SO 算法等等。

(2)多群、多项PS O 算法

多群PSO 算法即引入多个群体进行优化搜索 ;而多相 P SO 算法中多群体的各个群体对不同的搜索目标以不同的方式进行搜索 。

(3)混合 PSO 算法

混合 PS O 算法的基本思想就是将 PSO 算法与其它不同算法相结合,实现优势互补,从而进一步提高PSO 算法的寻优性能,如模拟退火PS O 算法 、G A-PS O 混合算法等等。

在工程应用中,目前PS O算法在函数优化 、神经网络训练 、调度问题 、故障诊断 、建模分析 、电力系统优化设计 、模式识别 、图象处理 、数据挖掘 等众多领域中均有相关的研究应用报道,取得了良好的实际应用效果。

4.2离散二进制PS O算法

离散二进制优化算法具有很多优势,首先对于纯组合优化问题的表达形式要求优化算法是离散的,其次二进制算法可以表达浮点数,因此也同样适用于连续空间的问题求解。

4.2.1 KBP SO 算法

PSO 算法最初是用来对连续空间问题进行优化的,为了解决离散优化问题Kennedy 和 Eb er har t 于 1997 年在基本 PS O 的基础上提出了一种离散二进制 P SO (KB PS O)算法。在 KB PSO 算法中,粒子定义为一组由0,1 组成的二进制向量。KBPS O保留了原始的连续PS O 的速度公式(4-1),但速度丧失了原始的物理意义。在 KBPSO 中,速度值vi d 通过预先设计的 S形限幅转换函数()id Sig v 转换为粒子元素id x 取“1”的概率。速度值id v 越大,则粒子元素位置id x 取1的可能性越大,反之则越小。

11122()()n n n n n n id id id id gd id v v c r p x c r p x ω+=?+??-+??- (4-1)

1

()1exp()id id Sig v v =+-

(4-3)

1()()0

id id if rand Sig v x otherwise ?≤?=??

(4-4)

其中()id Sig v 为Sigmoid 函数,通常为防止速度过大,令min max [,]id id id v v v ∈,以使概率值不会过于接近0或1,保证算法能以一定的概率从一种状态跃迁到另一种状态,防止算法早熟。

虽然K enn de dy 和E ber hart 将KBPS O应用于函数优化问题,并验证了KBPS O的有效性,但基于KB PSO 的应用研究有限。

4.2.2 SBPS O算法 基于连续基本 PS O 算法的信息机制,Shen 等人提出一种改进的离散二进制粒子群算法(SBPSO)用于 Q SAR (Quan titat ive Structure -activ ity rel atio nship )建模的特征选择中。SBPSO 算法中舍弃了基本 PS O 算法中速度、位置更新公式,重新定义速度i v 为一个在0到1之间的随机数,粒子元素的位置id x 则根据下列规则由随机产生的id v 确定:

1(0)n n id id id x x if v α+=<≤ (4-5)

11((1))2n n id id id x P if v αα+=<≤+ (4-6)

1

1((1)1)2n n

id gd id x P if v α+=+<≤

(4-7)

其中α∈(0,1)称为静态概率(st atic pro bability ),是 SBP SO 算法中唯一可调参数,它可以是一个常数、一个变量或是一个随机数。

虽然SB PSO 的更新公式在形式上与KBP SO 以及基本的PSO 算法都有很大的改变但其基本的思想不变,即:每个粒子都只与自身历史最优值和全局最优值进行信息交流BPS O 位置更新公式(4-5)类似于基本连续 PSO 速度更新公式(4-1)中的第一项,都是一种“惯性”的表现,只不过S BPSO 是停留在原来的位置,而P SO 中是根据速度惯性继续搜索。同样,SB PSO 位置更新公式(4-6)、(4-7) 则分别对应了基本 PSO 速度更新中的第二、三项,分别代表了粒子的“认知”部分和“社会”部分,表示粒子自身和社会群体对粒子下一步行为的影响。式(4-5)增强了 S BPS O 算法的全局搜索能力,使得粒子能够有效地对目标区域进行搜索,找出全局最优解。没有式(4-5),粒子将完全跟随自己的两个最优解“飞行”,从而容易陷入局部最优值。式(4-6)、(4-7) 则根据先前的搜索经验对粒子搜索进行指导,没有这两项,S BP SO 算法则变成了完全的随机搜索。因此,在SBPSO 算法中,静态概率α 替代了基本 PSO 算法中的ω,c1,c2 等参数,对算法的性能至关重要。较大的α 值能使得算法更好地搜索解空间,从而能够更好地跳出局部最优搜索到全局最优;但过大的α 值则会导致算法无法充分利用已有的寻优信息,致使算法收敛速度过慢。较小的α 值可以使得粒子快速集中于最优邻域,提高收敛速度,但容易导致算法陷入局部最优。

4.3离散二进制PS O算法参数性能分析

为了全面地比较、衡量离散二进制P SO 算法中关键参数对算法优化性能的影响程度,本文中以标准优化测试函数为对象进行算法优化性能的仿真实验,并按照以下统计指标进行评价。

(1)最优率

群智能优化算法是一种全局随机性启发式算法,由于算法的随机性,在对复杂优化问题求解时,并不能保证算法以 1的概率收敛到全局最优解。但对于优化

算法来说,在一定的运算规模内找到全局最优解最为重要。因此,采用最优率——即优化算法搜索到全局最优解的概率,作为算法性能评价的第一指标。在本文中,每个算法对标准函数均优化求解100次,其中成功搜索到全局最优解的比例即为最优率。

(2)最优适应值、平均最优适应值

最优适应值是优化算法寻优时所找到的最好解,平均最优适应值(简称平均最优值是对优化问题多次求解后搜索到的最优解适应度值的平均值。最优适应值可以衡量算法的优化性能,看其能否找到全局最优解,而平均最优适应值则衡量算法性能对随机初值和操作的依赖程度。平均最优适应值越接近全局最优解适应度值,说明该优化算法对随机初值和操作的依赖程度越低、算法的鲁棒性越高。

(3)收敛时间

收敛时间是优化算法寻优时所要考虑的另一项重要指标。收敛时间越短,则算法的收敛速度越快,消耗的计算资源就越少;反之,收敛时间越长,则算法的收敛速度越慢,所需的计算资源就越多。在本文中分别以最快收敛步数——即算法搜索到全局最优解的最少迭代次数,和平均收敛时间——即算法多次寻优找到全局最优解迭代步数的平均值,作为考察指标。最优收敛步数能够表明算法搜索能力,但考虑到群智能算法的随机性,因此平均收敛步数能更好地表征算法的搜索能力。

4.4改进的离散二进制PSO算法

离散二进制PSO算法具有基本PSO 算法的简单、易实现等优点,特别是SBPSO算法,其算法中调节参数只有静态概率;但同时也继承了基本PSO算法易陷入局部最优的缺陷。针对这一问题,对于连续空间PSO 算法目前已经有大量文献报道对PSO 算法的改进研究[50-52];但对于离散二进制PSO算法的改进工作目前相关的研究报道还很少。本章在基本离散二进制PSO算法的基础上,引入变异操作用以改进离散二进制PSO 算法,提高其性能。

在遗传算法(Genetic Algorithm,GA)中,如果种群收敛到早熟集(pre mature set)GA 算法将基本失去对解空间的搜索能力。对于如何避免过早收敛,GA 算法中在遗传算子、种群规模、遗传漂浮(genetic drift)方面均有

相关的研究。其中,在遗传算子方面,献中指出GA 的三种基本遗传算子中交叉与选择算子只具有局部搜索能力,它们的搜索范围只由当前种群决定,而变异算子是唯一具有全局搜索能力的遗传算子。根据模式定理,变异算子在遗传算法中的作用主要是使种群保持一定的多样性,避免群体陷入局部最优无法跳出。变异算子虽然具有全局搜索能力,但在实际应用中变异率不能取值过大,否则将破坏算法固有的搜索机制,无法有效利用已有信息,使得算法退化为随机搜索算法。但变异率也并不是越小越好,在GA 中变异算子对于遗传算法不仅是必需的,而且在变异算子的作用不至于使算法退化为随机搜索的前提下应尽量加大变异率,否则算法易陷入局部最优。由于变异算法能有效地保持群体的多样性,一定程,度地提高了算法跳出局部最优的概率,且操作简单,因此得到了广泛的研究与应用,并被成功引入至粒子群算法基本的离散二进制PSO算法,特别是SBPSO算法,易于陷入局部最优。虽然KBPSO算法中最大速度的设定使得粒子每个比特至少具有一定概率变异,但当算法迭代一定次数后,由于速度较大,变异的概率过小,此时难以有效引入新的模式帮助群体跳出局部最优;而SBPSO 算法则完全缺乏跳出局部最优的手段。因此为了提高二进制PSO算法的搜索能力,在基本的离散二进制PSO 算法中引入变异操作,但为了能有效利用群智能保证算法搜索性能,变异概率不能设置过大,以防止破坏PSO 算法的迭代机制影响算法优化性能。

与二进制编码的GA 一样,在DBPSO 算法中变异操作的实施也可采用多种措施,如单点变异、多点变异,其变异概率也可以采用确定值或复杂的自适应参数等等。由于在DBPSO算法中,新的粒子主要是通过DBPSO的位置更新公式实现,变异操作的引入只是为了保持群体的多样性,防止早熟,因此本文采用简单的变异策略,即设定变异概率pm,新一代粒子群中每一位比特都以概率pm实施变异操作。

通过上面的介绍我们来分析一下对循环流化床床温的PSO算法改进的一般过程为如下所示:

(1)确定每个参数的大致范围和编码长度,进行编码。上述床温温控问题最主要是对P,I,D 三个参数进行调节,我们去每个参数的为10位长度,即取10位二进制长度为其编码长度,而总共有三个参数,那么总的编码长度为30位二进制长度。

(2)随机产生n 个个体构成初始种群。这个个体是根据实际情况来选择的,这里我们把这个个体选成30,即每30个个体构成一个种群。

(3)将种群中各个体解码成对应的参数值,,用此参数求代价函数值J 及其适应函数值f,取f=1/J。

(4)应用PSO 算法,即分别运用KBP SO 和SBP SO 对种群P(t )进行操作,分别运用个体最优和群体最优对种群进行如上面所示的优化,产生下一代种群P (t+1),同时运用变异的原理对新产生的种群进行变异,使其保证PS O的收索性能;这里我们选取100代种群。

(5)重复步骤(3)和(4)直至参数收敛,达到预期的目标。

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

毕业论文 题目粒子群算法及其参数设置专业信息与计算科学 班级计算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

基于粒子群优化算法的图像分割

安康学院 学年论文(设计) 题目_____________________________________________ 学生姓名_______________ 学号_____________________________ 所在院(系)_______________________________________ 专业班级__________________________________________________ 指导教师_____________________________________________ 年月曰

基于粒子群优化算法的图像分割 (作者:) () 指导教师: 【摘要】本文通过对粒子群优化算法的研究,采用Java编程,设计出一套用于图像分割的系统。 基于粒子群优化算法的图像分割系统,可以将一幅给定的图像进行分割,然后将分割结果保存。图像分割的目的是将感兴趣的区域从图像中分割出来,从而为计算机视觉的后续处理提供依据。图像分割的方法有多种,阈值法因其实现简单而成为一种有效的图像分割方法。而粒子群优化(PSO)算法是一类随机全局优化技术,它通过粒子间的相互作用发现复杂搜索空间中的最优区域缩短寻找阈值的时间。因此,基于粒子群优化算法的图像分割以粒子群优化算法为寻优工具,建立具有自适应和鲁棒性的分割方法。从而可以在最短的时间内,准确地确定分割阈值。 关键词:粒子群优化(PSO,图像分割,阈值法,鲁棒性 Abstract T his paper based on the particle swarm optimizati on algorithm, desig ns a set of system for image segme ntati on using Java program min g. Image segme ntati on system based on particle swarm optimizati on algorithm, the image can be a given segmentation, and then the segmentation results would be saved. Image segmentation is the purpose of the interested area from the image, thus providing the basis for the subsequent processing of computer vision. There are many methods of image segmentation, threshold method since its simple realization, becomes a kind of effective method in image segmentation. Particle swarm optimization (PSO) algorithm is a stochastic global optimization technique; it finds optimal regions of complex search spaces for threshold time shorte ned through the in teractio n betwee n particles. Therefore, particle swarm optimization algorithm of image segmentation based on particle swarm optimization algorithm based on optimizati on tools; establish segme ntati on method with adaptive and robust. Therefore, it is possible for us in the shortest possible time to accurately determ ine the segme ntati on threshold. Key word s: PSO, image segmentation, threshold method, robust. 1引言 1.1研究的背景和意义 技术的不断向前发展,人们越来越多地利用计算机来获取和处理视觉图像信息。据统计,人类

matlab粒子群优化算法进行传感器优化配置程序

1.Pso算法 function [xm,fv] = SAPSO( fitness,N,c1,c2,wmax,wmin,M ) % fitness 适应度函数 % N 种群个数 % c1 % c2 % wmax 最大权重 % wmin 最小权重 % M 迭代次数 cg=32;%传感器个数 format long; %-----------------------初始化种群个体 ------------------------------------- for i=1:N %粒子个数为n a1=-17.5:10:12.5; a11=a1*(i+5)/10; [a2,a3]=meshgrid(a1,a11); a4=reshape(a2,1,16); a5=reshape(a3,1,16); b1=-12.5:10:17.5; b11=b1*(i+5)/10; [b2,b3]=meshgrid(b1,b11); b4=reshape(b2,1,16); b5=reshape(b3,1,16); x11=[a4,b4;a5,b5]+20;%ó|ó?μè±èàyà?é¢y1ì?¨ x(:,:,i)=x11';%初始化传感器个数为20 v(:,:,i)=10*rand(cg,2); 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))

基于MATLAB的粒子群优化算法的应用示例

对于函数f=x*sin(x)*cos(2*x)-2*x*sin(3*x),求其在区间[0,20]上该函数的最大值。 ?初始化种群 已知位置限制[0,20],由于一维问题较为简单,因此可以取初始种群N 为50,迭代次数为100,当然空间维数d 也就是1。 位置和速度的初始化即在位置和速度限制内随机生成一个N×d 的矩阵,对于此题,位置初始化也就是在0~20内随机生成一个50×1的数据矩阵,而对于速度则不用考虑约束,一般直接在0~1内随机生成一个50×1的数据矩阵。 此处的位置约束也可以理解为位置限制,而速度限制是保证粒子步长不超限制的,一般设置速度限制为[-1,1]。 粒子群的另一个特点就是记录每个个体的历史最优和种群的历史最优,因此而二者对应的最优位置和最优值也需要初始化。其中每个个体的历史最优位置可以先初始化为当前位置,而种群的历史最优位置则可初始化为原点。对于最优值,如果求最大值则初始化为负无穷,相反地初始化为正无穷。 每次搜寻都需要将当前的适应度和最优解同历史的记录值进行对比,如果超过历史最优值,则更新个体和种群的历史最优位置和最优解。 ?速度与位置的更新

速度和位置更新是粒子群算法的核心,其原理表达式和更新方式如下: 每次更新完速度和位置都需要考虑速度和位置的限制,需要将其限制在规定范围内,此处仅举出一个常规方法,即将超约束的数据约束到边界(当位置或者速度超出初始化限制时,将其拉回靠近的边界处)。当然,你不用担心他会停住不动,因为每个粒子还有惯性和其他两个参数的影响。 代码如下: clc;clear;close all; %% 初始化种群 f= @(x)x .* sin(x) .* cos(2 * x) - 2 * x .* sin(3 * x); % 函数表达式figure(1);ezplot(f,[0,0.01,20]); N = 50; % 初始种群个数 d = 1; % 空间维数 ger = 100; % 最大迭代次数 limit = [0, 20]; % 设置位置参数限制 vlimit = [-1, 1]; % 设置速度限制 w = 0.8; % 惯性权重 c1 = 0.5; % 自我学习因子 c2 = 0.5; % 群体学习因子 for i = 1:d

(完整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 。

粒子群优化算法介绍及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。这样一个标准的粒子群算法就介绍结束了。下图是对整个基本的粒子群的过程给一个简单的图形表示。 判断终止条件可是设置适应值到达一定的数值或者循环一定的次数。 注意:这里的粒子是同时跟踪自己的历史最优值与全局(群体)最优值来改变自己的位置预速度的,所以又叫做全局版本的标准粒子群优化算法。

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

粒子群算法解决函数优化问题 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 年,高鹰和谢胜利将混沌寻优思想引入到粒子群优化算法中,首先对当前群体中的优粒子进行混沌寻优, 再用混沌寻优的结果随机替换群体中的一个粒子,这样提出另一种混沌粒子群优化算法。

粒子群算法基本原理

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 ==。所有粒子经历过的位置中的最好位置称为全局历史最好位置,记为

基本粒子群算法的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)----粒子群算法简介

粒子群算法(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次迭代) 最后所有的点都集中在最大值的地方。

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

附录 程序1 当22111==c c ,5.12212==c c ,2.1=w 。 a)%主函数源程序(main.m ) %------基本粒子群算法 (particle swarm optimization ) %------名称: 基本粒子群算法 %------初始格式化 clear all ; %清除所有变量 clc; %清屏 format long ; %将数据显示为长整形科学计数 %------给定初始条条件------------------ N=40; %3初始化群体个数 D=10; %初始化群体维数 T=100; %初始化群体最迭代次数 c11=2; %学习因子1 c21=2; %学习因子2 c12=1.5; c22=1.5; w=1.2; %惯性权重 eps=10^(-6); %设置精度(在已知最小值的时候用) %------初始化种群个体(限定位置和速度)------------ x=zeros(N,D); v=zeros(N,D); for i=1:N for j=1:D x(i,j)=randn; %随机初始化位置 v(i,j)=randn; %随机初始化速度 end end %------显示群位置----------------------

figure(1) for j=1:D if(rem(D,2)>0) subplot((D+1)/2,2,j) else subplot(D/2,2,j) end plot(x(:,j),'b*');grid on xlabel('粒子') ylabel('初始位置') tInfo=strcat('第',char(j+48),'维'); if(j>9) tInfo=strcat('第',char(floor(j/10)+48),char(rem(j,10)+48),'维'); end title(tInfo) end %------显示种群速度 figure(2) for j=1:D if(rem(D,2)>0) subplot((D+1)/2,2,j) else subplot(D/2,2,j) end plot(x(:,j),'b*');grid on xlabel('粒子') ylabel('初始速度') tInfo=strcat('第,char(j+48),'维'); if(j>9) tInfo=strcat('第',char(floor(j/10)+48), char(rem(j,10)+48),'维); end title(tInfo) end figure(3)

基于粒子群算法的控制系统PID参数优化设计

基于粒子群算法的控制系统 PID 参数优化设计 摘 要 本文主要研究基于粒子群算法控制系统PID 参数优化设计方法以及对PID 控制的 改进。PID 参数的寻优方法有很多种,各种方法的都有各自的特点,应按实际的系统特点选择适当的方法。本文采用粒子群算法进行参数优化,主要做了如下工作:其一,选择控制系统的目标函数,本控制系统选用时间乘以误差的绝对值,通过对控制系统的逐步仿真,对结果进行分析。由于选取的这个目标函数的解析式不能直接写出,故采用逐步仿真来实现;其二,本文先采用工程上的整定方法(临界比例度法)粗略的确定其初始的三个参数p K ,i K ,d K ,再利用粒子群算法进行寻优,得到更好的PID 参数;其三,采用SIMULINK 的仿真工具对PID 参数优化系统进行仿真,得出系统的响应曲线。从中发现它的性能指标,都比原来有了很大的改进。因此,采用粒子群算法的优越性是显而易见的。 关键词 目标函数;PID 参数;粒子群算法;优化设计;SIMULINK

Optimal design of PID parameter of the control system based on Particle Swarm Optimization Abstract The main purpose of this paper is to study the optimal design of PID parameter of the control system based on Particle Swarm Optimization and find a way to improve the PID control. There are a lot of methods of optimization for the parameters of PID, and each of them has its own characteristics. The proper methods need to be selected according to the actual characteristics of the system. In this paper we adopt the Particle Swarm Optimization to tune the parameters. To finish it, the following tasks should be done. First, select the target function of the control system. The target function of the control system should be chosen as the absolute value of the error multiplied by time. Then we simulate the control system gradually, and analyze the results of the process. Because the solution of the target function cannot be worked out directly, this design adopts simulation gradually. Second, this paper adopts the engineering method (the critical ratio method) to determine its initial parameters p K ,i K ,d K , then uses the Particle Swarm Optimization to get a series better PID parameters. Third, this paper uses the tool of SIMULINK to optimize the parameters of PID and gets the response curve of the system. By contrast with the two response curves, it is clearly that the performance has improved a lot than the former one. Therefore, it is obviously to find the advantages in using the Particle Swarm Optimization. Key word : target function; PID parameters; Particle Swarm Optimization; optimal design; SIMULINK

(完整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 。

基于粒子群优化算法的神经网络在

基于粒子群优化算法的神经网络在农药定量构效关系建模中的应用 张丽平 俞欢军3 陈德钊 胡上序 (浙江大学化工系,杭州310027) 摘 要 神经网络模型能有效模拟非线性输入输出关系,但其常规训练算法为BP 或其它梯度算法,导致训练时间较长且易陷入局部极小点。本实验探讨用粒子群优化算法训练神经网络,并应用到苯乙酰胺类农药的定量构效关系建模中,对未知化合物的活性进行预测来指导新药的设计和合成。仿真结果表明,粒子群优化算法训练的神经网络不仅收敛速度明显加快,而且其预报精度也得到了较大的提高。关键词 粒子群优化算法,神经网络,定量构效关系  2004201204收稿;2004207225接受 本文系国家自然科学基金资助项目(N o.20276063) 1 引 言 药物定量构效关系(QS AR )是研究药物生理活性和药物分子结构参数间的量变规律并建立相应的 数学模型,进而研究药物的作用机理,从而用于预测未知化合物的生物活性,探讨药物的作用机理,指导新药的设计和合成,在药物和农药的研究与设计中已经显示出广阔的应用前景1。以往QS AR 的建模方法大多基于统计原理,局限于线性模型,只进行简单的非线性处理,由此所建立的模型很难契合实际构效关系,并且其处理过程都比较繁琐2。神经网络通过学习将构效关系知识隐式分布在网络之中,适用于高度非线性体系。 在药物QS AR 中采用神经网络(NN )始于20世纪80年代末3,此后得到迅速的发展,目前已发展为除多重线性回归和多元数据分析之外的第3种方法4。通常多层前传网络采用BP 算法,通过误差反传,按梯度下降的方向调整权值。其缺点是可能陷入局部极小点,且对高维输入收敛速度非常缓慢。 粒子群优化算法(particle swarm optimization ,PS O )是K ennedy 等5源于对鸟群、鱼群和人类社会行为的研究而发展的一种新的进化型寻优技术。PS O 已成为进化寻优算法研究的热点,其最主要特点是简单、收敛速度快,且所需领域知识少。本实验拟将该方法初始化前传神经网络为苯乙酰胺类农药建立良好适用的QS AR 模型。 2 苯乙酰胺类农药的Q SAR 问题 苯乙酰胺类化合物是除草农药,其除草活性与其分子结构密切相关。所有的N 2(12甲基212苯乙基)苯乙酰胺都可用相应的羧酸酰胺通过霍夫曼反应生成。N 2(12甲基212苯乙基)苯乙酰胺的基本结构式为 : 其中X 为Me 、F 、Cl 、OMe 、CF 3和Br 等,Y 为Me 、Cl 、F 和Br 等,由不同的X 和Y 取代基可构成不同的化合物。常用以下7个理化参数描述化合物的分子组成和结构:log P 、log 2P (疏水性参数及其平方项)、 σ(电性效应参数)、E s (T aft 立体参数)、MR (摩尔折射度),1χ、2 χ(分子连接性指数)。于是这类化合物的QS AR 就转化为上述理化参数与除草活性间的关系。为研究这种关系,选用具有代表性的50个化合物, 他们的活性值取自文献1,见表1。 第32卷2004年12月分析化学(FE NXI H UAX UE ) 研究报告Chinese Journal of Analytical Chemistry 第12期1590~1594

粒子群优化算法及其应用研究【精品文档】(完整版)

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

目录 摘要...................................................................... 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)

相关文档
最新文档