改进的粒子群优化算法

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

3 测试函数分析
随机搜索算法在运行中存在着不确定性,为了了解算法的性能,采用了 4 种方法对其进行测试 , [6,7] 前 3 项测试都是进行 50 次运行后的平均值.
测试函数如下: 函数 1 :Rosenbrock 函数
(3)
1
= ( 1 0 0 + 1 + 2 2
12
ຫໍສະໝຸດ Baidu=1
10
10
函数 2 :Griewank 函数
56
河北工业大学学报
第 37 卷
之下,即复杂的全局行为是由简单规则的相互作用引起的.因此,通过对其群体行为的研究,发现生物
群体中存在着一种社会信息共享机制,它为群体的优化提供了一种优势.PSO 将每个可能产生的解都表
述为群中的一个微粒,每个微粒都具有自己的位置向量、速度向量,和一个由目标函数决定的适应度,
1 基本 PSO 算法
PSO 算法是一种基于群体的随机优化技术,基本思想源于对鸟群觅食行为的研究.通过对鸟群飞行 时经常会突然改变方向、散开、聚集,但整体总保持一致性,个体与个体间鸟群好像在一个中心的控制
收稿日期:2008-04-17 基 金 项目 :河 北省 自然 科 学基 金 (F2006000109) 作 者 简介 :宋 洁 (1967-), 女 (汉族), 副教 授.
由于 PSO 算法容易理解、易于实现,所以 PSO 算法发展很快.目前,多种 PSO 改进算法已广泛应 用于函数优化、神经网络训练、模式识别、模糊系统控制以及其他的应用领域.
许多学者对 PSO 算法进行研究,发现其容易出现早熟、最优解附近收敛慢等现象,并提出了一些 改进方案,例如自适应 PSO 算法、混合 PSO 算法、杂交 PSO 算法等 .因 [2-4] 此,本文从初始解和收敛精 度两个角度出发对 PSO 算法进行了改进,提高了算法的计算精度,有效的改善了算法的优化性能.
在找到两个最优值后,粒子通过式 (1) 来更新自己的速度,式 (2) 更新自己的新位置 [5]
+1 = ×
+ × 1 1
+ × 2 2
(1)
+1 =
+ +1
(2)
其中: 是粒子速度; 是当前粒子的位置; 和 分别是个体粒子最优值和整体粒子最优值; 是惯 性因子; 1, 2 是 (0,1) 之间的随机数; 1, 2 是学习因子.
Rastrigrin
3.2472225
1.0000000
58
河北工业大学学报
第 37 卷
3.2 算法达到收敛条件的迭代次数 当适应度值达到要求的收敛判据时,则
认为算法达到全局最优.由于随机搜索算 法存在着一定的随机性,因此有时无法得
表 2 满足收敛判据的迭代次数表
Tab. 2 Iteration Times Satisfying Convergence Criteria
其中该增量或减量的数值,与当前的迭代次数有关,表示为 ,其中 为当前迭代次数, 可以
根据具体的搜索范围进行测试后选定, 的选定不同直接影响着解的精度.采用该方程计算数值,可以 在优化前期,扩大搜索解的范围,在优化后期,在最优解附近进行细致搜索.此搜索方法,不仅简单合 理,而且在每次迭代过程中提高了收敛速度,增强解的精度.
关 键 词 粒子群优化算法;均匀化;变量搜索;初始解;搜索精度
中图分类号 TP391
文献标识码 A
A Modified Particle Swarm Optimization Algorithm
SONG Jie, DONG Yong-feng, HOU Xiang-dan, YANG Yan-qing
( 河北工业大学 计算机科学与软件学院,天津 300401)
摘要 粒子群优化算法是一种基于群体的自适应搜索优化算法,存在后期收敛慢、搜索精度低、容易陷入局部极
小等缺点,为此提出了一种改进的粒子群优化算法,从初始解和搜索精度两个方面进行了改进,提高了算法的计
算精度,改善了算法收敛性,很大程度上避免了算法陷入局部极小.对经典函数测试计算,验证了算法的有效性.
测试函数
收敛判据
基本 PSO/次
改进 PSO/次
Rosenbrock
10
135.200
63.125
到全局最优解,设置一个最大迭代次数,
Griewank
0.05
70.775
38.325
当到达该设定次数时,仍未达到收敛判据
Rastrigrin
1
369.300
44.75
的条件,则停止迭代,并认为算法此次搜
2
=
4
1 00
0
2
cos
+1
(4)
=1
=1
600
600
函数 3 :Rastrigrin 函数
(5) 3 = ( 2 10 × cos 2 + 10) + 1
=1
10
10
3.1 算法迭代 500 次后的适应值
通过应用于测试函数中,可以检测算法在固 定的迭代次数内是否可以找到局部最优点,同时 对比不同算法的收敛速度和最优解的精度.设
第 37 卷 第 4 期 Vol.37 No.4
河北工业大学学报 JOURNAL OF HEBEI UNIVERSITY OF TECHNOLOGY
文章编号:1008-2373 (2008) 04-0055-05
2008 年 8 月 August 2008
改进的粒子群优化算法
宋 洁,董永峰,侯向丹,杨彦卿
0 引言
粒子群优化(Particle Swarm Optimization,PSO)算法是一种基于群体的随机优化技术,最早在 1995 年由美国社会心理学家 James Kennedy 和电气工程师 Russell Eberhart [1] 共同提出,基本思想源于对鸟群 觅食行为的研究.PSO 将每个可能产生的解都表述为群中的一个微粒,每个微粒都具有自己的位置向量 和速度向量,和一个由目标函数决定的适应度,通过类似梯度下降算法使各粒子向适应度函数值最高的 方向群游.该算法控制参数少、程序相对简单,因此在应用领域表现出了很大的优越性.
2 改进粒子群优化算法的设计
2.1 改进策略 通过对基本粒子群优化算法的研究,以及其他学者的观点,不难发现,基本的 PSO 除了它固有的
一些优点外,还存在着一些缺陷,例如,易陷入局部最优,搜索精度不够等问题.为了对基本的 PSO 进行有效的改善,将主要归类为 3 个方面进行分析:算法的收敛速度;粒子的搜索精度;不易跳出局部 极值.
该方法用来解决初始解的均匀化问题,不仅复杂度明显小于均匀设计方法,而且解的精度也切实得 到了改善. 2.1.2 变量搜索
基本 PSO 每次迭代得到粒子当前的个体最优解后,对粒子的速度和位置进行更新,进行下一步的 寻优,很可能使粒子逃离出最优解的区域,降低了搜索的收敛速度和解的精度.本文采用了一种简单的 方法,每次迭代得到了每个粒子的当前最优解后,并不急于更新粒子的速度和位置,而是分别对粒子个 体最优解的某一维数方向分别取一定数值的增量或减量,然后分别对得到的解求适应度值,通过对所有 维数方向上的变化,获得适应度值最小的那个解,与粒子当前解比较,记录下最好的解.
针对这 3 个方面,本文对基本的 PSO 提出了相应的改进策略. 2.1.1 均匀化 PSO 的初始解
基本 PSO 的初始解是在限定范围内随机确定的,初始解的选择存在很大因素的随机性,从而可能 导致分布的不均匀性,易于陷入局部最优解.
本文提出了一种比较简单的均匀化策略,根据搜索范围的限制,选定合适的步长均匀划分得到分布 点,再根据所要解决问题的维数,得到每一维的均匀分布点,组合到一起构成一个均匀化后的解,使初 始解由均匀解和随机解构成.该步长的确定与种群规模和均匀解的比例有关.根据种群规模的不同,按 比例将初始解的一部分,设置为简单均匀的方法求得的均匀解;另一部分则由系统随机产生,使优化在 解的初始化时就保持多样性.
通过类似梯度下降算法使各粒子向适应度函数值最高的方向群游.
PSO 算法可以描述为,在一个 维的搜索空间中,由 个粒子组成种群 = 1, ,
,其中第
个粒子的位置为 = 1, 2,
,速度为 = 1, 2,
.每次迭代粒子通过更新个体极值 和全
局极值 来更新自己. 为单个粒子本身找到的最优解, 为整个粒子种群目前找到的最优解.
= 0.7, 1 = 2 = 2.求得适应值如表 1 所示. 通过对比,可知在相等迭代次数下,改进
表 1 最优适应值
Tab. 1 Optimal Fitness
测试函数
基本 PSO
改进 PSO
Rosenbrock
3.95962
0.00000
Griewank
0.0939500
0.0028975
PSO 找到最优值优于基本 PSO.
3) 利用每个粒子的位置信息,根据目标函数,计算每个粒子的适应度 ; 4) 利用公式对每个粒子的当前位置进行可行解变更,并计算变更后位置的粒子适应度,并将该适 应度与 比较,用最小的适应度更替 ,并且更替相应的位置信息; 5) 将 与自身粒子的优化解进行比较,如果 < ,则用新的适应度代替前一轮的个体优化值, 用新的粒子位置取代前一轮的粒子位置.即 = , = ; 6) 将每个粒子的最好适应度 与所有粒子最好适应度 进行比较,如果 < , 则用该粒子的最 好适应值取代原群体最优适应值,同时用该粒子位置取代群体最优粒子位置.即 = , = ; 7) 根据式 (1) 和式 (2) 的更新方程,更新每个粒子的速度,并对每个粒子进行速度越限检查,确 保粒子速度在 [ , max ] max 之间,根据迭代式更新计算每个粒子的位置,对每个粒子进行位置越限检 查,确保粒子位置 在 [ , max ] max 之间; 8) 程序运行到达给定的迭代次数或精度要求时输出相关结果;否则返回步骤 3).
3.3 算法的收敛率
经过对测试函数的多次测试,统计成功达到收敛判据的比率,可以有效检验算法的鲁棒性,如表 3
第4期
宋 洁 ,等 :改 进 的 粒 子 群 优 化 算 法
57
2.2 算法流程 1) 根据搜索范围,自动确定步长,得到均匀化后的初始解; 2) 随机选取种群规模为 ,迭代次数为 ,空间为 维的一个粒子群,粒子的初始解由随机给定
初始位置 0 和均匀化后的初始解组成,并初始速度 0;定义个体最优值 0 和个体最优位置 0;全局最 优值 0 和全局最优位置 0.
( School of Computer Science and Engineering, Hebei University of Technology, Tianjin 300401, China )
Abstract Particle Swarm Optimization Algorithm is a kind of auto-adapted search optimization based on community. But the standard particle swarm optimization is used resulting in slow after convergence, low search precision and easily leading to local minimum. A new Particle Swarm Optimization algorithm is proposed to improve from the initial solution and the search precision. The obtained results showed the algorithm computation precision and the astringency are improved, and local minimum is avoided. The experimental results of classic functions show that the improved PSO is efficient and feasible. Key words PSO;average;variable search;initial solution;search accuracy
索无法到达最优点.将该最大迭代次数设为 5 000.如表 2 所示.
根据搜索结果后的平均值,可以判断收敛判据得到的迭代次数,改进后的 PSO 的迭代次数将近减
少到改进前的一半.并且 Rosenbrock 函数改进后的迭代次数,大都集中在 50 左右,而 Griewank 函数的
迭代次数大都集中在 30 左右,其中有 5 次低于 20 次迭代.
相关文档
最新文档