自适应粒子群算法设计研究和在多目标优化中应用_第1页
自适应粒子群算法设计研究和在多目标优化中应用_第2页
自适应粒子群算法设计研究和在多目标优化中应用_第3页
自适应粒子群算法设计研究和在多目标优化中应用_第4页
自适应粒子群算法设计研究和在多目标优化中应用_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

..目录第一章绪论31.1本文的。。。。。3智能优化算法〔见智能优化算法及应用P1页4三种典型智能优化算法4粒子群算法与其他算法的异同6粒子群算法的优劣势及应用〔见粒子群算法及其应用71.2本文的研究背景71.3本文的研究内容8第二章粒子群算法的基本原理和发展现状82.1引言82.2粒子群算法的起源背景82.3粒子群算法的基本思想92.4基本粒子群算法模型与实现12基本粒子群算法模型12粒子的运动轨迹分析13基本粒子群算法的参数设置13基本粒子群算法流程142.4.5基本粒子群算法的优缺点172.5粒子群算法的研究现状及方向172.5.1粒子群算法的研究现状182.5.2粒子群算法的研究方向192.6粒子群算法的主要应用192.7本章小结21第三章改进的粒子群算法213.1引言213.2改进的粒子群算法综述213.3标准粒子群算法<粒子群算法及应用P19>253.3.1算法思想253.3.2测试函数263.3.3算法测试283.3.4测试结果与算法评估313.4小生境粒子群算法313.4.1算法思想313.4.2算法测试313.4.3测试结果与算法评估313.5自适应调整飞行时间粒子群算法313.5.1算法思想313.5.2算法测试313.5.3测试结果与算法评估313.6本章小结31第四章自适应粒子群算法AFIPSO324.1引言324.2AFIPSO基本思想324.3AFIPSO算法流程334.4AFIPSO实验344.4.1测试函数344.4.2参数选取354.4.3优化结果与结果分析354.5本章小结37第五章AFIPSO在多目标优化问题中的应用375.1引言375.2AFIPSO对多目标函数的优化38自适应粒子群算法〔AFIPSO385.2.2AFIPSO对多目标函数的优化385.3FCCU分馏塔的多目标优化模型435.4AFIPSO在工程中的应用445.4.1多目标转化为单目标445.4.2AFIPSO智能优化FCCU分馏塔参数调试445.4.3AFIPSO优化FCCU分馏塔结果及其比较分析465.5本章小结47结论47参考文献48攻读硕士期间取得的研究成果53致谢53第一章绪论随着人类生存空间的扩大,以及认识世界和改造世界范围的拓宽,现实中碰到的许多科学、工程和经济问题呈复杂化、多极化、非线性等特点,这就使得高校的优化技术和智能计算成为迫切要求。经典的优化算法通常采用局部搜索方法,它们一般与特定问题相关或是局部搜索方法的变形,适用于求解小规模且定义明确的问题。而实际工程问题一般规模较大,寻找一种适合于大规模并且局域智能特征的算法已成为人们研究的目标和方向。二十世纪八十年代以来,涌现了很多新颖的优化算法,如:混沌算法、遗传算法GA〔GeneticAlgorithm、蚁群算法ACA〔AntColonyAlgorithm、粒子群算法PSO〔ParticleSwarmOptimization和模拟退火算法SA〔等。它们通过模拟某些自然现象的发展过程而来,为解决复杂问题提供了新的思路和手段。由于这些算法构造直观且符合自然机理,因而被称为智能优化算法〔。本文的。。。。。智能优化算法是通过模拟某些自然现象的发展过程而形成的算法,以结构化和随机化的搜索策略实现算法的优化过程,常用于大规模的并行计算。智能优化算法提出后受到了人们的重视,其中遗传算法、蚁群算法、粒子群算法作为三种典型智能算法得到迅速发展。1.1.1智能优化算法〔见智能优化算法及应用P1页智能优化算法是通过模拟或揭示某些自然现象或过程发展而来的,与普通的搜索算法一样都是迭代算法,对问题的数学描述不要求满足可微性、凸性等条件,是以一组解〔种群为迭代的初始值,将问题的参数进行编码,映射为可进行启发式操作的数据结构。算法仅用到优化的目标函数值的信息,不必用到目标函数的倒数信息,搜索策略是结构化和随机化的〔概率型,其优点是:具有全局的、并行的优化性能,鲁棒性、通用性强等。智能优化算法的使用范围非常广泛,特别适用大规模的并行计算。1.1.2三种典型智能优化算法智能优化算法的应用范围广泛,特别适用于大规模的并行计算。通过研究,人们先后提出了多种智能优化算法,其中遗传算法、蚁群算法、粒子群算法较为典型。1、遗传算法〔见粒子群算法及应用P51975年,Holland[]提出了遗传算法,它是由自然界的进化而得到启发的一种有效解决最优化问题的方法。遗传算法是一种全局范围的探索过程,在解决复杂问题中它常常能够寻找到最优解的附近区域。每个染色体个体代表一个潜在解,在利用此算法求解前,需对染色体进行二进制编码,然后通过选择、交叉和变异三个步骤进行进化,解随着进化而得到改善。1选择运算:以一定概率从种群中选择若干个体的操作。选择运算的目的是为了从当前群体中选出优良的个体,使它们有机会作为父代繁殖后代子孙。判断个体优劣的准则是个体的适应度值。选择运算模拟了达尔文试着生存、优胜劣汰原则,个体适应度越高,被选择的机会就越大。2交叉运算:两个染色体之间通过交叉而重组形成新的染色体,相当于生物进化过程中有性繁殖的基因重组过程。3变异运算:染色体的某一基因发生变化,从而产生新的染色体,表现出新的性状。变异运算模拟了生物进化过程中的基因突变方法,将某个染色体上的基因变异为其等位基因。 遗传算法作为一种重要的智能优化算法,发展至今已较为成熟,广泛应用于各个领域。算法搜索从群体出发,具有潜在的并行性;且交叉和变异的过程能有效避免早熟现象,鲁棒性强;搜索使用评价函数启发,使用概率机制进行迭代,具有随机性、可扩展性、容易与其他算法结合的优点。但是遗传算法对于系统中的反馈信息利用不够,当求解到一定范围时往往做大量无谓的冗余迭代,求精确解效率低。2、蚁群算法〔见智能优化算法及应用P121页蚁群算法是最近几年才提出的一种新型的智能优化算法,是对真实蚂蚁的觅食过程的抽象继承与改进,最早成功应用于解决著名的旅行商问题TSP〔TravelingSalesmanProblem。生物界中的蚂蚁在寻找食物源时,能在其走过的路径上释放一种蚂蚁特有的分泌物〔pheromone—信息素,使得一定范围内的其他蚂蚁能够觉察并影响其行为。当某些路径上走过的蚂蚁越来越多时,留下的这种信息素也越多,以致后来蚂蚁选择该路径的概率也越高,从而更增加了该路径的吸引强度,蚁群就是靠着这种内部的生物协同机制逐渐形成一条它们自己事先并未意识到的最短路线。蚁群算法从这种模型中得到启示并用于解决优化问题。蚁群算法每个优化问题的解都是搜索空间中的一只蚂蚁,蚂蚁都有一个由被优化函数决定的适应度值〔与要释放的信息素成正比,蚂蚁就是根据它周围的信息素的多少决定它们移动的方向,同时蚂蚁也在走过的路上释放信息素,以便影响别的蚂蚁。在该算法中,可行解经过多次迭代后,最终将以最大的概率逼近问题的最优解。它不仅利用了正反馈原理、在一定程度上可以加快进化过程,而且是一种本质并行的算法,不同个体之间不断进行信息的交流和传递,从而能够相互协作,有利于发现较好解。但是蚁群算法作为一种新兴的算法,还存在一定的缺陷,如:该算法需要较长的搜索时间,由于蚁群中各个个体的运动是随机的,虽然通过信息交换能够向着最优解优化,但是当群体规模较大时,很难在较短的时间内从大量杂乱无章的路径中找出一条较好的路径。而且在搜索到一定程度后,该算法容易出现停滞现象。3、粒子群算法〔见智能优化算法及应用P页粒子群算法最早于1995年提出,是对鸟群、鱼群觅食过程中的迁徙和聚集的模拟,是继遗传算法、蚁群算法后又一群体智能优化算法,目前已成为智能优化算法的另一重要分支。鸟群在觅食的迁徙过程中,有既分散又集中的特点。总是有那么一只鸟对食物的嗅觉较好,即对食源的大致方向具有较好的洞察力,从而这只鸟就拥有食源的较好信息。由于在找到食物的途中,它们随时都相互传递信息,特别是好消息。所以,在好消息的指引下,最终导致了鸟群"一窝蜂"地奔向食源,达到了在食源的群集。PSO算法就从这种生物种群行为特性中得到启发并用于求解优化问题。粒子群算法最大的特点在于概念简单,易于理解,且参数少,易于实现,因而短期内得到很大发展,迅速地得到了国际计算研究领域的认可。但其概念简单,易于实现的同时也存在早熟收敛、稳定性差等缺点。粒子群算法与其他算法的异同遗传算法、蚁群算法与粒子群算法是智能优化算法中的三个重要成员。而最新提出的粒子群算法以高效的特点受到学术界的广泛重视,而它与以往智能优化算法的异同也吸引众多学者来研究。1、粒子群算法与遗传算法的异同粒子群算法与遗传算法最大的共同之处在于都是基于"群体"。两种算法都是随机初始化群体,基于适应度的概率计算,然后根据适应值来进行一定的随机搜索,且都不能保证一定能够找到最优解。遗传算法主要涉及三个算子:选择、交叉和突变算子。粒子群算法中的随机加速度使得粒子向它自身最好位置和群体最好位置靠近,在某种程度上类似于遗传算法中的交叉算子。粒子群算法位置更新操作时的方向改变类似于遗传算法中的突变算子。但是,两种算法也存在很多不同之处。1信息的共享机制不同:在遗传算法中,染色体相互共享信息,整个种群比较均匀的向最优区域移动。在粒子群算法中,信息只来自粒子自身找到的最好位置和群体中最好粒子,这是单向的信息流动。与遗传算法比较,所有的粒子在大多数情况下可能更快地收敛于最优值。2信息利用不同:在进化过程中,遗传算法仅个体利用位置的信息,而粒子群算法同时利用个体的位置与速度信息,能够更有效地进行优化搜索。3个体淘汰机制不同:在遗传算法中,根据"适者生存"的理念,低适应值的个体在选择部分有被淘汰的可能,而粒子群算法没有直接利用选择函数,因此具有低适应值的粒子在优化过程中仍能生存,且有可能搜索到解空间中的任何领域,有较强的鲁棒性。2、粒子群算法与蚁群算法的异同粒子群算法与蚁群算法提出的年代相似,而且基本思想都是模拟自然界生物群体行为来构造随机优化算法的。粒子群算法与蚁群算法的相同点在于,它们都是不确定的、概率型的全局优化算法,各个智能体之间通过相互协作来更好地适应环境,表现出与环境交互的能力,并且具有本质的并行性。所有个体都保存最优解的相关知识。在不确定的复杂时变环境中,可通过学习不断提高算法中个体的适应性。粒子群算法与蚁群算法虽然同属于仿生算法,并且有很多相似之处,但是在算法机理、实现形式等方面存在许多不同之处。1信息反馈机制不同:蚁群算法采用了正反馈机制,每个个体智能感知局部信息,不能直接利用全局信息,所以一般需要较长的搜索时间,且容易出现停滞现象。而粒子群算法采用单向信息共享机制,将当前搜索到的最优值进行全局共享,原理相对简单,所需的代码和参数较少。2理论基础成熟度不同:蚁群算法已经有了较成熟的收敛性分析方法,并且可对收敛速度进行评估。而粒子群算法的数学基础相对较为薄弱,目前还缺乏深刻且具有普遍意义的理论分析。在收敛性分析方面的研究,还需进一步将确定性向随机性转化。1.1.4粒子群算法的优劣势及应用〔见粒子群算法及其应用作为一种新兴的智能优化算法,粒子群算法的广泛传播在于它具有其他智能优化算法所不具备的优势,粒子群算法采用实数编码,直接在问题域上进行处理,无需转换,且算法接单易于实现。在处理复杂度较低的问题是存在一定的优势。但是作为智能优化算法的一种,,同时也存在一般智能优化算法的缺陷。粒子群算法发展历史尚短,在理论基础方面还不太成熟,且算法较简单容易陷入局部极值,导致早熟现象的产生。在与其他算法结合或算法改进后能较好地求解高复杂度的问题。粒子群算法目前已广泛应用于函数优化、神经网络训练、模糊系统控制等领域。而粒子群算法比较有潜力的应用还包括系统设计、多目标优化、分类、模式识别、调度、信号处理、决策和机器人应用等。1.2本文的研究背景在现代化的工业生产中,如何同时使生产的布偶那个产品都达到满意的产量一直是工业领域期待解决的问题。对工程应用中的一些多目标优化问题,本课题组曾用基本遗传算法、自适应遗传算法和参数自适应蚁群算法进行优化,并取得一定成果。但是在工程问题中,只能不断地接近最优值,无法真正达到理论最优值,而算法的改进能有效提高工业生产中的经济效益。在此背景下,本文欲对粒子群算法的性能及其在工程中的应用进行深入研究。1.3本文的研究内容第二章粒子群算法的基本原理和发展现状2.1引言粒子群算法自提出后引起各界的重视,并将其广泛应用与各个领域。但其理论基础还较为薄弱,缺乏深的且具有普遍意义的理论分析。本章将介绍粒子群算法的基本原理和发展现状,为进一步研究粒子群算法做好铺垫。2.2粒子群算法的起源背景自然界生物有时候以群体形式存在,部分科学家很早以前就对鸟群和鱼群的生物行为进行计算机模拟。1995年Eberhart和Kennedy受他们早期对许多鸟类的群体行为进行建模和仿真研究结果的启发,共同提出了粒子群算法,他们的仿真模型算法主要利用了生物学家Hepper的模型和Boyd的个体学习、文化传递的概念。在Hepper的仿真中,鸟在一块栖息地附近群聚,这块栖息地吸引着鸟,直到它们都落在这块地上。Hepper的模型中鸟是知道栖息地的位置的,但在实际情况中,鸟类在刚开始是不知道食物的所在地的。依据Boyd的个体学习、文化传递的理念,Kennedy等认为鸟之间存在着相互交换信息。通过探索了人类的决策过程Boyd认为,人们在决策过程中常常会综合两种重要信息。第一个是自身经验,即根据自己以前的经历所积累的经验来判断状态的好坏。第二个是他人的经验,即人们通过周围人的一些行为判断哪些影响是正面的,哪些是负面的。人们根据自身经验和他人经验做决定这一思路为粒子群算法的信息交换提供了有效地参考方式。于是参考Boyd的个体学习、文化传递的理念,Kennedy等在仿真中增加个体位置调整规则:每个个体能够记住自己当前所找到的最好的位置,称为"历史最优pbest";每个个体能够获取目前为止所有个体中的最优值,称为"全局最优gbest"。在这两个最优变量的牵引下,鸟群在某种程度上朝这些方向靠近。他们综合以上内容,提出了实际鸟群的简化模型,即粒子群算法。2.3粒子群算法的基本思想与基于达尔文"适者生存、优胜劣汰"进化思想的遗传算法不同的是,粒子群算法是通过个体之间的协助来寻找最优解,它利用了生物群体中信息共享会产生进化优胜的思想。鸟群在觅食的迁徙过程中,有既分散又集中的特点。总有那么一只鸟对食物的嗅觉较好,即对食源的大致方向具有较好的洞察力,从而这只鸟就拥有食源的较好信息。由于在寻找食物的途中,它们随时都相互传递信息,特别是好消息。所以,在好消息的指引下,最终导致了鸟群"一窝蜂"地奔向食源,达到在食源的群集。粒子群算法就从这种生物种群行为特性中得到启发并用于求解优化问题。粒子群算法中,解群相当于鸟群,一地到一地的迁徙相当于解群的进化,"好消息"相当于解群每代进化中的最优解,食源相当于全局最优解。图2-1:鸟群觅食原理示意图在粒子群算法中,每个优化问题的潜在解都可以想象成维搜索空间中的一个点,我们称之为"粒子"〔Particle。粒子在搜索空间中以一定的速度飞行,这个速度根据它本身的飞行经验和同伴的飞行经验来动态调整。所有的粒子都有一个被目标函数决定的适应值,并且知道自己到目前为止发现的最好位置。每个粒子使用下列信息调整自己的位置:1当前位置zk;2当前速度vk;3当前位置与自己最好位置之间的距离pbestk-zk;4当前位置与群体最好位置之间的距离gbestk-z图2-2:粒子群移动原理Figure2-2:MovingPrincipleofparticles从社会学的角度来看[13],图中为vk粒子的先前速度,称为记忆项,是在惯性的作用下继续朝原来的方向运动;pbestk-zk为"认知<Cognition>"部分,表示粒子自身的经验,是在自身经历最优位置的牵引下运动;gbestk-从而可得到粒子群算法是主要遵循了三个基本原则,定义为:可计算原则〔proximity:粒子群必须能够执行简单的空间和时间的计算;2、可反应原则〔quality:粒子群必须能够对周围环境的品质因素有所反应,能够感知到自身经验信息和社会经验信息〔变量pbest和gbest隐含着这一规则;3、可适应原则〔adaptability:在自身经验信息和社会经验信息的牵引下,粒子任有能力探索新的领域〔vk2.4基本粒子群算法模型与实现从粒子群算法的基本思想克制,每个粒子是在其当前位置、当前速度、自身历史最优位置以及全局最优位置的协调作用下进行位置调整的。那算法实现过程中这些因素具体是如何协调作用的呢?后面将通过介绍基本粒子群算法的模型与实现加以说明。2.4.1基本粒子群算法模型假设在一个维搜索空间中,PSO算法初始化为个随机粒子,每个粒子位置表示一个潜在解。在每一次迭代过程中,粒子通过跟踪两个极值来更新自己[6]:第一个就是粒子本身目前所找到的最优解,叫做个体极值,可以看作是粒子自己的飞行经验;另一个极值是整个粒子群目前所找到的最优解,叫做全局极值,可以看作群体经验。用,,表示第个粒子的位置向量;,,表示第个粒子的飞行速度;,,表示第个粒子迄今为止搜索到的最好位置;,,表示整个粒子群找到的最优位置。由文献[12]知,粒子是按照式〔2-1和式〔2-2来更新自己的速度和位置的:<2-1><2-2>式中表示当前迭代次数;、是学习因子,通常为正常数,调节在自身最优位置和全局最优位置的牵引力度;、是介于0和1之间的随机数;表示最大迭代次数。由〔2-2式可知,粒子的新速度主要由三部分决定:1粒子原始速度;2粒子当前位置与自身最优位置的距离;3粒子当前位置与群体最优位置的距离。在三部分的协同合作下生成新的速度方向与大小,进而达到新的位置。基本粒子群算法的模型设计充分体现了粒子群算法的基本思想,通过给不同的影响因素添加权重以达到相互协作,并且各参数可根据具体情况进行设置,具有很大的灵活性和适应性。2.4.2粒子的运动轨迹分析2.4.3基本粒子群算法的参数设置针对不同的问题,基本粒子群算法的参数设置也不同,经常需要多次尝试与调整才能找到比较适合的参数匹配。根据多年来人们对粒子群算法的研究与总结,发现各个参数在某些设置范围内模型效果较理想,具有一定的参考价值。基本粒子群算法中的一些参数的经验设置:1、粒子数:粒子数越多,一次迭代所花费的时间越多,相应的迭代代数可以减少。如果粒子数太少,很容易陷入局部极值,迭代次数再多也无法跳出;如果粒子数太多,每一代进化的效果有限,但计算却花费了大量时间,在要取得同等最优解效果的情况下需要长时间的等待,是不划算的。一般取20-50。不过对于比较难的问题或者特定类别的问题,粒子数可取到100或200。2、粒子的最大速度、:决定粒子在一个循环中最大的移动距离,该值一般由用户自己设定。最大速度是一个非常重要的参数。如果最大速度的值取得太大,则粒子们容易越过优秀区域,或者在最优解附近徘徊,导致振荡现象;如果太小,则粒子们就可能在自身历史最优位置和全局最优位置的牵引下,很快走向局部极值,无法充分地探测局部最优区域以外的区域,粒子的扩展探测能力减弱。假设搜索空间的第维定义的区间为,则通常取,每一维都用相同的方法设定[13]。决定一个粒子的最小移动距离,一般情况下取0,因为粒子在迭代过程中,移动距离越来越小,在即将到达最优解时,移动距离接近为0。3、学习因子、:学习因子、分别与、的乘积决定粒子受自身最优位置和历史最优位置牵引的大小,由于、取之间的数,、此时起到基数的作用。、越大,牵引的效果越明显。如果牵引力过大,则粒子的探测能力变弱,容易陷入局部极值;如果牵引力过小,算法的收敛速度太慢,花费时间较长。自身因素参数和社会因素参数一般要更加经验值来定。在优化问题中通常取2,不过在文献中也有取其他的值,但一般等于并且范围在0和4之间。4、终止条件:一般设为最大迭代数或计算精度,这个终止条件通常要由具体的问题确定。如果是对解的精度有要求,则将代与代之间解的差值精度达到某个特定值为终止条件,如:;如果对时间有所要求,可以设置最大的迭代次数,不管求解情况如何,解的精度如何,只要达到了最大的迭代次数则停止。算法的参数是相互作用,相辅相成的。不能只调节其中的某一个参数,不能说某个参数取某个值适合这个问题,参数是一组一组来取。只能说某组参数的选取对特定问题的处理效果相对较好。而且很多参数的大与小,是相对而言,必须是在了解所有参数意义的情况下,结合其他所有参数的选取来分析该参数应该如何设置。2.4.4基本粒子群算法流程在了解了参数的基本设置后,便可根据位置调整规则进行迭代以求最优解。基本粒子群算法的大体实现步骤如下:步骤1、在初始化范围内,对粒子群进行随机初始化,即包括基本参数设置、粒子的初始位置以及初始速度;步骤2、根据目标函数计算每个粒子的适应值;步骤3、更新每个粒子的个体最优和整个群体的全局最优;步骤4、根据式〔2-1和式〔2-2对粒子的速度和位置进行更新;步骤5、判断是否满足终止条件。如果满足,转步6;否则,转步2,继续迭代。步骤6、输出全局最优,算法运行结束。基本粒子群算法的流程图如图2-2所示:判断判断解的精度是否达到要求粒子群体初始化粒子适应度计算开始判断迭代次数是否达到找不到合理最优值结束计算个体历史最优值输出迭代次数以及最优值计算群体历史最优值根据式〔2-1、〔2-2更新粒子的速度和位置图2-3:粒子群算法流程图Figure2-3:theprocessingfigureofPSOalgorithm下面针对具体实例求解介绍基本粒子群算法的求解步骤。具体实例如表2-1所示:表2-1:测试函数实例目标函数自变量范围极值条件最小值粒子群算法解决优化问题的过程中有两个重要的步骤:问题的编码和适应度函数。粒子群算法不像遗传算法那样一般采用二进制编码,而是采用实数编码。对于当前问题,粒子可以直接编码为,适应度函数就是。具体求解步骤如下:1、初始化:1基本参数初始化:选取粒子群大小为100;粒子解的维度为3;粒子飞行的最大速度、最小速度QUOTEvmin分别为0.9、0;学习因子、均为2;粒子各维度位置的最大、最小值QUOTExmin分别为-10、10;粒子群最大的迭代次数为,当前迭代次数为0。2位置初始化:对这100个粒子的位置逐个进行编码。针对第i个粒子QUOTExi0,连续三次在之间随机选取数值分别作为该粒子的三个维度的初始化值,则该粒子的位置编码为QUOTE(xi10,xi20,3速度初始化:除此粒子位置,还需要对粒子的初始速度进行初始化。每个粒子的初始速度按位置方向的三个维度分别进行设置,与初始化位置的方法类似,对100个粒子的速度的逐个维度进行初始化。针对第个粒子QUOTExi0,连续三次在QUOTE(vmin,vmax)之间随机选取数值分别作为该粒子的三个维度的初始化值,则该粒子的速度编码为QUOTE(vi10,vi2初始化结束后进入第一轮迭代。2、计算适应值:针对每个粒子当前位置,根据适应度函数计算得粒子的适应值QUOTEfxit。3、更新个体历史最优值:第个粒子第t代时的个体历史最优值用QUOTEpbestit,最优值时对应位置的维度存储在QUOTEpbestijt(j=1、2、3)。如果,那么每个粒子的个体历史最优值均取当前粒子的适应值QUOTEfxi0;如果QUOTEt>0且QUOTEpbestit-1<f(xit),则QUOTEpbestit=f(xit);如果t>0但QUOTEpbestit-1≥f(xit),则QUOTEpbestit=4、更新粒子群全局最优值:第t代时的粒子群全局最优值用gbestt表示,全局最优值时对应的位置维度存储于QUOTEgbestjt(j=1、2、3)。如果,那么全局最优值QUOTEgbest0=max⁡(f(xi0));如果且QUOTEgbestt-1<max⁡(f(xit)),则QUOTEgbestt=max⁡(f(xit));如果QUOTEk>0但QUOTEgbestt-1≥max⁡(f(xit)),则5、粒子速度和位置更新:粒子速度和位置按照公式〔2-1和〔2-2进行更新,<2-1><2-2>6、判断是否满足终止条件:如果满足或,则转步骤7;否则,转步骤2。7、输出结果:输出最终结果和其对应的位置。根据以上流程,迭代到第59代求得最优值为0,最优位置为〔0,0,0。2.4.5基本粒子群算法的优缺点基本粒子群算法最大的优点在于概念简单,易于理解,且参数少,易于实现。一般采用实数编码,由于没有选择、交叉与变异等操作,算法结果相对简单,运行速度快。但其概念简单,易于实现的同时也存在早熟收敛以及稳定性差等缺点。算法运行过程中,如果某粒子发现一个当前最优位置,其他粒子将迅速向其靠拢。如果该位置为一局部最优点,粒子群就无法在解空间内重新搜索,因此,算法陷入局部最优,出现了所谓的早熟收敛的现象。基本粒子群算法容易陷入局部极值,导致早熟现象的产生。这主要是由于算法的参数设计不恰当等原因导致在计算过程中粒子的多样性迅速地消失。基本粒子群算法稳定性差主要是由于算法概念简单,参数设置少,随机性较强,对解的初始化以及函数特点的依赖性较强。不同的解的初始化可能导致不同的最优解,简单的函数更容易取得最优解,而较复杂的函数更容易陷入局部极值,从而导致算法的稳定性差。2.5粒子群算法的研究现状及方向粒子群算法由于计算快速和本身的易实现性,一经提出就受到广泛的关注,各种关于粒子群算法应用研究的成果不断涌现,有力地推动了粒子群算法的研究。其研究大致可分为:算法本身、参数选取、拓扑结构、与其他进化技术的融合及应用、算法应用。2.5.1粒子群算法的研究现状由于粒子群算法概念简单,实现容易,短短几年时间,粒子群算法便获得了很大的发展,但是,其数学基础不完善,实现技术不规范,在适应度函数选取、参数设置、收敛理论等方面还存在许多需要深入研究的问题。文献[15-17]展开了一系列研究,取得了一些建设性的成果,如关于算法收敛性的分析。围绕粒子群算法的实现技术和数学理论基础,以Kennedy和Eberhart为代表的许多专家学者一直在对粒子群算法做深入的探索,尤其在实现技术方面,提出了各种改进版本的粒子群算法。对粒子群算法参数的研究,研究最多的是关于惯性权重的取值问题和算法融合,部分改进算法如表2-2所示:表2-2改进的粒子群算法算法名称作者算法特点算法文献提出年份基本粒子群算法J.Kennedy,R.Eberhart.粒子的速度和位置更新引入惯性权重文献[18][19]1995离散型粒子群算法J.Kennedy,R.Eberhart.用于解决组合优化问题、旅行商等离散问题文献[38][39]1997-2001带交叉算子的粒子群算法、

带变异算子的粒子群算法、

带选择算子的粒子群算法M.Lovbierg,N.Higashi,H,李宁等实现技术与遗传算法<GA>非常相似,在粒子群算法中加入交叉算在、变异算子、选择算子文献[26][27][28][29]2001-2004模拟退火粒子群算法高鹰,谢胜利采用模拟退火算法思想限制位置更新,提高了算法的收敛速度文献[32]2004混沌粒子群算法把混沌寻优<Chaos>思想引入到粒子群优化算法中,使得粒子群体的进化速度加快,提高了算法的收敛速度和精度文献[35][36][37]2004-2005完整的GA-PSO混合规划算法吴晓军等比一般遗传规划算法更优文献[31]2005〔表格还有待补充2005-2010文献各种关于粒子群算法应用研究的成果不断涌现,有力地推动了粒子群算法的研究。但相对其它比较成熟的进化算法,对粒子群优化算法的理论研究还需要深入,对其应用领域的开拓还需进一步加强。20XX,IEEE3会议粒子群算法专集指出了粒子群算法目前研究的主要问题:算法收敛性的分析、粒子群拓扑结构、参数选择与优化、与其它进化算法融合技术、应用领域的开拓等等。毋庸置疑,对粒子群算法数学基础、实现技术、应用领域的深入研究仍将是研究热点。2.5.2粒子群算法的研究方向粒子群算法自提出以来,在国外得到了相关领域众多学者的关注和研究,CEC国际年会上,粒子群算法已经被作为一个独立的研究分支。据不完全统计,短短十几年的时间,国外针对粒子群算法研究已完成的博士论文就达十余篇之多;在IEEE的国际学术会议上,有20篇左右的论文均是反映粒子群算法的研究成果的。国内在该领域的研究刚刚起步,深入的研究和应用还很少,已发表的论文也不多PSO算法的研究还有大量工作要做,主要的研究方向如下几个方面:1粒子群算法的改进粒子群算法由于算法原理简单,存在早熟收敛和稳定性差的问题,如何改进算法以预防早熟收敛和提高算法稳定性值得深入研究。2粒子群算法的理论分析到目前为止,PSO算法的分析方法还很不成熟,存在许多不完善之处。如何利用有效数学工具对PSO算法的运行行为、收敛性以及计算复杂性进行分析也是目前的研究热点之一。3粒子群算法与其他进化算法的比较、融合目前,进化算法的研究在理论和应用两方面都得到迅速发展,效果显著。其中比较成熟的有遗传算法、蚁群算法等,而粒子群算法是一个新兴的群体智能算法,目前已成为今后算法的一个重要分支,如何从多方面比较各种算法从而得到各自的特长和不足,如何吸引其他进化类算法的优势来弥补PSO算法的不足也是当前研究的热点之一。4粒子群算法的应用算法研究的目的是应用,如何将PSO算法应用于更多领域,同时研究应用中存在的问题也是值得关注的热点。2.6粒子群算法的主要应用粒子群算法由于计算快速和本身的易实现性,一经提出就受到了广泛关注,各种关于粒子群算法应用研究的成果不断涌现。研究发现,粒子群算法在求解非线性连续优化问题、组合优化问题和混合整数非线性优化问题时非常有效,目前已广泛应用于:函数优化、神经网络训练、工程应用等方面,取得了不错的效果。函数优化许多实际的工程问题本质上是函数优化问题或可以转换为函数优化问题进行求解,对于函数优化已经有一些成熟的解决方法如遗传算法。但是对于超高维、多局部极值的复杂函数而言,遗传算法往往在优化的收敛速度和精度上难以达到期望的要求。Angeline经过大量的使用研究发现,粒子群优化算法在解决一些典型的函数优化问题时,能够取得比遗传算法更好的优化结果[14]。Shi与Eberhart的实验证明,对大多数的非线性Benehmark函数,PSO在优化速度和精度上均较遗传算法有一定的改善,这说明粒子群算法在解决函数优化时同样具有很好的应用前景。神经网络训练工业、经济、医疗等领域的许多实际问题如质量控制、破产预测、图像识别、医疗诊断等可以转换为模式分类问题求解。神经网络自学习、自组织、容错以及模拟非线性关系的能力使其特别适合解决上述复杂的实际应用问题。神经网络的训练问题属于非线性的高复杂度的优化问题。研究表明,PSO是一种很有潜力的神经网络训练算法,粒子群优化算法保留了基于种群的、并行的全局搜索策略,其采用的速度-位移模型操作简单,避免了复杂的遗传操作,在实际应用问题〔如运用PSO算法训练神经网络进行医疗诊断取得了较高的成功率,目前正在将其推广到更多的应用领域。工程应用实际的工程问题往往可以转化为函数优化问题求解。下面简要介绍粒子群算法在一些实际工程领域的应用。首先,通过训练神经网络,粒子群优化算法已成功应用到对医学中震颤的分析。震颤行为的诊断仍是医学研究的挑战性领域之一。经粒子群算法训练的人工神经网络已经能够区分人的本能震颤和病理性震颤。Eberhart和Hu研究发现,这种方法在上述的应用中处理速度快,诊断结果准确。在其他疾病的诊断如乳腺肿瘤良性或恶性的判断,心脏病的诊断,粒子群算法训练的神经网络也取得了较高的诊断成功率。其次,日本的Fuji电力公司的研究人员将电力企业著名的RPVC〔ReactivePowerandVoltageControl问题简化为函数优化问题,并使用改进的粒子群算法进行优化求解。与传统方法如专家系统、敏感性分析相比,实验结果证明粒子群算法在解决该题上具有一定的优势。此外,粒子群算法已被美国一家公司用于各种生物化学成分的优化组合,进而人工合成微生物。与传统的工业优化方法比较,粒子群算法产生合成结果的适应度是传统方法的两倍。实验充分显示粒子群算法的优越性:尽管劣质成分在一定的迭代代数内能够影响优化搜索的进程,但由于粒子群算法能够搜索到更大范围内的优化问题的解空间,合成结果总能比较理想。总的来说,粒子群优化算法与其他进化算法一样,可以解决大部分的优化问题,或可以转换为优化问题进行求解的问题。目前,在模糊控制器的设计、车间任务调度、实时机器人路径规划、图像分割、EEG信号模拟、语音识别、烧伤诊断以及探测移动目标等方面已经有成功应用的先例。2.7本章小结本章详细介绍了粒子群算法的起源背景、基本思想以及基本粒子群算法的实现,最后简单介绍了该算法的主要应用及其研究方向。但是通过研究发现,作为一种新兴的智能优化算法,基本粒子群还存在早熟收敛和稳定性差的不足,有必要对其进行改进,进一步地探讨与研究。第三章改进的粒子群算法3.1引言针对基本粒子群算法早熟收敛和稳定性差的缺点,基于不同的策略,已产生大量改进的粒子群优化算法。从根本上来说,大多数改进方案都基于与其他优化算法结合的改进,是以大幅度提高算法理解的难度和实现的复杂度为代价的,这就使得粒子群优化算法失去了一些诱人的核心优点,如理解的简单性、实现的简洁性等,这对该算法的大面积工程应用是有所不利的。因此,以改进粒子群算法为出发点寻找尽量简单有效的改进粒子群算法,是十分必要和有意义的。3.2改进的粒子群算法综述对粒子群算法的改进主要集中在对参数的改进以及算法融合两个方面。对参数的改进包括对惯性权值、学习因子和、每一代粒子的飞行时间等的调整。对于算法融合方面,许多学者尝试了将粒子群算法与其他智能计算方法相融合,有结合遗传算法交叉算子的混合粒子群优化算法[14]、基于模拟退火的粒子群算法[32]、免疫粒子群算法[35]、基于群体适应度方差自适应变异的粒子群算法[37]、与差别进化相结合的粒子群算法[48]等,下面简要介绍粒子群算法的几类改进算法。1惯性权重法粒子群优化算法以种群行为来激励粒子的运动。每个潜在的解与粒子的速度相联系,该速度不断地根据粒子自身经验和粒子的社会经验来调整大小、方向,总是希望粒子能朝更好的方向运动。在搜索过程中,全局搜索能力和局部搜索能力的平衡关系对于算法的性能起着举足轻重的作用。初始时,Shi将惯性权值取值定为常数,但后来实验发现,较大的值有利于跳出局部极小点,较小的值有利于算法的收敛,而动态的惯性权重能够取得比固定值更好的寻优结果。现在采用较多的是Shi建议的线性递减权重〔LDW策略,速度更新公式在式〔2-1的基础上加上惯性权值,调整为式〔3-1〔3-2所示。〔3-1〔3-2式中,为初始惯性权重;为最终惯性权重;为最大迭代次数;为当前迭代次数。在算法初期,取值较大,有利于粒子探索未知区域,扩大搜索空间。在算法后期收敛的情况下,取值较小,有利于微调对最优区域周围的搜索,从而提高了搜索的精度。典型取值=0.9、=0.4,但是还有两个缺点:其一迭代初期局部搜索能力较弱,即使初始粒子已接近于全局最优点,也往往错过,而在迭代后期,则因全局搜索能力变弱,而易陷入局部极值。其二最大迭代次数较难预测,从而将影响算法的调节功能。20XXShi又提出用模糊规则动态地修改值和随机惯性权重〔RIW取值策略。张选平等提出了一种动态的改变惯性权值〔DynamicallyChangingWeight,DCW的粒子群算法。在该算法中,惯性权重的变化受算法运行态势影响,是由粒子群的进化速度和粒子群的聚集度综合决定的。与LDW算法相比,平均迭代次数至少平均降低25%,收敛速度和收敛精度都明显提高。陈贵敏等在LDW的基础上,又给出了三种非线性的惯性权重递减策略,发现对于多数连续优化问题,凹函数递减策略优于线性策略,而线性策略优于凸函数策略。带惯性权值的粒子群算法在刚开始的时候倾向于开掘,然后逐渐转向于开拓,从而在局部区域调整解。这是目前使用最广泛的粒子群算法形式。2收缩因子法Clerc[41]的研究表明使用收缩因子可以保证粒子群算法收敛。收缩因子是关于、的函数,定义的公式如式〔3-3、〔3-4所示。〔3-3〔3-4Clerc的带收缩因子的方法中设为4.1,故收缩因子为0.729。相当于在速度更新公式中,在前次速度的基础上乘0.729。收缩因子法可使粒子轨迹最终收敛,且可以有效搜索不同的区域,能得到高质量的解,若与此同时将每维的最大速度设置为一维搜索空间的大小,则可得到更好的效果。但是,收缩因子法在处理单峰函数或者其它比较光滑的较为简单的函数时,比起基本粒子群算法,收敛速度稍微慢一点。3基于学习因子和的改进学习因子QUOTEc1和QUOTEc2代表了粒子向自身极值QUOTEpbest和全局极值QUOTEgbest推进的随机加速权值。小的加速常数值,可使粒子在远离目标区域内振荡;而大的加速常数可使粒子迅速向目标区域移动,甚至又离开目标区域。如果QUOTEc1=c2=0,则粒子将以当前速度飞行,直到边界。此时,由于粒子只能搜索有限的区域,故很难找到好解。当QUOTEc1=0则粒子没有自身认知能力,亦即"只有社会〔social-only认知"的模型。在粒子相互作用下,算法有能力达到新的搜索空间。其收敛速度比标准算法更快,但碰到复杂问题,比标准算法更容易陷入局部极值点。当QUOTEc2=0,则粒子之间没有社会信息共享,亦即"只有自身认知〔cognition-only"的模型。由于个体之间没有交互,一个规模为的群体等价于个单个粒子的运行,因而得到最优解的概率非常小。Shi和Eberhar建议,为了平衡随机因素的作用,通常设QUOTEc1=c2=2,后来Clerc推导出QUOTEc1=c2=2.05,也有研究者认为QUOTEc1和QUOTEc2不等,并由实验得出QUOTEc1=2.8,QUOTEc2=1。Ratnaweera等采用了根据迭代次数来动态地修改加速因子的方法,模拟实验结果表明,当QUOTEc1由2.15线性递减至0.15,由0.15线性递增至2.15时,算法所获得适应值最优。这种方法确实加速了算法的收敛,尤其在单峰值函数的测试表现突出。为此付出的代价是算法容易陷入局部最小值,在多峰值函数的测试中容易过早收敛。但是,实际上这些研究也仅仅局限于部分问题的应用,无法推广到所有问题域。4小生境粒子群算法粒子群算法启发性强、收敛速度快,使得粒子在寻优时过分集中,最后粒子都移向全局最优点,不能用于多模态函数优化。20XXBrits等[50]将小生境技术引入粒子群优化算法中,小生境法除去影响粒子间信息交流的"社会部分",增强粒子局部搜索能力,每个粒子飞向离它最近的山峰,即形成小生境。小生境粒子群算法速度更新公式如式〔3-5所示。〔3-5小生境粒子群法收敛速度较慢,主要应用于多峰函优化,对单峰函数效果不佳。5自适应调整飞行时间基本粒子群算法在解空间搜索时,每代粒子的飞行时间恒为1,有时会导致粒子在最优解的附近来回"振荡"现象[51]。自适应调整飞行时间法动态调整飞行时间,随着迭代代数的增加,飞行时间线性减少。具体调整公式如式〔3-6、〔3-7所示。〔3-6〔3-7式中,表示第代粒子的飞行时间;表示粒子最长飞行时间;为比例系数,起调节作用。自适应调整飞行时间法适用于复杂函数,最优值处在狭长或陡峭的山峰上。但是对于简单函数后期收敛速度较慢。6算法融合Angeline[52]将选择算子引入粒子群算法中,选择每次迭代后较好的粒子复制到下一代,以保证每次迭代的粒子群都具有良好的性能,这种算法对某些单峰函数效果良好。Lvbjerg[53]在粒子群每次迭代后,按几率在粒子间交换各维,通过交叉来生成更优秀的粒子群算法对某些多峰函数效果较好。Higash[54]等人分别提出了自己的变异粒子群算法,基本思路均是希望通过引入变异算子跳出局部极值点的吸引,从而提高算法的全局搜索能力,得到较高的搜索成功率。高鹰等人则引入免疫机制的概念,提高粒子群的多样性和自我调节能力,以增强粒子的全局搜索能力。Baskar等人提出了协同粒子群算法,通过使用多群粒子分别优化问题的不同维来对基本算法进行改进尝试。另外,还出现了一些量子粒子群算法、基于模拟退火的粒子群算法以及求解几何约束问题的粒子群算法等。以上改进算法各有优缺点,它们引入了一些新的参数,在改进算法性能的同时也一定程度上增加了算法的复杂性。3.3标准粒子群算法<粒子群算法及应用P19>为了改善基本粒子群算法的性能,Shi和Eberhart在1998年的IEEE国际进化计算学术会议上发表了题为"Amodifiedparticleswarmoptimizer"的理论,引入了惯性权重,逐渐地大家都默认这个改进粒子群算法为"标准粒子群算法"。3.3.1算法思想在基本粒子群算法的速度公式上包括三部分:第一部分是粒子调整前的速度;第二部分和第三部分是对粒子速度的调整。如果没有后面两部分,粒子将会保持相同的速度朝一个方向飞行,直到到达边界,这样粒子很大可能会找不到最优解,除非最优解恰好在粒子直线飞行的轨迹上,但这种情况是很少的。如果没有第一部分,粒子的飞行速度将仅由它们当前位置和历史最好位置决定,则速度本身是无记忆的,无法将优质信息保留。假定刚开始粒子处于较优位置,那么粒子的飞行速度将会是0,即它会保持静止状态,直到其他粒子找到比粒子所处位置还要好的解,从而替代了全局最优解。此时,每个粒子将会飞向它自身最好位置和群体全局最好位置的权重中心。所以如果没有第一部分,粒子群算法的搜索空间将会随着进化而收缩。此时只有当全局最优解在初始搜索区间时,粒子群算法才可能找到解。所以求解结果非常依赖于初始群体。当没有第一部分时,此算法更像是局部最优算法。对于不同的问题,局部最优能力和全局最优能力的权衡也不一样。考虑到这个问题,并结合以上的讨论,Shi和Eberhart添加了一个惯性权重到速度更新公式,即式<3-2>。〔3-2位置更新公式与基本粒子群算法更新公式相同。惯性权重起着权衡局部最优能力和全局最优能力的作用。为了研究惯性权重对粒子群算法性能的影响,Shi和Eberhart将此算法应用到Schaffer’s函数中,这是个著名的评价优化算法的基准函数。他们改变惯性权重的大小,通过大量的实验得到两个结论:1当惯性权重较小时〔<0.8,如果粒子群算法能找到全局最优解的话,那么它所经历的搜索时间是很短的,即所有的粒子趋向于快速汇集在一起。如果最优解是在初始搜索空间内,粒子群算法将会很容易找到全局最优,否则它会找不到全局最优。2当惯性权重较大时〔>1.2,粒子群算法更像全局最优解,且它总是在探索新区域。当然,这时的粒子群算法会需要更多的迭代来达到全局最优解,且更有可能找不到全局最优解。当惯性权重适中时,粒子群算法将会有更大的机会找到全局最优解,但迭代次数也会比第一种情况更多。根据以上分析,他们不是把惯性权重设为定值,而是设为一个随时间线性减少的函数,惯性权重的函数形式通常如式〔3-1所示。〔3-1其中为初始权重;为最终权重;为最大迭代次数;为当前迭代次数。这个函数使得粒子群算法在刚开始时倾向于开掘,然后逐渐转向开拓,从而在局部区域调整解。这些改进使得粒子群算法的性能得到很大的提高。3.3.2测试函数与测试环境为了考察标准粒子群算法的性能,对两个典型的测试函数进行优化。选定测试函数如表3-1所示。表3-1两个测试函数测试函数取值范围求最大/最小值最优值Ⅰ[-30,30]最小值0Ⅱ[-5.12,5.12]最大值3600对于测试函数Ⅰ,目标为求该函数的最小值,最优值为0,在〔1,1点取到。该函数为单峰函数,函数较为简单,不存在局部极值,但是函数的取值范围较大,在[-30,30]之间,在求解过程中应设置较大的粒子群数和迭代代数,才能较快地收敛到最优值。函数图象如图3-1所示。图3-1测试函数Ⅰ对于测试函数Ⅱ,目标为求该函数的最大值,最优值为3600,在〔0,0点取到。该函数为多峰函数,在处分别有四个局部极值,中间〔0,0是全局极值,非常狭长陡峭,容易陷入局部极值,是非常具有代表性的测试函数。函数图象如图3-2所示。图3-2测试函数Ⅱ利用选取好的两个测试函数,测试标准粒子群算法的性能。由于测试环境不同对算法性能评估也不一样,故将本次实验测试环境列出,如表3-2所示。 表3-2测试环境电脑配置电脑型号lenovo笔记本CPUPentium®Dual-CoreCPUT4200硬盘160G内存2.0HZ工具编程工具Matlab算法流程设置粒子群算法无需像遗传算法采用二进制编码,而是采用实数编码直接进行优化计算。将测试函数本身设为适应度函数进行求解,求解步骤与基本粒子群算法类似,只是速度调整公式有所不同,具体见如下流程。图3-3标准粒子群算法简要流程表3-3参数初始化〔以测试函数Ⅱ为例步骤具体操作是否调试参数对应MATLAB代码参数初始化算法基本参数初始化最大惯性权重是wmax=0.9;最小惯性权重是wmin=0.4;最大迭代次数是itmax=200;粒子群大小是N=200;学习因子1是c1=2;学习因子2是c2=2;初始化迭代次数否j=1;循环迭代前初始化惯性权重惯性权重按迭代次数线性递减否foriter=1:itmaxW<iter>=wmax-<<wmax-wmin>/itmax>*iter;end;设置目标函数相关参数自变量解的维度否D=2;解的左边界a,右边界b否a=-5.12;b=5.12;粒子初始化位置初始化否x=a+<b-a>*rand<N,D,1>;速度初始化否V=wmin+<wmax-wmin>*rand<N,D,1>;表3-4计算第一代适应度值〔以测试函数Ⅱ为例步骤具体操作对应MATLAB代码计算第一代适应度值计算每个粒子的适应度值fori=1:N

x0<1>=x<i,1,1>;x0<2>=x<i,2,1>;

F<i,1,1>=f4<x0>;end;

[C,I]=max<F<:,1,1>>;求第一代粒子的最大值[C,I]=max<F<:,1,1>>;对全局最优位置进行赋值gbest<1,1,1>=x<I,1,1>;

gbest<1,2,1>=x<I,2,1>;

forp=1:N

forr=1:D

G<p,r,1>=gbest<1,r,1>;

end;end;

x0<1>=G<1,1,1>;x0<2>=G<1,2,1>;

Fbest<1,1,1>=f4<x0>;对粒子自身最优位置进行赋值fori=1:N

pbest<i,:,1>=x<i,:,1>;end;

x0<1>=gbest<1,1,1>;x0<2>=gbest<1,2,1>;

Fb<1,1,1>=f4<x0>;表3-5迭代求解〔以测试函数Ⅱ为例步骤具体操作对应MATLAB代码迭代求解速度调整V<:,:,j>=W<j-1>*V<:,:,j-1>

+c1*rand*<pbest<:,:,j-1>-

x<:,:,j-1>>+c2*rand*

<G<:,:,j-1>-x<:,:,j-1>>;位置调整x<:,:,j>=x<:,:,j-1>+V<:,:,j>;边界控制forxx=1:N

foryy=1:D

ifx<xx,yy,j><a

x<xx,yy,j>=a;end;

ifx<xx,yy,j>>bx<xx,yy,j>=b;

end;end;end;计算适应度值fori=1:Nx0<1>=x<i,1,j>;x0<2>=x<i,2,j>;

F<i,1,j>=f4<x0>;

end;

[C,I]=max<F<:,:,j>>;调整全局最优值ifC>Fb<1,1,j>%如果当代不是最大值,则修改第j代全局最优值的位置gbest<1,1,j>=gbest<1,1,I>;

gbest<1,2,j>=gbest<1,2,I>;end;调整粒子自身最优值fori=1:N

[C,I]=max<F<i,1,:>>;

ifF<i,1,j>>=C

pbest<i,:,j>=x<i,:,j>;

elsepbest<i,:,j>=x<i,:,I>;

end;end;表3-6终止迭代和结果输出〔以测试函数Ⅱ为例步骤具体操作对应MATLAB代码终止迭代和结果输出迭代代数j=itmax结果输出Fbest<1,1,itmax>3.3.4参数调试由于对于不同的测试函数,适合的参数组合不一样,因此需对两个测试函数分别进行参数调试。标准粒子群算法可调参数为:最大迭代代数,学习因子、,粒子群大小,惯性权值。可首先对参数进行尝试性调试,在根据调试过程中出现的问题进行具体细微调整。测试函数Ⅰ参数调试针对测试函数Ⅰ,首先进行尝试性调试:1、通过初步调试,该目标函数较为简单,求解最优值收敛速度较快,故可使用较小规模的粒子群,故选定=50,且设置最大迭代代数为100;2、由于该函数解处于平滑地带,最优值较容易找到,可使用平衡的局部搜索和全局搜索,此处取;3、根据一般取法,取为随迭代代数线性递减,,为当前迭代代数,此处取.4;4、调试结果:利用以上参数组合进行优化测试,设置收敛精度为0.01,进行20次实验。20次实验中,每次都很快取得最优值,成功率达100%,故选取尝试性参数,不再进行调整,选取参数如表3-7所示:表3-7测试函数Ⅰ参数选择参数名称取值参数名称取值最大惯性权重0.9粒子群大小50最小惯性权重0.4学习因子2最大迭代次数100学习因子测试函数Ⅱ参数调试针对测试函数Ⅱ,尝试性调试过程如下:1、通过初步调试,该目标函数较为复杂,求解最优值收敛速度较慢,故可使用稍大规模的粒子群,故选定=200,且设置最大迭代代数为200;2、由于该函数解隐蔽,应加强局部搜索,减弱全局搜索,否则局部极值较容易找到。全部被牵引过去,容易陷入局部极值,此处取;3、根据一般取法,取为随迭代代数线性递减,,为当前迭代代数,此处取.4。4、调试结果:利用以上参数组合进行优化测试,设置收敛精度为0.01,进行20次实验。20次实验中仅9次取到最优值,成功率仅45%。有11次未取到最优值,其中有10次接近最优值,但精度不高,占总实验次数的50%;另外有一次陷入了局部极值。通过实验发现,在寻优过程中存在两个问题:1解的精度不够高,或者收敛速度慢,迭代200代时经常在最优解附近,无法达到0.01的精度,很难完全收敛到最优值,故可考虑加大迭代次数;2有时会陷入局部极值,但概率不高,对求解影响不是太大,且针对该函数,标准粒子群算法存在这方面的缺陷,难以通过单纯调试某个参数解决。针对以上问题,保持其他参数不变,将最大迭代次数从200次调整为300、400、500次,再分别进行20次实验。表3-8迭代次数调试结果迭代次数实验次数成功次数精度不高次数陷入局部极值次数成功率20020910145%30020128060%40020126260%50020108250%从表中可以看出,最大迭代次数调为300次时,算法的成果率达60%,在此基础上继续增加迭代次数并不能提高算法的成功率,由于惯性权重的调整也与最大迭代次数相关,因此并非迭代次数越大算法成功率越高。而且随着迭代次数的加大,陷入局部极值的次数也有所增加。可见标准粒子群算法对优化测试函数Ⅱ具有一定的瓶颈,选定一组相对较优的参数组合进行优化。参数选取如表3-9所示:表3-9测试函数Ⅱ参数选择参数名称取值参数名称取值最大惯性权重0.9粒子群大小200最小惯性权重0.4学习因子2最大迭代次数400学习因子0.5测试结果与算法评估在选定参数后,分别为两个测试函数进行算法测试与算法评估。测试函数Ⅰ测试结果实验结果如表3-10所示:表3-10测试函数Ⅰ优化结果实验次数最优值最优解〔x最优解〔y收敛代数成功与否/原因101.0000059411.00001119822是200.9999974850.99998967565是301.000033921.00006457674是401.0000056771.00001154654是501.0000285191.00008138934是601.0000083831.00001515620是701.000000241.00000044541是800.9999999460.99999991630是901.0019161781.00407397188是1000.9999940960.99998698224是1100.9999994910.99999891222是1200.9999987210.9999974138是1301.000481851.00089820142是1400.99997480.99995542648是1501.0000016451.00000317741是1601.0001026741.00021358318是1701.0000017681.00000398958是1800.9958149550.99133648643是1900.9999934860.99998528553是2001.0000241471.00004907732是连续20次均以高精度取得最优值,成功率达100%,且收敛速度快,平均收敛代数为42。选取其中一次实验结果,在32代收敛到最优值。优化过程如图3-4所示。图3-4测试函数Ⅰ优化过程测试函数Ⅱ测试结果实验结果如表3-所示:表3-测试函数Ⅱ20次实验结果实验次数最优值最优解〔x最优解〔y收敛代数成功与否/原因136001.0e-009*

0.857860016338701.0e-009*

-0.9935944365325456是23597-0.0024699080.00282468不收敛精度不高336001.0e-004*

-0.03409661412707128是436001.0e-004*

-0.265545955319531.0e-004*

0.26554665506307139是536001.0e-008*

0.04691581057247159是635710.010130784-0.010001801不收敛精度不高736001.0e-005*

-0.39473374295996158是83600113是929120.053386624-0.052348203不收敛精度不高1036001.0e-008*

0.05647695763394111是113600121是1236001.0e-008*

-0.758700969777821.0e-008*

0.73238949200582167是1335991.0e-003*

0.635242802449671.0e-003*

-0.63524280244967不收敛精度不高1436001.0e-009*

0.890506118633681.0e-009*

0.9048823850831154是153597-0.00285850

温馨提示

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

评论

0/150

提交评论