粒子群算法概述

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

粒子群算法概述

作者:严坤妹王镌林娟陈艳平

来源:《今日财富》2011年第06期

【摘要】介绍了基本粒子群算法的原理和流程,归纳了离散粒子群优化算法的研究现状和改进,包括改进的二值离散粒子群优化算法、离散量子粒子群优化算法、模糊离散粒子群优化算法,简要分析了粒子群算法在各个领域的应用。

【关键词】粒子群算法群体智能应用

【中图分类号】O411.1 【文献标识码】A 【文章编号】1009-8585(2011)06-00-02

1 基本粒子群算法介绍

1995年美国电气工程师Eberhart和社会心理学家Kennedy 基于鸟群觅食行为提出了粒子群优化算(partical swarm optimization,PSO),简称粒子群算法。

1.1 基本粒子群算法的原理

粒子群优化算法中,每个优化问题的潜在解都是搜索空间中的一只鸟,称之为“粒子”。每个粒子的位置代表被优化问题在搜索空间中的潜在解。例如,在一个D维的目标搜索空间中,每个粒子看成是空间内的一个点。设群体由m个粒子构成,m也被称为群体规模。所有的粒子都有一个由被优化的函数决定的适应值(Fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离。粒子们追随当前的最优粒子在解空间中搜索。PSO初始化为一群随机粒子(随机解),然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个“极值”来更新自己。一个是粒子本身所找到的最优解,称为个体极值;另一个极值是整个种群目前找到的最优解,称为全局极值。

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

即第i个粒子在D维的搜索空间中的位置。将Xi代入一个目标函数就可以计算出其适应值,根据其适应值的大小衡量的优劣。第i个粒子的“飞行”速度也是一个D维的向量,记为;第i 个粒子迄今为止搜索到的最优位置称为个体极值,记为

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

在每次迭代中,粒子根据以下式子更新速度和位置:

其中,是迭代数,r1和r2为[0,1]之间的随机数,这两个参数是用来保持群体的多样性。c1也c2为学习因子,也称加速因子,其使粒子具有自我总结和向群体中优秀个体学习的能力,从而向自己的历史最优点(个体极值)和群体内历史最优点(全局极值)靠近。

为了改善基本粒子群算法的收敛性能,Shi和Eberhart在1998年的IEEE国际进化计算学术会议上发表了题为“A modified particle swarm optimizer”的论文,引入了惯性权重,逐渐地大家都默认这个改进粒子群算法为标准的粒子群算法。

在标准的粒子群算法中,Shi和Eberhart添加了一个惯性权重到速度更新公式,而位置更新公式与基本粒子群算法的位置更新公式相同。即

1.2 基本粒子群算法的流程

1)初始化粒子群,即随机设定各粒子的初始位置x和初始速度v;

2)计算每个粒子的适应度值;

3)对每个粒子,比较它的适应度值和它经历的最好位置的适应度值;若更好,更新;

4)对每个粒子,比较它的适应度值和群体所经历的最好位置的适应度值;若更好,更新;

5)根据位置和速度的更新公式调整粒子的位置和速度;

6)若达到结束条件(足够好的位置或最大迭代次数),结束;否则,转步骤2。

2 离散离子群算法介绍

2.1 二进制离散粒子群优化算法

由于基本粒子群优化算法主要针对连续函数进行搜索运算,但许多实际工程问题都描述为离散的组合优化问题。传统粒子群优化算法局限于速度-位移更新算子,不能有效拓展到离散及组合优化领域。为此Kennedy和Eberhart于1997年提出了一种二进制离散粒子群优化算法。

二进制离散粒子群优化算法中,每个粒子的位置使用二进制编码,粒子的速度定义为“粒子位置改变的概率”。这里的概率是指每一位取一个状态或另一状态的可能性。这时,粒子群算法离散二进制模型的粒子的速度公式为:

vid = vid+c1r1(pid-xid)+c2r2(pgd-xid)

其中,pid和xid在整数集{0,1}内取值,vid的值表示为概率形式,限制在[0.0,1.0]内取值,r1、r2是0~1之间的随机数。

相应地,粒子位置的更新规则如下:

其中,是(0,1)区间上均匀分布的随机变量;,用来限制速度。

为了将粒子群算法离散化,文献[5]重新给出算法由当前的状态变量决定粒子将被判定为1或0的概率,即有:

Kennedy等提出使用Sigmoid函数求参数s。Sigmoid函数是神经网络中常用的一种模糊函数,其表达式如式(2.2)所示:

当取得时,阈值s的取值范围在[0.0025,0.9975]。修改后的离散粒子群优化算法与基本粒子群优化算法流程相类似,但粒子速度和位置的更新公式修改为:

其中,是[0,1]之间的随机数,算法中其他参数都和基本粒子群优化算法的参数相同。

2.2 改进的二值离散粒子群优化算法

基本的二进制离散粒子群算法同基本粒子群优化算法类似,都会由于粒子在运动过程中产生惰性而发生早熟收敛。为解决这一问题,杨红孺等于2005年基于基本二进制离散粒子群优化算法,提出了改进的二值离散粒子群优化算法。新算法利用基本粒子群算法中“粒子依赖自身经验及粒子群全体经验,同时克服自身飞行惰性”的思想,改进了粒子的更新运动公式,并将离散的二值由0、1改为—1、1。

2.3 离散量子粒子群优化算法

Yang S.Wang等人于2004年提出离散量子粒子群优化算法(quantum discrete PSO),是量子粒子群优化算法在离散问题上的改进算法。算法将量子粒子群算法中的粒子离散化,成为离散的粒子矢量。

2.4 模糊离散粒子群优化算法

为解决旅行商问题,陈震亦于2004年提出了一种新型的模糊自适应粒子群优化算法,庞巍等于2005年提出了模糊离散粒子群优化算法。算法使用模糊矩阵表示粒子位置和速度,迭代过程中加入归一化和解模糊化运算。

3 粒子群算法的应用介绍

相关文档
最新文档