粒子群算法(PSO)的详细介绍

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

权重系数 w,能使算法有很好的效果。
2.群体规模 m
群体规模 m 越大,相互协同搜索粒子就越多,信息就越充分,能更好的发挥 PSO 的搜索 能力。 虽然群体规模增大, 能使 PSO 算法的全局优化能力增强,但成本是搜索计算的时间增 长,而且收敛到全局最优点的速度会明显减慢。如果规模过小,又会陷入局部最优。在很多 文献中群体规模 m 取为等于 20.
1.粒子群算法的发展历史
粒子群算法(Particle Swarm Optimization)是一种新的智能优化算法。谈到它的发 展历史,就不得不先介绍下传统的优化算法,正因为传统优化算法自身的一些不足,才有新 智能优化算法的兴起,而粒子群算法(PSO)就是在这种情况下发展起来的。 最优化是人们在科学研究、 工程技术和经济管理等领域中经常遇到的问题。 优化问题研 究的主要内容是在解决某个问题时, 如何从众多的解决方案中选出最优方案。 它可以定义为: 在一定的约束条件下, 求得一组参数值, 使得系统的某项性能指标达到最优 (最大或最小) 。 传统的优化方法是借助于优化问题的不同性质, 通常将问题分为线性规划问题、 非线性规划 问题、整数规划问题和多目标规划问题等。相应的有一些成熟的常规算法,如应用于线性规 划问题的单纯形法,应用于非线性规划的牛顿法、共扼梯度法,应用于整数规则的分枝界定 法、动态规划等。列举的这些传统的优化算法能够解决现实生活和工程上的很多问题,但工 业和科学领域大量实际问题的困难程度正在日益增长, 它们大多是根本无法在可接受的时间 内找到解的问题。这类优化问题的困难性不仅体现在具有极大的规模,更为重要的是,它们 多数是非线性的、动态的、多峰的、具有欺骗性的或者不具有任何导数信息。因此,发展通 用性更强、 效率更高的优化算法总是需要的。 传统优化算法在碰到这些问题时常常会在计算 速度、收敛性以及初值敏感方面表现不足。 在过去的 30 年里,通过从不同角度对生物系统及其行为特征的模拟和建模,发展起来 了一类新型的智能优化算法。 这些智能算法不要求目标函数必须连续或者可导, 对解决实际 大项目有很好效果,而且计算速度都很快。这些算法的代表有遗传算法、人工免疫算法、蚁 群算法,当然还有这篇文章要介绍的粒子群算法。粒子群算法是 R.Eberhart 博士和 J.Kennedy 博士通过对鸟群捕食行为的研究在 1995 年所提出来的。 在自然界中,鸟群运动的主体是离散的,其排列看起来是随机的,但在整体的运动中它 们却保持着惊人的同步性, 其整体运动形态非常流畅且极富美感。 这些呈分布状态的群体所 表现出的似乎是有意识的集中控制, 一直是许多研究者感兴趣的问题。 有研究者对鸟群的运 动进行了计算机仿真,他们通过对个体设定简单的运动规则,来模拟鸟群整体的复杂行为。 1986 年 Craig ReynolS 提出了 Boid 模型,用以模拟鸟类聚集飞行的行为,通过对现实世界 中这些群体运动的观察, 在计算机中复制和重建这些运动轨迹, 并对这些运动进行抽象建模, 以发现新的运动模式。之后,生物学家 Frank Heppner 在此基础上增加了栖息地对鸟吸引的 仿真条件, 提出了新的鸟群模型。 这个新的鸟群模型的关键在于以个体之间的运算操作为基 础,这个操作也就是群体行为的同步必须在于个体努力维持自身与邻居之间的距离为最优, 为此每个个体必须知道自身位置和邻居的位置信息。 这些都表明群体中个体之间信息的社会
上式中 w 即为惯性权重, 它决定了粒子先前速度对当前速度的影响程度, 起到了平衡算 法全局搜索和局部搜索能力的作用。Y.Shi 和 R.Eberhart 通过仿真实验得到的结论是,但 w 的取值范围为[0.9,1.2]时,算法优化性能较好。随后,Y.Shi 和 R.Eberhart 提出了惯性 权重 w 的自适应策略, 即随着迭代的进行, 线性减少权重 w。 线性减少权重系数 w 的公式为:
共享有助于群体的进化。 在 1995 年,受到 Frank Heppner 鸟群模型的影响,社会心理学博士 James Kennedy 和 电子工程学博士 Russell Eherhart 提出了粒子群算法。粒子群算法其实也是一种演化计算 技术, 该算法将鸟群运动模型中的栖息地类比于所求问题Fra Baidu bibliotek间中可能解的位置, 通过个体间 的信息传递, 导引整个群体向可能解的方向移动, 在求解过程中逐步增加发现较好解的可能 性。群体中的鸟被抽象为没有质量和体积的“粒子” ,通过这些“粒子”间的相互协作和信 息共享, 使其运动速度受到自身和群体的历史运动状态信息的影响。 以自身和群体的历史最 优位置对粒子当前的运动方向和运动速度加以影响,较好地协调粒子本身和群体之间的关 系,以利于群体在复杂的解空间中进行寻优操作。
其中 c1 、 c2 都是非负常数,这两个常数使得粒子具有自我总结和向群体中优秀个体学习的 能力,使粒子可以向自己的历史最优位置和群体全局最优位置靠拢。非负常数 c1 、 c2 通常 等于 2,Rand()是[0,1]之间的随机数。另外,粒子移动的速度被限制在 [Vmax ,Vmax ] 之间, 即每次速度更新后,如果:
2.1 粒子群算法的基本形式
在粒子群算法中,实体被抽象为粒子,而粒子的位置就是所求问题的解。现在想求得最 优解就是要找到更新粒子位置的模式, 即如何更新粒子的位置, 才能让算法更快更好的收敛 到最优解。PSO 算法中粒子是根据粒子本身历史的最优位置和整个群体的全优位置,在一定 随机扰动的情况下决定下一步的移动方向。 PSO 算法和遗传算法一样,都是基于迭代模式的优化算法。在每次迭代过程中,每个粒 子的位置目标函数都被评估。假设有 m 个粒子,每个粒子的位置信息都是 d 维的,我们用 3 个 d 维向量来表示一个粒子的信息,分别为: 目前位置: 历史最优位置: 速度:
vij Vmax then vij Vmax ; vij Vmax then vij Vmax ;
2.2 粒子群算法的基本流程
Step1:初始化:在 d 维的问题空间中随机产生粒子的位置和速度; Step2:位置评价:每个粒子用构造的位置目标函数对其进行评价; Step3:更新粒子的历史最优位置和群体的全局最优位置:比较粒子的位置评价值与它的历 史位置最优值,如果优于该粒子的历史最优值,则用目前位置替代该粒子的历史最优位置; 比较粒子的目前位置评价值与群体全局最优值, 如果目前评价值好于群体全局最优值, 则用 目前值替换群体全局最优值。 Step4:更新粒子的位置和速度:按上面介绍的公式; Step5:循环终止条件:对每个粒子循环执行 Step2 到 Step4,直到满足循环终止条件,这 里的循环终止条件和遗传算法类似,是迭代次数或者好的适应值。 下图即为粒子群算法的流程框图:
2.4 粒子群算法里面的参数
1. 惯性权重系数 w
粒子速度更新公式为:
vij vij c1 rand () ( pij xij ) c2 rand () ( pgj xgj )
有以上公式可以看出,粒子更新后速度由三部分组成: vij 、 c1 rand () ( pij
xij ) 和
c2 rand () ( pgj xgj ) 。如果没有第一部分 vij ,就是一个局部搜索,粒子群很容易趋于同一
位置。因为这时粒子速度只取决于它历史最优位置 pi 和群体全局最优位置 pg ,速度本身没 有记忆。假设一个粒子位于全局最好位置,它将保持静止。而其他粒子则飞向它本身最好位 置 pi 和全局最优位置 pg 的加权中心。这种条件下,粒子群将收缩到当前全局最好位置,更 像一个局部算法。而如果第一项 vij 不为零,粒子就有探索新区域的能力。增大 vij ,会使算 法的全局探索能力增强。 全局搜索能力和局部搜索能力都是必须的, 他们之间存在一个平衡, 而惯性权重系数 w 就是为了平衡全局搜索和局部搜索而提出的。Y.Shi 和 R.Eberhart 的实 验表明,w 取值在[0.9,1.2]之间时,算法优化效果最好。惯性权重系数 w 起到平衡两种搜 索能力的作用,惯性系数 w 大,全局探索能力强,能探索更大的新空间;惯性系数 w 小,局 部探索能力强,能在最优解附近精细探索空间。可以知道,对于任何一种搜索优化算法,都 希望早期有较强的全局探索能力,能发现好的解;而在搜索的晚期,则希望有较强的局部搜 索能力,能够精细搜索较好解的局部空间。所以 Y.Shi 和 R.Eberhart 提出的线性减小惯性
2.粒子群算法的研究内容
PSO 算法按其研究方向分为四部分:算法的机制分析研究、算法性能改进研究、算法的 应用研究及离散性 PSO 算法研究。 算法的机制分析主要是研究 PSO 算法的收敛性、 复杂性及 参数设置。算法性能改进研究主要是对原始 PSO 算法的缺陷和不足进行改进,以提高原始 PSO 算法或标准 PSO 算法的一些方面的性能。目前技术与方法的改进主要是增加算法的多样 性、加强局部搜索性及融合其它智能优化算法的技术;PSO 算法的应用研究主要是关于如何 利用 PSO 算法对工程技术、经济及社会等需要优化的问题求解,其中包括多目标问题、约束 问题、动态问题和大量实际应用问题;离散 PSO 研究主要针对离散性的优化问题,PSO 算法 如何进行优化求解,原始 PSO 算法主要是解决连续性的优化问题,而离散性问题存在特殊 性,因此离散性问题的求解,PSO 算法需要一些特殊技术进行处理,其研究问题主要包括离 散二进制问题和一般组合优化问题。
xi ( xi1 , xi 2 ,..., xid ) ; pi ( pi1 , pi 2 ,..., pid ) ; vi (vi1 , vi 2 ,..., vid ) ;
这里 i=1,2,…,m。如果粒子 i 的目前位置要比它的历史最优位置好,则更新 pi 。另 外,在这将整个群体的历史最优位置记为:
pg ( pg1, pg 2 ,..., pgd ) 。
那么对于第 i 个粒子的第 j 维( 1 j d )数值按如下两个公式更新:
vij vij c1 rand () ( pij xij ) c2 rand () ( pgj xgj )
xij xij +vij
开始
初始化
位置评价
更新最优位置
更新粒子的位置与速度
no 终止条件 yes
结束
2.3 标准粒子群算法
为提高算法性能,在 1998 年,Y.Shi 和 R.Eberhart 将惯性权重 w 引入,速度更新方程 变为:
vij w vij c1 rand () ( pij xij ) c2 rand () ( pgj xgj )
w wmax
t tmax
( wmax wmin )
其中 wmax 和 wmin 分别为最大权重系数和最小权重系数, t max 为最大运行代数,而 t 为 运行的代数,w 就是第 t 代时的权重系数值。 这样随着迭代的进行,线性的减少权重系数 w,可以使得粒子群算法在迭代的初期有较 强的探索能力,可以探索新的区域,而在后期又有较好的收敛性,可以在最优解附近精细搜 索。上面这种线性减小权重 w 的方法就是标准的 PSO 算法。
西安电子科技大学
自然计算论文报告
题 学 专 学 姓
目:粒子群算法研究及其应用 院:电子工程学院 业:电子与通信工程 号:1302121508 名:彭正林
粒子群算法研究及其应用
摘要
粒子群算法是在仿真生物群体社会活动的基础上, 通过模拟群体生物相互协同寻优能力, 从而构造出一种新的智能优化算法。 这篇文章简要回顾了粒子群算法的发展历史; 着重介绍 了粒子群算法的研究内容,包括粒子群算法的基本形式、基本算法流程、标准 PSO、算法里 的各个参数以及几种常见的改进粒子群算法,还将其与遗传算法做了比较。最后通过基于 PSO 的 PID 参数整定,介绍了粒子群算法的广泛应用。 关键字:粒子群算法, 标准 PSO, PID 参数整定
相关文档
最新文档