粒子群算法论文

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

粒子群算法的寻优算法

摘要:粒子群算法是在仿真生物群体社会活动的基础上,通过模拟群体生物相互协同寻优能力,从而构造出一种新的智能优化算法。这篇文章简要回顾了粒子群算法的发展历史;引入了一个粒子群算法的实例,对其用MATLAB进行编程求解,得出结论。之后还对其中的惯性权重进行了延伸研究,对惯性权重的选择和变化的算法性能进行分析。

关键词:粒子群、寻优、MATLAB、惯性权重

目录:

1.粒子群算法的简介 (2)

1.1 粒子群算法的研究背景 (2)

1.2 起源 (2)

1.3 粒子群理论 (3)

2.案例背景 (4)

2.1问题描述 (4)

2.2 解题思路及步骤 (4)

3.MATLAB编程实现 (5)

3.1设置PSO算法的运行参数 (5)

3.2种群初始化 (5)

3.3寻找初始极值 (5)

3.4迭代寻优 (6)

3.5结果分析 (6)

4.惯性权重对PSO算法的影响 (8)

4.1惯性权重的选择 (8)

4.2惯性权重变化的算法性能分析 (8)

5 结论 (10)

参考文献: (11)

1.粒子群算法的简介

粒子群算法(Particle Swarm Optimization)是一种新的智能优化算法。谈到它的发展历史,就不得不先介绍下传统的优化算法,正因为传统优化算法自身的一些不足,才有新智能优化算法的兴起,而粒子群算法(PSO)就是在这种情况下发展起来的。

1.1 粒子群算法的研究背景

最优化是人们在科学研究、工程技术和经济管理等领域中经常遇到的问题。优化问题研究的主要内容是在解决某个问题时,如何从众多的解决方案中选出最优方案。它可以定义为:在一定的约束条件下,求得一组参数值,使得系统的某项性能指标达到最优(最大或最小)。传统的优化方法是借助于优化问题的不同性质,通常将问题分为线性规划问题、非线性规划问题、整数规划问题和多目标规划问题等。相应的有一些成熟的常规算法,如应用于线性规划问题的单纯形法,应用于非线性规划的牛顿法、共扼梯度法,应用于整数规则的分枝界定法、动态规划等。列举的这些传统的优化算法能够解决现实生活和工程上的很多问题,但工业和科学领域大量实际问题的困难程度正在日益增长,它们大多是根本无法在可接受的时间内找到解的问题。这类优化问题的困难性不仅体现在具有极大的规模,更为重要的是,它们多数是非线性的、动态的、多峰的、具有欺骗性的或者不具有任何导数信息。因此,发展通用性更强、效率更高的优化算法总是需要的。

1.2 起源

在自然界中,鸟群运动的主体是离散的,其排列看起来是随机的,但在整体的运动中它们却保持着惊人的同步性,其整体运动形态非常流畅且极富美感。这些呈分布状态的群体所表现出的似乎是有意识的集中控制,一直是许多研究者感兴趣的问题。有研究者对鸟群的运动进行了计算机仿真,他们通过对个体设定简单的运动规则,来模拟鸟群整体的复杂行为。

1986 年Craig ReynolS 提出了Boid 模型,用以模拟鸟类聚集飞行的行为,通过对现实世界中这些群体运动的观察,在计算机中复制和重建这些运动轨迹,并对这些运动进行抽象建模,以发现新的运动模式。之后,生物学家Frank Heppner 在此基础上增加了栖息地对鸟吸引的仿真条件,提出了新的鸟群模型。这个新的鸟群模型的关键在于以个体之间的运算操作为基础,这个操作也就是群体行为的同步必须在于个体努力维持自身与邻居之间的距离为最优,为此每个个体必须知道自身位置和邻居的位置信息。这些都表明群体中个体之间信息的社会共享有助于群体的进化。

在1995年,受到Frank Heppner 鸟群模型的影响,社会心理学博士James

Kennedy 和电子工程学博士 Russell Eherhart 提出了粒子群算法。粒子群算法其实也是一种演化计算技术,该算法将鸟群运动模型中的栖息地类比于所求问题空间中可能解的位置,通过个体间的信息传递,导引整个群体向可能解的方向移动, 在求解过程中逐步增加发现较好解的可能性。群体中的鸟被抽象为没有质量和体积的“粒子”,通过这些“粒子”间的相互协作和信息共享,使其运动速度受到自身和群体的历史运动状态信息的影响。以自身和群体的历史最优位置对粒子当前的运动方向和运动速度加以影响,较好地协调粒子本身和群体之间的关系,以利于群体在复杂的解空间中进行寻优操作。

1.3 粒子群理论

求解优化问题的,算法中每个粒子都代表问题的一个潜在解,每个粒子对应一个由适应度函数决定的适应度值。粒子的速度决定了粒子移动的方向和距离,速度随自身及其他粒子的移动经验进行动态调整,从而实现个体在可解空间中的寻优。PSO 算法首先在可行解空间中初始化一群粒子,每个粒子都代表极值优化问题的一个潜在最优解,用位置、速度和适应度值三项指标表示该粒子特征,适应度值由适应度函数计算得到,其值的好坏表示粒子的优劣。粒子在解空间中运动,通过跟踪个体极值 Pbest 和群体极值Gbest 更新个体位置。个体极值 Pbest 是指个体所经历位置中计算得到的适应度值最优位置,群体极值 Gbest 是指种群中的所有粒子搜索到的适应度最优位置。粒子每更新一次位置,就计算一次适应度值,并且通过比较新粒子的适应度值和个体极值、群体极值的适应度值更新个体极值 Pbest 和群体极值 Gbest 位置。

假设在一个D 维的搜索空间中,由n 个粒子组成的种群X=(X1,X2,…,

Xn ),其中第i 个粒子表示为一个D 维的向量T 21...X ),,(iD i i i x x x =代表第 i 个粒

子在D 维搜索空间中的位置,亦代表问题的一个潜在解。根据目标函数即可计算出每个粒子位置Xi 对应的适应度值。第i 个粒子的速度为

T 21...V ),,(iD i i i V V V =,其个体极值为T 21...P ),,(iD i i i P P P =,种群的群体极值为

T 21...P P )

,,(gD g g g P P =。 在每次迭代过程中粒子通过个体极值和群体极值更新自身的速度和位置,即

)()(V 22111k id k id k gd k id k id k id X P r c X P r c V -+-+=+ω

id k k id V X 11k id X +++=

其中ω为惯性权重,d = l ,2,…,D ;i = l ,2 ,…,n ;k 为当前迭代次数为粒子的速度;c1和c2是非负的常数,称为加速度因子;r1和r2是分布于[0, 1]区间的随机数。为防止粒子的盲目搜索,一般建议将其位置和速度限制在一定的区间]X [max max X ,—、]X [max max X ,—。

相关文档
最新文档