粒子群算法概述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 粒子群算法的应用介绍