第十五章MATLAB优化算法案例分析与应用第15章基于PSO改进策略第十五章MATLAB优化算法案例分析与应用•15.1常用粒子群算法15.1.1基本PSO算法PSO算法中的微粒的飞行的行为规则类似于鸟类运动,从而使整个微粒群的运动表现出与鸟类觅食类似的特性,进而用于求解复杂的优化问题。该算法的基本思想是通过群体中个体之间的协作和信息共享来寻找最优解。相比于进化算法,PSO算法保留了基于种群的全局搜索策略,采用简单的速度—位移模型,避免了复杂的遗传操作,同时特有的记忆使算法可动态跟踪当前的搜索情况来调整其搜索策略。微粒群算法中,每个优化问题的解都是搜索空间中的一只鸟,被抽象为没有质量和体积的微粒,并将其延伸到N维空间。微粒i在N维空间里的位置和速度都表示为一个矢量。PSO算法首先在可行解空间和速度空间随机初始化微粒群,即确定微粒的初始位置和速度。第十五章MATLAB优化算法案例分析与应用•15.1常用粒子群算法15.1.2基本PSO算法流程第十五章MATLAB优化算法案例分析与应用•15.2粒子群算法改进PSO算法的改进研究可以归纳为两方面:一方面的研究是将各种先进理论引入到PSO算法,研究各种改进和PSO算法;另一方面是将PSO算法和其它智能优化算法相结合,研究各种混合优化算法,达到取长补短、改善算法某方面性能的效果。近时期粒子群改进策略主要体现以下几个方面。(1)PSO算法的惯性权重模型,通过惯性权重的引入,提高了算法的全局搜索能力;(2)带邻域操作的PSO模型,克服了PSO模型在优化搜索后期随迭代次数增加搜索结果无明显改进的缺点;(3)将拉伸技术用于PSO最小化问题的求解,避免了PSO算法易陷于局部最小值的缺点;(4)用适应度定标的方法对PSO算法进行改进,在算法收敛的前提下能够提高粒子间适应度的差异;在每次迭代中,依据杂交概率选取指定数量的粒子放入一个池中的粒子随机地两两杂交,产生同样数目的孩子粒子,并用孩子粒子代替父母粒子,以保持种群的粒子数目不变;(5)协同PSO算法,其基本思想是用K个相互独立的粒子群分别在D维的目标搜索空问中的不同维度方向上进行搜索。第十五章MATLAB优化算法案例分析与应用•15.2粒子群算法改进粒子群算法主要保证PSO算法的收敛性,采用收敛因子能够确保算法的收敛,PSO收敛因子模型如下:12()()()()iiiiivkvcrandPxcrandgx2224k12,4,,iiiccxxv粒子群算法对于求解极值最优问题应用较为广泛,粒子群算法根据约束范围内的所有可能的粒子,计算适应度值,通过不断的迭代,最终得到相应的极值最优解,粒子群算法能够求解很多复杂的工程问题,避免了问题无可行解的情况。总的来说,粒子群算法算法简单,需要调节的参数不多,许多情况可以按经验值设置参数就能获得较好的收敛结果。其次,算法采用实数编码,可直接取目标函数本身作为适应度函数,根据目标函数值进行迭代搜索。另外,算法的各微粒具有记忆性,算法搜索速度快,大多数情况下,微粒能收敛于最优解。第十五章MATLAB优化算法案例分析与应用•15.3加快粒子群算法效率15.3.1带惯性权重的PSO算法..11..22..(1)()()()ijijijijgjijvtvtcrpxtcrpxt惯性权重w可以影响微粒的局部最优能力和全局最优能力。15.3.2权重线性递减的PSO算法maxminmaxmaxttmax0.9min0.4对于下列对象:22212111001+-2fxxxxx第十五章MATLAB优化算法案例分析与应用•15.3加快粒子群算法效率15.3.2线性递减权重的PSO算法22212111001+-2fxxxxx图15-4目标函数图像01020304050607080901000123456789x10-3迭代次数适应度值改进PSO算法收敛曲线权重自适应PSO算法图15-2自适应权重粒子群优化算法适应度曲线第十五章MATLAB优化算法案例分析与应用•15.3加快粒子群算法效率15.3.2权重线性递减的PSO算法01020304050607080901000123456789x10-3迭代次数适应度值改进PSO算法收敛曲线权重自适应PSO算法图15-2自适应权重粒子群优化算法适应度曲线222121110012fxxxxx010203040506070809010000.010.020.030.040.050.060.070.080.09迭代次数适应度值改进PSO算法收敛曲线惯性权重线性递减PSO算法图15-3惯性权重线性递减PSO算法适应度曲线第十五章MATLAB优化算法案例分析与应用•15.3加快粒子群算法效率15.3.3自适应权重的PSO算法maxminminminminmax,,avgavgavgfffffffff表示微粒当前的目标函数值。当各微粒的目标值趋于一致或趋于局部最优时,将使惯性权重增大,而各微粒的目标值比较分散时,使惯性权重减小,同时对于目标函数值优于平均目标值的微粒,其对应的惯性权重因子较小,从而保留了该微粒,反之对于目标函数值差于平均目标值的微粒,其对应的惯性权重因子较大,使得该微粒向较好的搜索区域靠拢。第十五章MATLAB优化算法案例分析与应用•15.3加快粒子群算法效率15.3.3自适应权重的PSO算法2221222212sin()1.00.001()xxfxxx图15-4目标函数图像010203040506070809010000.20.40.60.811.21.41.61.8x10-4迭代次数适应度值改进PSO算法收敛曲线权重自适应PSO算法图15-4自适应权重的粒子群算法适应度曲线第十五章MATLAB优化算法案例分析与应用•15.3加快粒子群算法效率15.3.4随机权重策略的PSO算法minmaxmin0,10,1Nrand其中,N(0,l)表示标准正态分布的随机数,rand(0,l)表示0到1之间的随机数。经研究表明,随机权重策略的PSO算法对于多峰函数,能在一定程度上避免陷入局部最优。该方法多用于动态系统中。随机地选取值,使得微粒历史速度对当前速度的影响是随机的。为服从某种随机分布的随机数,从一定程度上可从两方面克服w的线性递减所带来的不足。第十五章MATLAB优化算法案例分析与应用•15.3加快粒子群算法效率15.3.4随机权重策略的PSO算法2412()44fxxx图15-5目标函数图像010203040506070809010000.511.522.53x10-3迭代次数适应度值改进PSO算法收敛曲线随机权重PSO算法图15-6随机权重策略的PSO算法适应度曲线第十五章MATLAB优化算法案例分析与应用•15.3加快粒子群算法效率15.3.5增加收缩因子的PSO算法..11..22..()()()ijijijijgjijvvtcrpxtcrpxt2224CCC12Ccc4C压缩因子比惯性权重系数,能更有效地控制与约束微粒的飞行速度,同时增强了算法的局部搜索能力。虽然惯性权值PSO和压缩因子PSO对典型测试函数表现出各自的优势,但由于惯性常数方法通常采用惯性权值随更新代数增加而递减的策略,算法后期由于惯性权值过小,会失去探索新区域的能力,而压缩因子方法则不存在此不足。第十五章MATLAB优化算法案例分析与应用•15.3加快粒子群算法效率15.3.5增加收缩因子的PSO算法图15-6目标函数图像221122()cos(5)cos(5)fxxxxx0102030405060708090100-2-1.9-1.8-1.7-1.6-1.5-1.4-1.3迭代次数适应度值改进PSO算法收敛曲线带压缩因子的PSO算法图15-7带压缩因子的的粒子群算法适应度曲线第十五章MATLAB优化算法案例分析与应用•15.4本章小结粒子群算法对于解决极值最优解,具有重要的应用价值。与遗传算法相比,粒子群优化算法的信息共享机制是很不同的,在粒子群优化算法中,只有将信息给其他的粒子,这使得整个搜索更新过程跟随当前解。而在粒子群优化算法初期,其解群随进化代数表现了更强的随机性,正是由于其产生了下一代解群的较大随机性,以及每代所有解的“信息”的共享性和各个解的“自我素质”的提高。PSO的一个优势就是采用实数编码,不需要像遗传算法一样采用二进制编码(或者采用针对实数的遗传操作)。粒子具有“记忆”的特性,它们通过“自我”学习和向“他人”学习,使其下一代解有针对性的从“先辈”那里继承更多的信息,从而能在较短的时间内找到最优解。本章主要基于基本的粒子群算法,讨论了带惯性权重的PSO算法、权重线性递减的PSO算法、自适应权重的PSO算法、随机权重的PSO算法以及增加收缩因子的PSO算法等,研究各种混合优化算法,达到取长补短、改善算法某方面性能以及快速收敛性的效果等。bestg