粒子群优化算法(详细易懂_很多例子)_第1页
粒子群优化算法(详细易懂_很多例子)_第2页
粒子群优化算法(详细易懂_很多例子)_第3页
粒子群优化算法(详细易懂_很多例子)_第4页
粒子群优化算法(详细易懂_很多例子)_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、粒子群优化算法(PS0)Particle Swarm Optimization智能算法q 向大自然学习n 遗传算法遗传算法(GA)(GA)n 物竞天择,设计染色体编码,根据适应物竞天择,设计染色体编码,根据适应值函数进行染色体选择、交叉和变异操值函数进行染色体选择、交叉和变异操作,优化求解作,优化求解n 人工神经网络算法人工神经网络算法(ANN)(ANN)n 模仿生物神经元,透过神经元的信息传模仿生物神经元,透过神经元的信息传递、训练学习、联想,优化求解递、训练学习、联想,优化求解n 模拟退火算法模拟退火算法(SA)(SA)n 模模模仿金属物质退火过程模仿金属物质退火过程解决最优化问题解决最优

2、化问题的方法的方法n 传统搜索方法传统搜索方法n保证能找到最优解保证能找到最优解n Heuristic SearchHeuristic Searchn不能保证找到最优解不能保证找到最优解 由由KennedyKennedy和和EberhartEberhart于于19951995年提出年提出 群体迭代,粒子在解空间追随最优的粒子进行搜索群体迭代,粒子在解空间追随最优的粒子进行搜索. . 简单易行简单易行 粒子群算法粒子群算法: 收敛速度快收敛速度快 设置参数少设置参数少 已成为现代优化方法领域研究的热点已成为现代优化方法领域研究的热点粒子群算法发展历史简介粒子群算法发展历史简介 粒子群粒子群算法的

3、基本思想算法的基本思想q 粒子群算法的思想源于对鸟群捕食行为的研究粒子群算法的思想源于对鸟群捕食行为的研究q 模拟鸟集群飞行觅食的行为,鸟之间通过集体的协作使群模拟鸟集群飞行觅食的行为,鸟之间通过集体的协作使群体达到最优目的,是一种基于体达到最优目的,是一种基于Swarm IntelligenceSwarm Intelligence的优化的优化方法方法。q 马良教授在他的著作马良教授在他的著作蚁群优化算法蚁群优化算法一书的前言中写到一书的前言中写到:q 大自然对我们的最大恩赐!大自然对我们的最大恩赐!“自然界的蚁群、鸟群、鱼群、自然界的蚁群、鸟群、鱼群、羊群、牛群、蜂群等,其实时时刻刻都在给予

4、羊群、牛群、蜂群等,其实时时刻刻都在给予我们以某种启示,只不过我们常常忽略了我们以某种启示,只不过我们常常忽略了大自然对我们的最大恩赐!大自然对我们的最大恩赐!.”.”粒子群粒子群算法的基本思想算法的基本思想 设想这样一个场景:设想这样一个场景:一群鸟在随机搜索食物一群鸟在随机搜索食物 在这块区域里只有一块食物在这块区域里只有一块食物; 所有的鸟都不知道食物在哪里所有的鸟都不知道食物在哪里; 但它们能感受到当前的位置离食物还有多远但它们能感受到当前的位置离食物还有多远. 已知已知那么那么:找到食物的最优策略是什么呢?找到食物的最优策略是什么呢? 搜寻目前离食物最近的鸟的周围区域搜寻目前离食物最

5、近的鸟的周围区域 根据自己飞行的经验判断食物的所在。根据自己飞行的经验判断食物的所在。PSO正是从这种模型中得到了启发正是从这种模型中得到了启发 PSO的基础的基础: 信息的社会共享信息的社会共享 n生物学家对鸟生物学家对鸟(鱼鱼)群捕食的行为研究群捕食的行为研究n社会行为社会行为 (Social-Only Model)n个体认知个体认知 (Cognition-Only Model)算法介绍 q每个寻优的问题解都被想像成一只鸟,称为“粒子”。所有粒子都在一个D维空间进行搜索。q所有的粒子都由一个fitness function 确定适应值以判断目前的位置好坏。q每一个粒子必须赋予记忆功能,能记

6、住所搜寻到的最佳位置。q每一个粒子还有一个速度以决定飞行的距离和方向。这个速度根据它本身的飞行经验以及同伴的飞行经验进行动态调整。 粒子群优化算法求最优解粒子群优化算法求最优解 D维空间中,有N个粒子; 粒子i位置:x xi i=(xi1,xi2,xiD),将xi代入适应函数f(xi)求适应值; 粒子i速度:v vi i=(vi1,vi2,viD) 粒子i个体经历过的最好位置:pbestpbesti i=(pi1,pi2,piD) 种群所经历过的最好位置:gbestgbest=(g1,g2,gD)通常,在第d(1dD)维的位置变化范围限定在 内, 速度变化范围限定在 内(即在迭代中若 超出了边

7、界值,则该维的速度或位置被限制为该维最大速度或边界 位置) min,max,X,ddX,max,-V,max ddVidvid、xq 粒子i的第d维速度更新公式: q 粒子i的第d维位置更新公式: 第k次迭代粒子i飞行速度矢量的第d维分量 第k次迭代粒子i位置矢量的第d维分量 c1,c2加速度常数,调节学习最大步长 r1,r2两个随机函数,取值范围0,1,以增加搜索随机性 w 惯性权重,非负数,调节对解空间的搜索范围kk-111idid1 12 2v =wv()()kkididdidc r pbestxc r gbestx11kkkidididxxvkidvkidxq 粒子速度更新公式包含三部

8、分: 第一部分为粒子先前的速度 第二部分为“认知”部分,表示粒子本身的思考,可理解为粒子i当前位置与自己最好位置之间的距离。 第三部分为“社会”部分,表示粒子间的信息共享与合作,可理解为粒子i当前位置与群体最好位置之间的距离。kk-111idid1 12 2v =wv()()kkididdidc r pbestxc r gbestx區域區域最佳解最佳解全域全域最佳解最佳解運動向量運動向量慣性向量慣性向量12X = X ,X ,.,Xiiiid12V = V ,V ,.,Viiiid12(1)( )( )( )() ()() ()ididididgdidttttvw vc randpxcrand

9、px(1)( )( )iiitttxxvpg1111122V = V+C *r*(Pbest -X)+C *r *(gbest -X)kkkkiiiii11X =X+Vkkkiii12NX = X ,X ,.,Xiiii12NV = V ,V ,.,Viiii算法流程1.Initial:初始化粒子群体(群体规模为n),包括随机位置和速度。2.Evaluation:根据fitness function ,评价每个粒子的适应度。3.Find the Pbest: 对每个粒子,将其当前适应值与其个体历史最佳位置(pbest)对应的适应值做比较,如果当前的适应值更高,则将用当前位置更新历史最佳位置pb

10、est。4.Find the Gbest:对每个粒子,将其当前适应值与全局最佳位置(gbest)对应的适应值做比较,如果当前的适应值更高,则将用当前粒子的位置更新全局最佳位置gbest。5.Update the Velocity:根据公式更新每个粒子的速度与位置。6.如未满足结束条件,则返回步骤2 通常算法达到最大迭代次数 或者最佳适应度值的增量小于某个给定的阈值时算法停止。maxG粒子群优化算法流程图粒子群优化算法流程图 开始初始化粒子群计算每个粒子的适应度根据适应度更新pbest、gbest,更新粒子位置速度结束noyes达到最大迭代次数或全局最优位置满足最小界限?粒子群粒子群算法的算法的

11、构成要素构成要素 - -群体大小群体大小 m m m 是一个整型参数是一个整型参数 m 很小很小: m 很大很大: 当群体数目增长至一定水平时,再增长将当群体数目增长至一定水平时,再增长将不再有显不再有显 但收敛速度慢但收敛速度慢著的作用著的作用陷入局优的可能性很大陷入局优的可能性很大 PSO的优化能力很好,的优化能力很好,粒子群粒子群算法的算法的构成要素构成要素 -权重因子权重因子 权重因子:惯性因子权重因子:惯性因子 、学习因子、学习因子 1c2c失去对粒子本身失去对粒子本身的的速度的记忆速度的记忆 1社会经验部分社会经验部分 前次迭代中自身的速度前次迭代中自身的速度 自我认知部分自我认知

12、部分 基本粒子群算法基本粒子群算法 粒子的速度更新主要由三部分组成:粒子的速度更新主要由三部分组成: 惯性因子惯性因子 kv0kk-111idid1 12 2v =wv()()kkididdidc r pbestxc r gbestx11 1()kididc r pbestx12 2()kdidc r gbestx粒子群粒子群算法的算法的构成要素构成要素-权重因子权重因子 权重因子:惯性因子权重因子:惯性因子 、学习因子、学习因子 1c2c社会经验部分社会经验部分 前次迭代中自身的速度前次迭代中自身的速度 自我认知部分自我认知部分 粒子的速度更新主要由三部分组成:粒子的速度更新主要由三部分组成

13、: kvkk-111idid1 12 2v =wv()()kkididdidc r pbestxc r gbestx11 1()kididc r pbestx12 2()kdidc r gbestx学习因子学习因子 1c10c 无私型粒子群算法无私型粒子群算法 “只有社会,没有自我只有社会,没有自我”迅速丧失群体多样性,迅速丧失群体多样性,易陷入局优而无法跳出易陷入局优而无法跳出粒子群粒子群算法的算法的构成要素构成要素 -权重因子权重因子 权重因子:惯性因子权重因子:惯性因子 、学习因子、学习因子 1c2c社会经验部分社会经验部分 前次迭代中自身的速度前次迭代中自身的速度 自我认知部分自我认知

14、部分 粒子的速度更新主要由三部分组成:粒子的速度更新主要由三部分组成: kvkk-111idid1 12 2v =wv()()kkididdidc r pbestxc r gbestx11 1()kididc r pbestx12 2()kdidc r gbestx自我认知型粒子群算法自我认知型粒子群算法 “只有自我,没有社会只有自我,没有社会”完全没有信息的社会共享,完全没有信息的社会共享,导致算法收敛速度缓慢导致算法收敛速度缓慢 学习因子学习因子 2c20c 粒子群粒子群算法的算法的构成要素构成要素-权重因子权重因子 权重因子:惯性因子权重因子:惯性因子 、学习因子、学习因子 1c2c社会

15、经验部分社会经验部分 前次迭代中自身的速度前次迭代中自身的速度 自我认知部分自我认知部分 粒子的速度更新主要由三部分组成:粒子的速度更新主要由三部分组成: kvkk-111idid1 12 2v =wv()()kkididdidc r pbestxc r gbestx11 1()kididc r pbestx12 2()kdidc r gbestxc c1 1,c,c2 2都不为都不为0 0,称为,称为完全型粒子群算法完全型粒子群算法 完全型粒子群算法更容易保持收敛速度和搜索效完全型粒子群算法更容易保持收敛速度和搜索效果的均衡,是较好的选择果的均衡,是较好的选择 粒子群粒子群算法的算法的构成要

16、素构成要素-最大速度最大速度 但但 在于维护算法的在于维护算法的探索能力探索能力与与开发能力开发能力的平衡的平衡 Vm较大时,探索能力增强,较大时,探索能力增强, mV作用作用: Vm较小时,开发能力增强,较小时,开发能力增强, mVmVVm一般设为每维变量变化范围的一般设为每维变量变化范围的1020. 但但 粒子容易飞过最优解粒子容易飞过最优解 容易陷入局部最优容易陷入局部最优 mV粒子群粒子群算法的算法的构成要素构成要素- 邻域的拓扑结构邻域的拓扑结构 全局粒子群算法和局部粒子群算法全局粒子群算法和局部粒子群算法 gp粒子群算法的邻域拓扑结构包括两种,粒子群算法的邻域拓扑结构包括两种,一种

17、是将群体内一种是将群体内所有个体所有个体都作为粒子的邻域,都作为粒子的邻域,另一种是只将群体中的另一种是只将群体中的部分个体部分个体作为粒子的邻域作为粒子的邻域 群体历史最优位置群体历史最优位置 邻域拓扑结构邻域拓扑结构决定决定 由此,将粒子群算法分为由此,将粒子群算法分为粒子群粒子群算法的算法的构成要素构成要素- 邻域的拓扑结构邻域的拓扑结构 全局粒子群算法全局粒子群算法 1. 1. 粒子自己历史最优值粒子自己历史最优值 2. 2. 粒子群体的全局最优值粒子群体的全局最优值局部粒子群算法局部粒子群算法 1. 1. 粒子自己历史最优值粒子自己历史最优值 2. 2. 粒子邻域内粒子的最优值粒子邻

18、域内粒子的最优值 邻域随迭代次数的增加线性变大,最后邻域扩展到整个粒子群。邻域随迭代次数的增加线性变大,最后邻域扩展到整个粒子群。 经过实践证明:全局版本的粒子群算法收敛速度快,但是容易陷入经过实践证明:全局版本的粒子群算法收敛速度快,但是容易陷入局部最优。局部版本的粒子群算法收敛速度慢,但是很难陷入局部最局部最优。局部版本的粒子群算法收敛速度慢,但是很难陷入局部最优。现在的粒子群算法大都在收敛速度与摆脱局部最优这两个方面下优。现在的粒子群算法大都在收敛速度与摆脱局部最优这两个方面下功夫。其实这两个方面是矛盾的。看如何更好的折中了。功夫。其实这两个方面是矛盾的。看如何更好的折中了。 粒子群粒子

19、群算法的算法的构成要素构成要素 -停止准则停止准则 停止准则一般有如下两种:停止准则一般有如下两种: 最大迭代步数最大迭代步数 可接受的满意解可接受的满意解 粒子群粒子群算法的算法的构成要素构成要素 - 粒子空间的初始化粒子空间的初始化 较好地选择粒子的初始化空间,将大大缩短收较好地选择粒子的初始化空间,将大大缩短收敛时间初始化空间根据具体问题的不同而不同,敛时间初始化空间根据具体问题的不同而不同,也就是说,这是问题依赖的也就是说,这是问题依赖的 从上面的介绍可以看到,粒子群算法与其他现代从上面的介绍可以看到,粒子群算法与其他现代优化方法相比的一个明显特色就是所需调整的优化方法相比的一个明显特

20、色就是所需调整的参数很参数很少少相对来说,相对来说,惯性因子惯性因子和和邻域定义邻域定义较为重要这些较为重要这些为数不多的关键参数的设置却对算法的精度和效率有为数不多的关键参数的设置却对算法的精度和效率有着显著影响着显著影响第九讲第九讲daili 粒子群算法粒子群算法293. 粒子群粒子群算法示例算法示例 例例 求解如下四维求解如下四维Rosenbrock函数的优化问题函数的优化问题 322211min( )100()(1) iiiifxxxx种群大小种群大小: 30,30 (1,2,3,4)ixi 解解 算法的相关设计分析如下算法的相关设计分析如下 编码编码:因为问题的维数是:因为问题的维数

21、是4,所以每个粒子的位置和,所以每个粒子的位置和 max60V即算法中粒子的数量,取即算法中粒子的数量,取 5m 速度均速度均4 维的实数向量维的实数向量设定粒子的设定粒子的最大速度最大速度: 第九讲第九讲daili 粒子群算法粒子群算法30初始位置:初始位置: 0ix设各粒子的初始位置设各粒子的初始位置 和初始速度和初始速度 为:为: 0iv对粒子群进行随机初始化对粒子群进行随机初始化 包括随机初始化各粒子的包括随机初始化各粒子的位置位置和和速度速度 (0)121.721, 9.13677, 6.62244, 3.84079x(0)329.6563, 0.871811, 27.8912, 1

22、7.7425 x(0)2 13.5001, 23.6131, 17.4462, 29.0515 x(0)528.0992, 22.6482, 0.675616, 8.43752 x(0)423.6218, 16.4885, 22.7019, 25.4033x第九讲第九讲daili 粒子群算法粒子群算法31初始速度:初始速度: 0ix设各粒子的初始位置设各粒子的初始位置 和初始速度和初始速度 为:为: 0iv对粒子群进行随机初始化对粒子群进行随机初始化 包括随机初始化各粒子的包括随机初始化各粒子的位置位置和和速度速度 (0)1 19.9048, 29.562, 22.104, 5.45346 v

23、(0)37.83576, 55.7173, 40.9177, 28.255 v(0)220.5922, 28.6944, 26.3216, 19.0615 v(0)517.561, 13.5365, 51.2722, 56.098v(0)4 11.6373, 41.0138, 17.7311, 14.87 v第九讲第九讲daili 粒子群算法粒子群算法32初始速度:初始速度: (0)(0)(0)(0)(0)12345,vvvvv初始位置:初始位置: (0)(0)(0)(0)(0)12345,xxxxx(0)71()2.38817 10fx计算每个粒子的适应值计算每个粒子的适应值 (0)72()

24、4.45306 10fx322211( )100()(1) iiiifxxxx按照按照 计算适应值计算适应值 (0)1gpx(0)75()8.50674 10fx(0)74()6.56888 10fx(0)83()1.35376 10fx历史最优解历史最优解0, (1,2,3,4,5)iiipx第九讲第九讲daili 粒子群算法粒子群算法33更新粒子的速度和位置:更新粒子的速度和位置: 12 ()2 (),kkkkgkvvpxpx11kkkxxv122cc01c 取取 , , 得到速度和位置的更新函数为得到速度和位置的更新函数为 初始速度:初始速度: (0)(0)(0)(0)(0)12345,

25、vvvvv初始位置:初始位置: (0)(0)(0)(0)(0)12345,xxxxx群体历史最优解:群体历史最优解: (0)1gpx0, (1,2,3,4,5)iiipx个体历史最优解:个体历史最优解: 第九讲第九讲daili 粒子群算法粒子群算法34(1)1 19.9048, 29.562, 22.104, 5.45346 v(1)240.0498, 3.76972, 44.9573, 75.6939v更新速度,得:更新速度,得:(1)314.8665, 59.3694, 25.667, 22.1122v初始速度:初始速度: (0)(0)(0)(0)(0)12345,vvvvv初始位置:初始

26、位置: (0)(0)(0)(0)(0)12345,xxxxx群体历史最优解:群体历史最优解: (0)1gpx0, (1,2,3,4,5)iiipx个体历史最优解:个体历史最优解: 12 ()2 (),kkkkgkvvpxpx(1)4 13.843, 32.4824, 51.7604, 39.892 v(1)595.9018, 63.5174, 60.6234, 36.7907v60606060第九讲第九讲daili 粒子群算法粒子群算法35(1)11.81621, 20.4252, 15.4816, 1.61267x(1)226.5497, 27.3829, 27.5112, 30.9485x

27、更新位置,得:更新位置,得:(1)3 14.7898, 60.2412, 53.5582, 39.8547 x初始速度:初始速度: (0)(0)(0)(0)(0)12345,vvvvv初始位置:初始位置: (0)(0)(0)(0)(0)12345,xxxxx群体历史最优解:群体历史最优解: (0)1gpx0, (1,2,3,4,5)iiipx个体历史最优解:个体历史最优解: (1)49.77877, 48.971, 29.0584, 14.4887x(1)531.9008, 37.3518, 60.6756, 45.2282x11kkkxxv不强行拉回解空间不强行拉回解空间 第九讲第九讲dai

28、li 粒子群算法粒子群算法36(1)11.81621, 20.4252, 15.4816, 1.61267x(1)226.5497, 27.3829, 27.5112, 30.9485x更新位置,得:更新位置,得:(1)3 14.7898, 60.2412, 53.5582, 39.8547 x初始速度:初始速度: (0)(0)(0)(0)(0)12345,vvvvv初始位置:初始位置: (0)(0)(0)(0)(0)12345,xxxxx群体历史最优解:群体历史最优解: (0)1gpx0, (1,2,3,4,5)iiipx个体历史最优解:个体历史最优解: (1)49.77877, 48.97

29、1, 29.0584, 14.4887x(1)531.9008, 37.3518, 60.6756, 45.2282x322211( )100()(1) iiiifxxxx按照按照 计算适应值计算适应值 第九讲第九讲daili 粒子群算法粒子群算法37重复上述步骤,将迭代进行下去重复上述步骤,将迭代进行下去 322211( )100()(1) iiiifxxxx按照按照 计算适应值计算适应值 (1)71()2.45726 10fx(1)93()2.16403 10fx(1)82()1.6674 10fx(1)84()6.37125 10fx(1)95()1.6783 10fx历史最优解历史最优解第九讲第九讲daili 粒子群算法粒子群算法38 从上述结果,可以看出,经过从上述结果,可以看出,经过10000次迭代,次迭代,粒子群算法得到了比较好的适应值粒子群算法得到了比较好的适应值. 第九讲第九讲daili 粒子群算法粒子群算法394. 粒子群粒子群算法算法流程流程 第第2步步 计算每个粒子的适应值计算每个粒子的适应值 11kkkxxv1012()(),kkkkgkcccvvpxpx第第1步

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论