《粒子群优化算法(详细易懂-很多例子).ppt》由会员分享,可在线阅读,更多相关《粒子群优化算法(详细易懂-很多例子).ppt(49页珍藏版)》请在金锄头文库上搜索。
1、粒子群优化算法(PS0)Particle Swarm Optimization智能算法q向大自然学习n遗传算法遗传算法(GA)(GA)n物竞天择,设计染色体编码,根据适应物竞天择,设计染色体编码,根据适应值函数进行染色体选择、交叉和变异操值函数进行染色体选择、交叉和变异操作,优化求解作,优化求解n人工神经网络算法人工神经网络算法(ANN)(ANN)n模仿生物神经元,透过神经元的信息传模仿生物神经元,透过神经元的信息传递、训练学习、联想,优化求解递、训练学习、联想,优化求解n模拟退火算法模拟退火算法(SA)(SA)n模模模仿金属物质退火过程模仿金属物质退火过程解决最优化问题解决最优化问题的方法的
2、方法n传统搜索方法传统搜索方法n保证能找到最优解保证能找到最优解nHeuristic 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、,则该维的速度或位置被限制为该维最大速度或边界 位置) q粒子i的第d维速度更新公式: q 粒子i的第d维位置更新公式: 第k次迭代粒子i飞行速度矢量的第d维分量 第k次迭代粒子i位置矢量的第d维分量 c1,c2加速度常数,调节学习最大步长 r1,r2两个随机函数,取值范围0,1,以增加搜索随机性 w 惯性权重,非负数,调节对解空间的搜索范围q粒子速度更新公式包含三部分: 第一部分为粒子先前的速度 第二部分为“认知”部分,表示粒子本身的思考,可理解为粒子i当前位置与自己最好位置之间的距离。 第三部分为“社会”部分,表示粒子间的信息共享与合作,可理解为粒子i当前位置与群体最好位置之间的距离。區域
8、區域最佳解最佳解全域全域最佳解最佳解運動向量運動向量慣性向量慣性向量 Study FactorStudy Factorpg算法流程1.Initial:初始化粒子群体(群体规模为n),包括随机位置和速度。2.Evaluation:根据fitness function ,评价每个粒子的适应度。3.Find the Pbest: 对每个粒子,将其当前适应值与其个体历史最佳位置(pbest)对应的适应值做比较,如果当前的适应值更高,则将用当前位置更新历史最佳位置pbest。4.Find the Gbest:对每个粒子,将其当前适应值与全局最佳位置(gbest)对应的适应值做比较,如果当前的适应值更高,
9、则将用当前粒子的位置更新全局最佳位置gbest。5.Update the Velocity:根据公式更新每个粒子的速度与位置。6.如未满足结束条件,则返回步骤2 通常算法达到最大迭代次数 或者最佳适应度值的增量小于某个给定的阈值时算法停止。粒子群优化算法流程图粒子群优化算法流程图 开始初始化粒子群计算每个粒子的适应度根据适应度更新pbest、gbest,更新粒子位置速度结束noyes达到最大迭代次数或全局最优位置满足最小界限?2 2維簡例維簡例NoteNote合理解合理解目前最優解目前最優解區域最佳解區域最佳解全域全域區域區域粒子群粒子群算法的算法的构成要素构成要素 - -群体大小群体大小 m
10、 m m 是一个整型参数是一个整型参数 m 很小很小: m 很大很大: 当群体数目增长至一定水平时,再增长将当群体数目增长至一定水平时,再增长将不再有显不再有显 但收敛速度慢但收敛速度慢著的作用著的作用陷入局优的可能性很大陷入局优的可能性很大 PSO的优化能力很好,的优化能力很好,粒子群粒子群算法的算法的构成要素构成要素 -权重因子权重因子 权重因子:惯性因子权重因子:惯性因子 、学习因子、学习因子 失去对粒子本身失去对粒子本身的的速度的记忆速度的记忆 社会经验部分社会经验部分 前次迭代中自身的速度前次迭代中自身的速度 自我认知部分自我认知部分 基本粒子群算法基本粒子群算法 粒子的速度更新主要
11、由三部分组成:粒子的速度更新主要由三部分组成: 惯性因子惯性因子 粒子群粒子群算法的算法的构成要素构成要素-权重因子权重因子 权重因子:惯性因子权重因子:惯性因子 、学习因子、学习因子 社会经验部分社会经验部分 前次迭代中自身的速度前次迭代中自身的速度 自我认知部分自我认知部分 粒子的速度更新主要由三部分组成:粒子的速度更新主要由三部分组成: 学习因子学习因子 无私型粒子群算法无私型粒子群算法 “只有社会,没有自我只有社会,没有自我”迅速丧失群体多样性,迅速丧失群体多样性,易陷入局优而无法跳出易陷入局优而无法跳出粒子群粒子群算法的算法的构成要素构成要素 -权重因子权重因子 权重因子:惯性因子权
12、重因子:惯性因子 、学习因子、学习因子 社会经验部分社会经验部分 前次迭代中自身的速度前次迭代中自身的速度 自我认知部分自我认知部分 粒子的速度更新主要由三部分组成:粒子的速度更新主要由三部分组成: 自我认知型粒子群算法自我认知型粒子群算法 “只有自我,没有社会只有自我,没有社会”完全没有信息的社会共享,完全没有信息的社会共享,导致算法收敛速度缓慢导致算法收敛速度缓慢 学习因子学习因子 粒子群粒子群算法的算法的构成要素构成要素-权重因子权重因子 权重因子:惯性因子权重因子:惯性因子 、学习因子、学习因子 社会经验部分社会经验部分 前次迭代中自身的速度前次迭代中自身的速度 自我认知部分自我认知部
13、分 粒子的速度更新主要由三部分组成:粒子的速度更新主要由三部分组成: c c1 1,c,c2 2都不为都不为0 0,称为称为完全型粒子群算法完全型粒子群算法 完全型粒子群算法更容易保持收敛速度和搜索效完全型粒子群算法更容易保持收敛速度和搜索效果的均衡,是较好的选择果的均衡,是较好的选择 粒子群粒子群算法的算法的构成要素构成要素-最大速度最大速度 但但 在于维护算法的在于维护算法的探索能力探索能力与与开发能力开发能力的平衡的平衡 Vm较大时,探索能力增强,较大时,探索能力增强, 作用作用: Vm较小时,开发能力增强,较小时,开发能力增强, Vm一般设为每维变量变化范围的一般设为每维变量变化范围的
14、1020. 但但 粒子容易飞过最优解粒子容易飞过最优解 容易陷入局部最优容易陷入局部最优 粒子群粒子群算法的算法的构成要素构成要素- 邻域的拓扑结构邻域的拓扑结构 全局粒子群算法和局部粒子群算法全局粒子群算法和局部粒子群算法 粒子群算法的邻域拓扑结构包括两种,粒子群算法的邻域拓扑结构包括两种,一种是将群体内一种是将群体内所有个体所有个体都作为粒子的邻域,都作为粒子的邻域,另一种是只将群体中的另一种是只将群体中的部分个体部分个体作为粒子的邻域作为粒子的邻域 群体历史最优位置群体历史最优位置 邻域拓扑结构邻域拓扑结构决定决定 由此,将粒子群算法分为由此,将粒子群算法分为粒子群粒子群算法的算法的构成
15、要素构成要素- 邻域的拓扑结构邻域的拓扑结构 全局粒子群算法全局粒子群算法 1. 1. 粒子自己历史最优值粒子自己历史最优值 2. 2. 粒子群体的全局最优值粒子群体的全局最优值局部粒子群算法局部粒子群算法 1. 1. 粒子自己历史最优值粒子自己历史最优值 2. 2. 粒子邻域内粒子的最优值粒子邻域内粒子的最优值 邻域随迭代次数的增加线性变大,最后邻域扩展到整个邻域随迭代次数的增加线性变大,最后邻域扩展到整个粒粒子群子群。 经过实践证明:全局版本的粒子群算法收敛速度快,但是容易陷入经过实践证明:全局版本的粒子群算法收敛速度快,但是容易陷入局部最优。局部版本的粒子群算法收敛速度慢,但是很难陷入局
16、部最局部最优。局部版本的粒子群算法收敛速度慢,但是很难陷入局部最优。现在的粒子群算法大都在收敛速度与摆脱局部最优这两个方面下优。现在的粒子群算法大都在收敛速度与摆脱局部最优这两个方面下功夫。其实这两个方面是矛盾的。看如何更好的折中了。功夫。其实这两个方面是矛盾的。看如何更好的折中了。 粒子群粒子群算法的算法的构成要素构成要素 -停止准则停止准则 停止准则一般有如下两种:停止准则一般有如下两种: 最大迭代步数最大迭代步数 可接受的满意解可接受的满意解 粒子群粒子群算法的算法的构成要素构成要素 - 粒子空间的初始化粒子空间的初始化 较好地选择粒子的初始化空间,将大大缩短收较好地选择粒子的初始化空间
17、,将大大缩短收敛时间初始化空间根据具体问题的不同而不同,敛时间初始化空间根据具体问题的不同而不同,也就是说,这是问题依赖的也就是说,这是问题依赖的 从上面的介绍可以看到,粒子群算法与其他现代从上面的介绍可以看到,粒子群算法与其他现代优化方法相比的一个明显特色就是所需调整的优化方法相比的一个明显特色就是所需调整的参数很参数很少少相对来说,相对来说,惯性因子惯性因子和和邻域定义邻域定义较为重要这些较为重要这些为数不多的关键参数的设置却对算法的精度和效率有为数不多的关键参数的设置却对算法的精度和效率有着显著影响着显著影响第九讲第九讲daili 粒子群算法粒子群算法293. 粒子群粒子群算法示例算法示
18、例 例例 求解如下四维求解如下四维Rosenbrock函数的优化问题函数的优化问题 种群大小种群大小: 解解 算法的相关设计分析如下算法的相关设计分析如下 编码编码:因为问题的维数是:因为问题的维数是4,所以每个粒子的位置和,所以每个粒子的位置和 即算法中粒子的数量,取即算法中粒子的数量,取 速度均速度均4 维的实数向量维的实数向量设定粒子的设定粒子的最大速度最大速度: 第九讲第九讲daili 粒子群算法粒子群算法30初始位置:初始位置: 设各粒子的初始位置设各粒子的初始位置 和初始速度和初始速度 为:为: 对粒子群进行随机初始化对粒子群进行随机初始化 包括随机初始化各粒子的包括随机初始化各粒
19、子的位置位置和和速度速度 第九讲第九讲daili 粒子群算法粒子群算法31初始速度:初始速度: 设各粒子的初始位置设各粒子的初始位置 和初始速度和初始速度 为:为: 对粒子群进行随机初始化对粒子群进行随机初始化 包括随机初始化各粒子的包括随机初始化各粒子的位置位置和和速度速度 第九讲第九讲daili 粒子群算法粒子群算法32初始速度:初始速度: 初始位置:初始位置: 计算每个粒子的适应值计算每个粒子的适应值 按照按照 计算适应值计算适应值 历史最优解历史最优解第九讲第九讲daili 粒子群算法粒子群算法33更新粒子的速度和位置:更新粒子的速度和位置: 取取 , , 得到速度和位置的更新函数为得
20、到速度和位置的更新函数为 初始速度:初始速度: 初始位置:初始位置: 群体历史最优解:群体历史最优解: 个体历史最优解:个体历史最优解: 第九讲第九讲daili 粒子群算法粒子群算法34更新速度,得:更新速度,得:初始速度:初始速度: 初始位置:初始位置: 群体历史最优解:群体历史最优解: 个体历史最优解:个体历史最优解: 第九讲第九讲daili 粒子群算法粒子群算法35更新位置,得:更新位置,得:初始速度:初始速度: 初始位置:初始位置: 群体历史最优解:群体历史最优解: 个体历史最优解:个体历史最优解: 不强行拉回解空间不强行拉回解空间 第九讲第九讲daili 粒子群算法粒子群算法36更新
21、位置,得:更新位置,得:初始速度:初始速度: 初始位置:初始位置: 群体历史最优解:群体历史最优解: 个体历史最优解:个体历史最优解: 按照按照 计算适应值计算适应值 第九讲第九讲daili 粒子群算法粒子群算法37重复上述步骤,将迭代进行下去重复上述步骤,将迭代进行下去 按照按照 计算适应值计算适应值 历史最优解历史最优解第九讲第九讲daili 粒子群算法粒子群算法38 从上述结果,可以看出,经过从上述结果,可以看出,经过10000次迭代,次迭代,粒子群算法得到了比较好的适应值粒子群算法得到了比较好的适应值. 第九讲第九讲daili 粒子群算法粒子群算法394. 粒子群粒子群算法算法流程流程
22、 第第2步步 计算每个粒子的适应值计算每个粒子的适应值 第第1步步 在初始化范围内,对粒子群进行随机初始化,在初始化范围内,对粒子群进行随机初始化,第第5步步 更新粒子的速度和位置,公式如下更新粒子的速度和位置,公式如下 第第3步步 更新粒子个体的历史最优位置更新粒子个体的历史最优位置 第第6步步 若未达到终止条件,则转第若未达到终止条件,则转第2步步 包括随机位置和速度包括随机位置和速度 第第4步步 更新粒子群体的历史最优位置更新粒子群体的历史最优位置 惯性权重 19981998年,年,ShiShi和和EberhartEberhart引入了惯性权重引入了惯性权重w w,并提出动,并提出动态调
23、整惯性权重以平衡收敛的全局性和收敛速度,该算法态调整惯性权重以平衡收敛的全局性和收敛速度,该算法被称为标准被称为标准PSOPSO算法算法 惯性权重w描述粒子上一代速度对当前代速度的影响。w值较大,全局寻优能力强,局部寻优能力弱;反之,则局部寻优能力强。当问题空间较大时,为了在搜索速度和搜索精度之间达到平衡,通常做法是使算法在前期有较高的全局搜索能力以得到合适的种子,而在后期有较高的局部搜索能力以提高收敛精度。所以w不宜为一个固定的常数。线性递减权值 wmax最大惯性权重,wmin最小惯性权重,run当前迭代次数,runmax为算法迭代总次数 较大的较大的w w有较好的全局收敛能力,较小的有较好
24、的全局收敛能力,较小的w w则有较强的则有较强的局部收敛能力。因此,随着迭代次数的增加,惯性权重局部收敛能力。因此,随着迭代次数的增加,惯性权重w w应不断减少,从而使得粒子群算法在初期具有较强的全局应不断减少,从而使得粒子群算法在初期具有较强的全局收敛能力,而晚期具有较强的局部收敛能力。收敛能力,而晚期具有较强的局部收敛能力。 1999年,年,Clerc引入收缩因子以保证算法的收敛性。引入收缩因子以保证算法的收敛性。速度更新公式为其中,收缩因子K为受1 2 限制的w。1 2是需要预先设定的模型参数收缩因子法控制系统行为最终收敛,且可以有效搜索不同区域,该法能得到较高质量的解。收缩因子法PSO应用PSO存在的问题(1)PSO存在的问题(2)PSO研究热点PSO研究热点PSO研究热点