粒子群算法优化不同维数连续函数以与离散函数最小值问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

引言

本文主要利用粒子群算法解决连续函数以及离散函数的最小值问题,粒子群优化是一种新兴的基于群体智能的启发式全局搜索算法,粒子群优化算法通过粒子间的竞争和协作以实现在复杂搜索空间中寻找全局最优点。它具有易理解、易实现、全局搜索能力强等特点,倍受科学与工程领域的广泛关注,已经成为发展最快的智能优化算法之一。

惯性权重是标准版本中非常重要的参数,可以用来控制算法的开发()和探索()能力。惯性权重的大小决定了对粒子当前速度继承的多少。较大的惯性权重将使粒子具有较大的速度,从而有较强的探索能力;

较小的惯性权重将使粒子具有较强的开发能力。关于惯性权重的选择一般有常数和时变两种。算法的执行效果很大程度上取决于惯性权重的选取。

本文介绍了粒子群优化算法的基本原理,分析了其特点,并将其应用于函数优化问题求解。此外,本文根据惯性权重对粒子群优化算法性能影响的研究,提

出了三种不同的惯性权重。通过仿真实验,验证了各自的收敛性.同时也说明了惯性权重在粒子群优化算法中有很大的自由度。

一、问题描述

1.1函数优化问题

目标优化问题可以描述为:

f(1)S

max x

)

(

x∈

或:)

min x

f(2)S

(

x∈

这里S→称为搜索空间,f(x)→称为目标函数。

(1)式描述的优化问题称为极大化问题,(2)式描述的称为极小化问题。

当把f(x)看成是一序列的函数时,上述的问题就转变为多目标优化问题。

对很多实际问题进行数学建模后,可将其抽象为一个数值函数的优化问题。由于问题种类的繁多、影响因素的复杂,这些数学函数会呈现出不同的数学特征,比如连续的、离散的、凸的、凹的、单峰值的、多峰值的函数等等,经常遇到的函数还有这些不同数学特征的组合,除了在函数是连续、可求导、低阶的简单情况下可解析地求出其最优解外,大部分情况需要通过数值计算方法来进行近似优化计算。尽管人们对这个问题研究了很多年,但至今仍无一种既能处理各种不同的复杂函数、又具有良好求解结果的数值计算方法。特别是当问题的规模比较大时,优化计算时的搜索空间急剧扩大,人们认识到要严格地求出其最优解不太现实。所以需要研究出一种能够在可接受的时间和可接受的精度范围内求出数值函数近似最优解的方法或通用算法。粒子群优化由于其算法的简单,易于实现,无需梯度信息,参数少等特点在连续优化问题和离散优化问题中都表现出了良好的效果,特别是因为其天然的实数编码特点适合于处理实优化问题。近年来成为国际上智能优化领域研究的热门。

1.2粒子群算法基本原理

粒子群优化算法( )是一种基于群体的自适应的搜索优化方法。是由和在1995年提出的。中,每个优化问题的潜在解都是搜索空间中的一只鸟,称之为

粒子。所有的粒子都有一个由被优化的函数决定的适值( ) ,每个粒子还有一个速度决定它们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。

初始化为一群随机粒子(随机解),然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己;第一个就是粒子本身所找到的最优解,这个解称为个体极值;另一个极值是整个种群目前找到的最优解,这个极值是全局极值。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。

假设在一个D 维的目标搜索空间中,有N 个粒子组成一个群落,其中第i 个粒子表示为一个D 维的向量

)

,,,(21iD i i i x x x X Λ=,N i ,,2,1Λ=。

第i 个粒子的“飞行 ”速度也是一个D 维的向量,记为

)

,,21i iD i i v v v V Λ,(=,3,2,1Λ=i 。

第i 个粒子迄今为止搜索到的最优位置称为个体极值,记为

)

,,,(21iD i i best p p p p Λ=,N i ,,2,1Λ=。

整个粒子群迄今为止搜索到的最优位置为全局极值,记为

)

,,,(21gD g g best p p p g Λ=

在找到这两个最优值时,粒子根据如下的公式(1.1)和( 1.2)来更新自己的速度和位置:

())

(2211id gd id id id id x p r c x p r c v w v -+-+*=(1.1)

id

id id v x x += (1. 2)

其中:1c 和2c 为学习因子,也称加速常数( ),1r 和2r 为[0,1]范围内的均匀随机数。式(1.1)右边由三部分组成,第一部分为“惯性()”或“动量()”部分,反映了粒子的运动“习惯()”,代表粒子有维持自己先前速度的趋势;第二部分为“认知()”部分,反映了粒子对自身历史经验的记忆()或回忆(),代表粒子有向自身历史最佳位置逼近的趋势;第三部分为“社会()”部分,反映了粒子间协同合作与知识共享的群

体历史经验。

二、算法设计

这部分内容主要是针对本文主要研究问题的类型确定粒子群算法具体实现过程和一些参数的选择。

2.1算法流程框图

2.2 算法实现

算法的流程如下:

①初始化粒子群,包括群体规模N ,每个粒子的位置i x 和速度i V

②计算每个粒子的适应度值][i F it ;

③对每个粒子,用它的适应度值][i F it 和个体极值)(i p best 比较,如果)(][i p i F best it >,则用][i Fit 替换掉)(i best p ;

④对每个粒子,用它的适应度值][i Fit 和全局极值best g 比较,如果

)(][i p i F best it >则用][i F it 替best g ;

⑤根据公式(1.1),(1.2)更新粒子的速度i v 和位置i x ;

⑥如果满足结束条件(误差足够好或到达最大循环次数)退出,否则返回②。

2.3 算法的构成要素

对于构成粒子群算法的各个参数进行设定。本算法中主要的参数变量为惯性权值w ,学习因子1c ,2c ,群体的大小 N ,迭代次数 M ,粒子维数 D 。 (1)群体大小

通常,群体太小则不能提供足够的采样点,以致算法性能很差,容易陷入局部最优;群体太大尽管可以增加优化信息,阻止早熟收敛的发生,但无疑会增加计算量,造成收敛时间太长,表现为收敛速度缓慢。本文对函数的优化选择种群规模为500。

(2)最大迭代次数

迭代次数越多能保证解的收敛性,但是影响运算速度,本文对函数的优化选最大迭代次数为1000次。 (3)惯性权值

惯性权重w 表示在多大程度上保留原来的速度。w 较大,全局收敛能力强,局部收敛能力弱;w 较小,局部收敛能力强,全局收敛能力弱。 (4)学习因子

加速常数1c 和2c 分别用于控制粒子指向自身或邻域最佳位置的运动。建议

0.421≤+=c c φ,并通常取221==c c 。本文中取221==c c 。 (5)粒子维数

相关文档
最新文档