1、目录第一章 绪论 .31.1 本文的。 31.1.1 智能优化算法(见智能优化算法及应用 P1 页) 41.1.2 三种典型智能优化算法 41.1.3 粒子群算法与其他算法的异同 61.1.4 粒子群算法的优劣势及应用(见粒子群算法及其应用) .71.2 本文的研究背景 71.3 本文的研究内容 8第二章 粒子群算法的基本原理和发展现状 .82.1 引言 82.2 粒子群算法的起源背景 82.3 粒子群算法的基本思想 92.4 基本粒子群算法模型与实现 122.4.1 基本粒子群算法模型 122.4.2 粒子的运动轨迹分析 132.4.3 基本粒子群算法的参数设置 132.4.4 基本粒子群算
2、法流程 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 测试结果与
3、算法评估 .313.5 自适应调整飞行时间粒子群算法 .313.5.1 算法思想 .313.5.2 算法测试 .313.5.3 测试结果与算法评估 .313.6 本章小结 .31第四章 自适应粒子群算法 AFIPSO324.1 引言 324.2 AFIPSO 基本思想 324.3 AFIPSO 算法流程 334.4 AFIPSO 实验 344.4.1 测试函数 .344.4.2 参数选取 .354.4.3 优化结果与结果分析 .354.5 本章小结 37第五章 AFIPSO 在多目标优化问题中的应用 .375.1 引言 375.2 AFIPSO 对多目标函数的优化 385.2.1 自适应粒子群
4、算法(AFIPSO ) 385.2.2 AFIPSO 对多目标函数的优化 385.3 FCCU 分馏塔的多目标优化模型 435.4 AFIPSO 在工程中的应用 445.4.1 多目标转化为单目标 .445.4.2 AFIPSO 智能优化 FCCU 分馏塔参数调试 .445.4.3 AFIPSO 优化 FCCU 分馏塔结果及其比较分析 .465.5 本章小结 47结论 .47参考文献 .48攻读硕士期间取得的研究成果 .53致谢 .53第一章 绪论随着人类生存空间的扩大,以及认识世界和改造世界范围的拓宽,现实中碰到的许多科学、工程和经济问题呈复杂化、多极化、非线性等特点,这就使得高校的优化技术
5、和智能计算成为迫切要求。经典的优化算法通常采用局部搜索方法,它们一般与特定问题相关或是局部搜索方法的变形,适用于求解小规模且定义明确的问题。而实际工程问题一般规模较大,寻找一种适合于大规模并且局域智能特征的算法已成为人们研究的目标和方向。二十世纪八十年代以来,涌现了很多新颖的优化算法,如:混沌算法、遗传算法GA(Genetic Algorithm) 、蚁群算法 ACA(Ant Colony Algorithm) 、粒子群算法PSO(Particle Swarm Optimization)和模拟退火算法 SA()等。它们通过模拟某些自然现象的发展过程而来,为解决复杂问题提供了新的思路和手段。由于
6、这些算法构造直观且符合自然机理,因而被称为智能优化算法() 。1.1 本文的。 。 。 。 。智能优化算法是通过模拟某些自然现象的发展过程而形成的算法,以结构化和随机化的搜索策略实现算法的优化过程,常用于大规模的并行计算。智能优化算法提出后受到了人们的重视,其中遗传算法、蚁群算法、粒子群算法作为三种典型智能算法得到迅速发展。1.1.1 智能优化算法(见智能优化算法及应用 P1 页)智能优化算法是通过模拟或揭示某些自然现象或过程发展而来的,与普通的搜索算法一样都是迭代算法,对问题的数学描述不要求满足可微性、凸性等条件,是以一组解(种群)为迭代的初始值,将问题的参数进行编码,映射为可进行启发式操作
7、的数据结构。算法仅用到优化的目标函数值的信息,不必用到目标函数的倒数信息,搜索策略是结构化和随机化的(概率型) ,其优点是:具有全局的、并行的优化性能,鲁棒性、通用性强等。智能优化算法的使用范围非常广泛,特别适用大规模的并行计算。1.1.2 三种典型智能优化算法智能优化算法的应用范围广泛,特别适用于大规模的并行计算。通过研究,人们先后提出了多种智能优化算法,其中遗传算法、蚁群算法、粒子群算法较为典型。1、遗传算法(见粒子群算法及应用 P5)1975 年,Holland 提出了遗传算法,它是由自然界的进化而得到启发的一种有效解决最优化问题的方法。遗传算法是一种全局范围的探索过程,在解决复杂问题中
8、它常常能够寻找到最优解的附近区域。每个染色体个体代表一个潜在解,在利用此算法求解前,需对染色体进行二进制编码,然后通过选择、交叉和变异三个步骤进行进化,解随着进化而得到改善。1)选择运算:以一定概率从种群中选择若干个体的操作。选择运算的目的是为了从当前群体中选出优良的个体,使它们有机会作为父代繁殖后代子孙。判断个体优劣的准则是个体的适应度值。选择运算模拟了达尔文试着生存、优胜劣汰原则,个体适应度越高,被选择的机会就越大。2)交叉运算:两个染色体之间通过交叉而重组形成新的染色体,相当于生物进化过程中有性繁殖的基因重组过程。3)变异运算:染色体的某一基因发生变化,从而产生新的染色体,表现出新的性状
9、。变异运算模拟了生物进化过程中的基因突变方法,将某个染色体上的基因变异为其等位基因。遗传算法作为一种重要的智能优化算法,发展至今已较为成熟,广泛应用于各个领域。算法搜索从群体出发,具有潜在的并行性;且交叉和变异的过程能有效避免早熟现象,鲁棒性强;搜索使用评价函数启发,使用概率机制进行迭代,具有随机性、可扩展性、容易与其他算法结合的优点。但是遗传算法对于系统中的反馈信息利用不够,当求解到一定范围时往往做大量无谓的冗余迭代,求精确解效率低。2、蚁群算法(见智能优化算法及应用 P121 页)蚁群算法是最近几年才提出的一种新型的智能优化算法,是对真实蚂蚁的觅食过程的抽象继承与改进,最早成功应用于解决著
10、名的旅行商问题 TSP(Traveling Salesman Problem) 。生物界中的蚂蚁在寻找食物源时,能在其走过的路径上释放一种蚂蚁特有的分泌物(pheromone)信息素,使得一定范围内的其他蚂蚁能够觉察并影响其行为。当某些路径上走过的蚂蚁越来越多时,留下的这种信息素也越多,以致后来蚂蚁选择该路径的概率也越高,从而更增加了该路径的吸引强度,蚁群就是靠着这种内部的生物协同机制逐渐形成一条它们自己事先并未意识到的最短路线。蚁群算法从这种模型中得到启示并用于解决优化问题。蚁群算法每个优化问题的解都是搜索空间中的一只蚂蚁,蚂蚁都有一个由被优化函数决定的适应度值(与要释放的信息素成正比) ,
11、蚂蚁就是根据它周围的信息素的多少决定它们移动的方向,同时蚂蚁也在走过的路上释放信息素,以便影响别的蚂蚁。在该算法中,可行解经过多次迭代后,最终将以最大的概率逼近问题的最优解。它不仅利用了正反馈原理、在一定程度上可以加快进化过程,而且是一种本质并行的算法,不同个体之间不断进行信息的交流和传递,从而能够相互协作,有利于发现较好解。但是蚁群算法作为一种新兴的算法,还存在一定的缺陷,如:该算法需要较长的搜索时间,由于蚁群中各个个体的运动是随机的,虽然通过信息交换能够向着最优解优化,但是当群体规模较大时,很难在较短的时间内从大量杂乱无章的路径中找出一条较好的路径。而且在搜索到一定程度后,该算法容易出现停
12、滞现象。3、粒子群算法(见智能优化算法及应用 P 页)粒子群算法最早于 1995 年提出,是对鸟群、鱼群觅食过程中的迁徙和聚集的模拟,是继遗传算法、蚁群算法后又一群体智能优化算法,目前已成为智能优化算法的另一重要分支。鸟群在觅食的迁徙过程中,有既分散又集中的特点。总是有那么一只鸟对食物的嗅觉较好,即对食源的大致方向具有较好的洞察力,从而这只鸟就拥有食源的较好信息。由于在找到食物的途中,它们随时都相互传递信息,特别是好消息。所以,在好消息的指引下,最终导致了鸟群“一窝蜂”地奔向食源,达到了在食源的群集。PSO算法就从这种生物种群行为特性中得到启发并用于求解优化问题。粒子群算法最大的特点在于概念简
13、单,易于理解,且参数少,易于实现,因而短期内得到很大发展,迅速地得到了国际计算研究领域的认可。但其概念简单,易于实现的同时也存在早熟收敛、稳定性差等缺点。1.1.3 粒子群算法与其他算法的异同遗传算法、蚁群算法与粒子群算法是智能优化算法中的三个重要成员。而最新提出的粒子群算法以高效的特点受到学术界的广泛重视,而它与以往智能优化算法的异同也吸引众多学者来研究。1、粒子群算法与遗传算法的异同粒子群算法与遗传算法最大的共同之处在于都是基于“群体” 。两种算法都是随机初始化群体,基于适应度的概率计算,然后根据适应值来进行一定的随机搜索,且都不能保证一定能够找到最优解。遗传算法主要涉及三个算子:选择、交
14、叉和突变算子。粒子群算法中的随机加速度使得粒子向它自身最好位置和群体最好位置靠近,在某种程度上类似于遗传算法中的交叉算子。粒子群算法位置更新操作时的方向改变类似于遗传算法中的突变算子。但是,两种算法也存在很多不同之处。1)信息的共享机制不同:在遗传算法中,染色体相互共享信息,整个种群比较均匀的向最优区域移动。在粒子群算法中,信息只来自粒子自身找到的最好位置和群体中最好粒子,这是单向的信息流动。与遗传算法比较,所有的粒子在大多数情况下可能更快地收敛于最优值。2)信息利用不同:在进化过程中,遗传算法仅个体利用位置的信息,而粒子群算法同时利用个体的位置与速度信息,能够更有效地进行优化搜索。3)个体淘
15、汰机制不同:在遗传算法中,根据“适者生存”的理念,低适应值的个体在选择部分有被淘汰的可能,而粒子群算法没有直接利用选择函数,因此具有低适应值的粒子在优化过程中仍能生存,且有可能搜索到解空间中的任何领域,有较强的鲁棒性。2、粒子群算法与蚁群算法的异同粒子群算法与蚁群算法提出的年代相似,而且基本思想都是模拟自然界生物群体行为来构造随机优化算法的。粒子群算法与蚁群算法的相同点在于,它们都是不确定的、概率型的全局优化算法,各个智能体之间通过相互协作来更好地适应环境,表现出与环境交互的能力,并且具有本质的并行性。所有个体都保存最优解的相关知识。在不确定的复杂时变环境中,可通过学习不断提高算法中个体的适应
16、性。粒子群算法与蚁群算法虽然同属于仿生算法,并且有很多相似之处,但是在算法机理、实现形式等方面存在许多不同之处。1)信息反馈机制不同:蚁群算法采用了正反馈机制,每个个体智能感知局部信息,不能直接利用全局信息,所以一般需要较长的搜索时间,且容易出现停滞现象。而粒子群算法采用单向信息共享机制,将当前搜索到的最优值进行全局共享,原理相对简单,所需的代码和参数较少。2)理论基础成熟度不同:蚁群算法已经有了较成熟的收敛性分析方法,并且可对收敛速度进行评估。而粒子群算法的数学基础相对较为薄弱,目前还缺乏深刻且具有普遍意义的理论分析。在收敛性分析方面的研究,还需进一步将确定性向随机性转化。1.1.4 粒子群
17、算法的优劣势及应用(见粒子群算法及其应用)作为一种新兴的智能优化算法,粒子群算法的广泛传播在于它具有其他智能优化算法所不具备的优势,粒子群算法采用实数编码,直接在问题域上进行处理,无需转换,且算法接单易于实现。在处理复杂度较低的问题是存在一定的优势。但是作为智能优化算法的一种, ,同时也存在一般智能优化算法的缺陷。粒子群算法发展历史尚短,在理论基础方面还不太成熟,且算法较简单容易陷入局部极值,导致早熟现象的产生。在与其他算法结合或算法改进后能较好地求解高复杂度的问题。粒子群算法目前已广泛应用于函数优化、神经网络训练、模糊系统控制等领域。而粒子群算法比较有潜力的应用还包括系统设计、多目标优化、分
18、类、模式识别、调度、信号处理、决策和机器人应用等。1.2 本文的研究背景在现代化的工业生产中,如何同时使生产的布偶那个产品都达到满意的产量一直是工业领域期待解决的问题。对工程应用中的一些多目标优化问题,本课题组曾用基本遗传算法、自适应遗传算法和参数自适应蚁群算法进行优化,并取得一定成果。但是在工程问题中,只能不断地接近最优值,无法真正达到理论最优值,而算法的改进能有效提高工业生产中的经济效益。在此背景下,本文欲对粒子群算法的性能及其在工程中的应用进行深入研究。1.3 本文的研究内容第二章 粒子群算法的基本原理和发展现状2.1 引言粒子群算法自提出后引起各界的重视,并将其广泛应用与各个领域。但其
19、理论基础还较为薄弱,缺乏深的且具有普遍意义的理论分析。本章将介绍粒子群算法的基本原理和发展现状,为进一步研究粒子群算法做好铺垫。2.2 粒子群算法的起源背景自然界生物有时候以群体形式存在,部分科学家很早以前就对鸟群和鱼群的生物行为进行计算机模拟。1995 年 Eberhart 和 Kennedy 受他们早期对许多鸟类的群体行为进行建模和仿真研究结果的启发,共同提出了粒子群算法,他们的仿真模型算法主要利用了生物学家 Hepper 的模型和 Boyd 的个体学习、文化传递的概念。在 Hepper 的仿真中,鸟在一块栖息地附近群聚,这块栖息地吸引着鸟,直到它们都落在这块地上。Hepper 的模型中鸟
20、是知道栖息地的位置的,但在实际情况中,鸟类在刚开始是不知道食物的所在地的。依据 Boyd 的个体学习、文化传递的理念,Kennedy 等认为鸟之间存在着相互交换信息。通过探索了人类的决策过程 Boyd 认为,人们在决策过程中常常会综合两种重要信息。第一个是自身经验,即根据自己以前的经历所积累的经验来判断状态的好坏。第二个是他人的经验,即人们通过周围人的一些行为判断哪些影响是正面的,哪些是负面的。人们根据自身经验和他人经验做决定这一思路为粒子群算法的信息交换提供了有效地参考方式。于是参考 Boyd 的个体学习、文化传递的理念,Kennedy 等在仿真中增加个体位置调整规则:每个个体能够记住自己当
21、前所找到的最好的位置,称为“历史最优 pbest”;每个个体能够获取目前为止所有个体中的最优值,称为“全局最优 gbest”。在这两个最优变量的牵引下,鸟群在某种程度上朝这些方向靠近。他们综合以上内容,提出了实际鸟群的简化模型,即粒子群算法。2.3 粒子群算法的基本思想与基于达尔文“适者生存、优胜劣汰”进化思想的遗传算法不同的是,粒子群算法是通过个体之间的协助来寻找最优解,它利用了生物群体中信息共享会产生进化优胜的思想。鸟群在觅食的迁徙过程中,有既分散又集中的特点。总有那么一只鸟对食物的嗅觉较好,即对食源的大致方向具有较好的洞察力,从而这只鸟就拥有食源的较好信息。由于在寻找食物的途中,它们随时
22、都相互传递信息,特别是好消息。所以,在好消息的指引下,最终导致了鸟群“一窝蜂”地奔向食源,达到在食源的群集。粒子群算法就从这种生物种群行为特性中得到启发并用于求解优化问题。粒子群算法中,解群相当于鸟群,一地到一地的迁徙相当于解群的进化, “好消息”相当于解群每代进化中的最优解,食源相当于全局最优解。图 2-1:鸟群觅食原理示意图在粒子群算法中,每个优化问题的潜在解都可以想象成 维搜索空间中的一个点,D我们称之为“粒子” (Particle) 。粒子在搜索空间中以一定的速度飞行,这个速度根据它本身的飞行经验和同伴的飞行经验来动态调整。所有的粒子都有一个被目标函数决定的适应值,并且知道自己到目前为
23、止发现的最好位置。每个粒子使用下列信息调整自己的位置:1)当前位置 ;2)当前速度 ;3)当前位置与自己最好位置之间的距 离 ;4)当前位置与群体最好位置之间的距离 。从而形成新的速 度 ,到达新的位置 。单个粒子移动原理如图 2-2 所示:+1 +1图 2-2:粒子群移动原理Figure 2-2 :Moving Principle of particles从社会学的角度来看 13,图中为 粒子的先前速度,称为记忆项,是在惯性的作用下继续朝原来的方向运动; 为“认知(Cognition) ”部分,表示粒子自身的经验,是在自身经历最优位置的牵引下运动; 为“社会(Social)”部分,表示粒子间
24、的信息共享与相互合作,它引导粒子飞向粒子群中的最优位置。在粒子的先前速度的作用下实现搜索的多样化(Diversification),而在认知部分和社会部分的牵引下实现搜索过程的集中化(intensification) ,因此这三项之间的相互平衡和制约决定了算法的主要性能。粒子群优化搜索正是在由这样一群随机初始化形成的粒子而组成的一个种群中,以迭代的方式进行的。从而可得到粒子群算法是主要遵循了三个基本原则,定义为:1、 可计算原则(proximity):粒子群必须能够执行简单的空间和时间的计算;2、可反应原则(quality):粒子群必须能够对周围环境的品质因素有所反应,能够感知到自身经验信息和
25、社会经验信息(变量 pbest 和 gbest 隐含着这一规则) ;3、可适应原则(adaptability):在自身经验信息和社会经验信息的牵引下,粒子任有能力探索新的领域( 隐含着这一规则) 。2.4 基本粒子群算法模型与实现从粒子群算法的基本思想克制,每个粒子是在其当前位置、当前速度、自身历史最优位置以及全局最优位置的协调作用下进行位置调整的。那算法实现过程中这些因素具体是如何协调作用的呢?后面将通过介绍基本粒子群算法的模型与实现加以说明。2.4.1 基本粒子群算法模型假设在一个 维搜索空间中, PSO 算法初始化为 个随机粒子,每个粒子位置表Dn示一个潜在解。在每一次迭代过程中,粒子通
26、过跟踪两个极值来更新自己 6:第一个就是粒子本身目前所找到的最优解,叫做个体极值 ,可以看作是粒子自己的飞行经pbest验;另一个极值是整个粒子群目前所找到的最优解,叫做全局极值 ,可以看作群gbest体经验。用 , ,表示第 个粒子的位置向量;12,iiiDXx 1,2n i, ,表示第 个粒子的飞行速度;12,iiiVv i, , 表示第 个粒子迄今为止搜索到的最2,iiiiPpbesttpbest i好位置; , , 表示整个粒子群找到的最优12,iiiiDGggt 12n位置。由文献 12知,粒子是按照式(2-1)和式(2-2)来更新自己的速度和位置的:(2-1) 112()()ttt
27、 tijijij ijvcrpbesxcrgbesx(2-2) 1tttijijijxv式中 表示当前迭代次数; 、 是学习因子,通常为正常数,调节在自身最优t 12位置和全局最优位置的牵引力度; 、 是介于 0 和 1 之间的随机数; 表示最大r maxt迭代次数。由(2-2 )式可知,粒子的新速度 主要由三部分决定:1)粒子原始速度 ;tijv tijv2)粒子当前位置与自身最优位置的距离 ;3)粒子当前位置与群体最优位)(tijtijxpbes置的距离 。在三部分的协同合作下生成新的速度方向与大小,进而达到新)(tijtijxgbes的位置 。1tijx基本粒子群算法的模型设计充分体现了
28、粒子群算法的基本思想,通过给不同的影响因素添加权重以达到相互协作,并且各参数可根据具体情况进行设置,具有很大的灵活性和适应性。2.4.2 粒子的运动轨迹分析2.4.3 基本粒子群算法的参数设置针对不同的问题,基本粒子群算法的参数设置也不同,经常需要多次尝试与调整才能找到比较适合的参数匹配。根据多年来人们对粒子群算法的研究与总结,发现各个参数在某些设置范围内模型效果较理想,具有一定的参考价值。基本粒子群算法中的一些参数的经验设置:1、粒子数 :粒子数越多,一次迭代所花费的时间越多,相应的迭代代数可以减N少。如果粒子数太少,很容易陷入局部极值,迭代次数再多也无法跳出;如果粒子数太多,每一代进化的效
29、果有限,但计算却花费了大量时间,在要取得同等最优解效果的情况下需要长时间的等待,是不划算的。一般取 20-50。不过对于比较难的问题或者特定类别的问题,粒子数可取到 100 或 200。2、粒子的最大速度 、 : 决定粒子在一个循环中最大的移动距离,该maxvinmaxv值一般由用户自己设定。最大速度是一个非常重要的参数。如果最大速度的值取得太大,则粒子们容易越过优秀区域,或者在最优解附近徘徊,导致振荡现象;如果太小,则粒子们就可能在自身历史最优位置和全局最优位置的牵引下,很快走向局部极值,无法充分地探测局部最优区域以外的区域,粒子的扩展探测能力减弱。假设搜索空间的第 维定义的区间为 ,则通常
30、取 ,每一维Dmax,maxax,0.1.2vkk都用相同的方法设定 13。 决定一个粒子的最小移动距离,一般情况下取 0,因为粒inv子在迭代过程中,移动距离越来越小,在即将到达最优解时,移动距离接近为 0。3、学习因子 、 :学习因子 、 分别与 、 的乘积决定粒子受自身最优位1c21c21r2置和历史最优位置牵引的大小,由于 、 取 之间的数, 、 此时起到基数的r0,1c2作用。 、 越大,牵引的效果越明显。如果牵引力过大,则粒子的探测能力变弱,1c2容易陷入局部极值;如果牵引力过小,算法的收敛速度太慢,花费时间较长。自身因素参数 和社会因素参数 一般要更加经验值来定。在优化问题中通常
31、取 2,不过在12c文献中也有取其他的值,但一般 等于 并且范围在 0 和 4 之间。1c24、终止条件:一般设为最大迭代数或计算精度,这个终止条件通常要由具体的问题确定。如果是对解的精度有要求,则将代与代之间解的差值精度达到某个特定值为终止条件,如: ;如果对时间有所要求,可以设置最大的迭代次数,不管求解情610况如何,解的精度如何,只要达到了最大的迭代次数则停止。算法的参数是相互作用,相辅相成的。不能只调节其中的某一个参数,不能说某个参数取某个值适合这个问题,参数是一组一组来取。只能说某组参数的选取对特定问题的处理效果相对较好。而且很多参数的大与小,是相对而言,必须是在了解所有参数意义的情
32、况下,结合其他所有参数的选取来分析该参数应该如何设置。2.4.4 基本粒子群算法流程在了解了参数的基本设置后,便可根据位置调整规则进行迭代以求最优解。基本粒子群算法的大体实现步骤如下:步骤 1、在初始化范围内,对粒子群进行随机初始化,即包括基本参数设置、粒子的初始位置以及初始速度;步骤 2、根据目标函数计算每个粒子的适应值;步骤 3、更新每个粒子的个体最优 和整个群体的全局最优 ;pbest gbest步骤 4、根据式(2-1)和式(2-2)对粒子的速度和位置进行更新;步骤 5、判断是否满足终止条件。如果满足,转步 6;否则,转步 2,继续迭代。步骤 6、输出全局最优 ,算法运行结束。gbes
33、t基本粒子群算法的流程图如图 2-2 所示:判断解的精度是否达到要求粒子群体初始化粒子适应度计算开始判断迭代次数是否达到 maxt找不到合理最优值结束计算个体历史最优值 tijpbes输出迭代次数 以及最优值t计算群体历史最优值 tg根据式(2-1) 、 (2-2)更新粒子的速度和位置图 2-3:粒子群算法流程图Figure 2-3: the processing figure of PSO algorithm下面针对具体实例求解介绍基本粒子群算法的求解步骤。具体实例如表 2-1 所示:表 2-1:测试函数实例目标函数 自变量范围 极值条件2213()=fxx123(10,)x、 、最小值粒子
34、群算法解决优化问题的过程中有两个重要的步骤:问题的编码和适应度函数。粒子群算法不像遗传算法那样一般采用二进制编码,而是采用实数编码。对于当前问题,粒子可以直接编码为 ,适应度函数就是 。123(,)x()fx具体求解步骤如下:1、初始化:1)基本参数初始化:选取粒子群大小 为 100;粒子解的维度 为 3;粒子飞行ND的最大速度 、最小速度 分别为 0.9、0;学习因子 、 均为 2;粒子各维度位maxvminv1c置的最大 、最小值 分别为-10、10;粒子群最大的迭代次数为 ,当前迭代次i maxt数 为 0。t2)位置初始化:对这 100 个粒子的位置逐个进行编码。针对第 个粒子 ,连续
35、 0i三次在 之间随机选取数值分别作为该粒子的三个维度的初始化值,则该粒子minax(,)的位置编码为 。如此循环 100 次,对 100 个粒子进行初始化。0123,ii3)速度初始化:除此粒子位置,还需要对粒子的初始速度进行初始化。每个粒子的初始速度按位置方向的三个维度分别进行设置,与初始化位置的方法类似,对 100个粒子的速度的逐个维度进行初始化。针对第 个粒子 ,连续三次在 之间i0ixminax(,)v随机选取数值分别作为该粒子的三个维度的初始化值,则该粒子的速度编码为。如此循环 100 次,对 100 个粒子进行初始化。0123(,)iiv初始化结束后进入第一轮迭代。2、计算适应值
36、:针对每个粒子当前位置,根据适应度函数 213()()ttttiiiifxx计算得粒子的适应值 。tif3、更新个体历史最优值:第 个粒子第 t 代时的个体历史最优值用 ,最优i tipbes值时对应位置的维度存储在 。如果 ,那么每个粒子的个体历史最(1,23)tijpbes0优值均取当前粒子的适应值 ;如果 且 ,则 ;如果0)ifxt1()ttiipbesfx()ttiiesfx但 ,则 。0 1()ttiipbesfx1ttiies4、更新粒子群全局最优值:第 t 代时的粒子群全局最优值用 ,全局最表示优值时对应的位置维度存储于 。如果 ,那么全局最优值(,23)tjgbs0t;如果
37、且 ,则 ;如果00max()igbestf0t1max(t tiefmax()ttigbesf但 ,则 。0t1max()t tigbesf1ttgbes5、粒子速度和位置更新:粒子速度和位置按照公式(2-1)和(2-2)进行更新,(2-1)112()()ttt tijijij ijvcrpxcrgbesx(2-2) 1tttijijijxv6、判断是否满足终止条件:如果满足 或 ,则转步骤16| |0ttsmaxt7;否则 ,转步骤 2。1t7、输出结果:输出最终结果 和其对应的位置 。tgbestjgbes根据以上流程,迭代到第 59 代求得最优值为 0,最优位置为(0,0,0) 。2.
38、4.5 基本粒子群算法的优缺点基本粒子群算法最大的优点在于概念简单,易于理解,且参数少,易于实现。一般采用实数编码,由于没有选择、交叉与变异等操作,算法结果相对简单,运行速度快。但其概念简单,易于实现的同时也存在早熟收敛以及稳定性差等缺点。算法运行过程中,如果某粒子发现一个当前最优位置,其他粒子将迅速向其靠拢。如果该位置为一局部最优点,粒子群就无法在解空间内重新搜索,因此,算法陷入局部最优,出现了所谓的早熟收敛的现象。基本粒子群算法容易陷入局部极值,导致早熟现象的产生。这主要是由于算法的参数设计不恰当等原因导致在计算过程中粒子的多样性迅速地消失。基本粒子群算法稳定性差主要是由于算法概念简单,参
39、数设置少,随机性较强,对解的初始化以及函数特点的依赖性较强。不同的解的初始化可能导致不同的最优解,简单的函数更容易取得最优解,而较复杂的函数更容易陷入局部极值,从而导致算法的稳定性差。2.5 粒子群算法的研究现状及方向粒子群算法由于计算快速和本身的易实现性,一经提出就受到广泛的关注,各种关于粒子群算法应用研究的成果不断涌现,有力地推动了粒子群算法的研究。其研究大致可分为:算法本身、参数选取、拓扑结构、与其他进化技术的融合及应用、算法应用。2.5.1 粒子群算法的研究现状由于粒子群算法概念简单,实现容易,短短几年时间,粒子群算法便获得了很大的发展,但是,其数学基础不完善,实现技术不规范,在适应度
40、函数选取、参数设置、收敛理论等方面还存在许多需要深入研究的问题。文献 15-17展开了一系列研究,取得了一些建设性的成果,如关于算法收敛性的分析。围绕粒子群算法的实现技术和数学理论基础,以 Kennedy 和 Eberhart 为代表的许多专家学者一直在对粒子群算法做深入的探索,尤其在实现技术方面,提出了各种改进版本的粒子群算法。对粒子群算法参数的研究,研究最多的是关于惯性权重的取值问题和算法融合,部分改进算法如表 2-2所示:表 2-2 改进的粒子群算法算法名称 作者 算法特点 算法文献 提出年份基本粒子群算法 J.Kennedy,R.Eberhart. 粒子的速度和位置更新引入惯性权重 文
41、献1819 1995离散型粒子群算法 J.Kennedy,R.Eberhart. 用于解决组合优化问题、旅行商等离散问题 文献3839 1997-2001带交叉算子的粒子群算法、带变异算子的粒子群算法、带选择算子的粒子群算法M.Lovbierg,N.Higashi,H,李宁等实现技术与遗传算法(GA) 非常相似,在粒子群算法中加入交叉算在、变异算子、选择算子文献262728292001-2004模拟退火粒子群算法 高鹰,谢胜利采用模拟退火算法思想限制位置更新,提高了算法的收敛速度文献32 2004混沌粒子群算法 高鹰,杨俊杰,C.W.Jiang把混沌寻优(Chaos)思想引入到粒子群优化算法中
42、,使得粒子群体的进化速度加快,提高了算法的收敛速度和精度文献353637 2004-2005完整的 GA-PSO 混合规划算法 吴晓军等 比一般遗传规划算法更优 文献31 2005(表格还有待补充 2005-2010 文献)各种关于粒子群算法应用研究的成果不断涌现,有力地推动了粒子群算法的研究。但相对其它比较成熟的进化算法,对粒子群优化算法的理论研究还需要深入,对其应用领域的开拓还需进一步加强。2004 年,IEEE3 会议粒子群算法专集指出了粒子群算法目前研究的主要问题:算法收敛性的分析、粒子群拓扑结构、参数选择与优化、与其它进化算法融合技术、应用领域的开拓等等。毋庸置疑,对粒子群算法数学基
43、础、实现技术、应用领域的深入研究仍将是研究热点。2.5.2 粒子群算法的研究方向粒子群算法自提出以来,在国外得到了相关领域众多学者的关注和研究,CEC 国际年会上,粒子群算法已经被作为一个独立的研究分支。据不完全统计,短短十几年的时间,国外针对粒子群算法研究已完成的博士论文就达十余篇之多;在 IEEE 的国际学术会议上,有 20 篇左右的论文均是反映粒子群算法的研究成果的。国内在该领域的研究刚刚起步,深入的研究和应用还很少,已发表的论文也不多 PSO 算法的研究还有大量工作要做,主要的研究方向如下几个方面:1)粒子群算法的改进粒子群算法由于算法原理简单,存在早熟收敛和稳定性差的问题,如何改进算
44、法以预防早熟收敛和提高算法稳定性值得深入研究。2)粒子群算法的理论分析到目前为止,PSO 算法的分析方法还很不成熟,存在许多不完善之处。如何利用有效数学工具对 PSO 算法的运行行为、收敛性以及计算复杂性进行分析也是目前的研究热点之一。3)粒子群算法与其他进化算法的比较、融合目前,进化算法的研究在理论和应用两方面都得到迅速发展,效果显著。其中比较成熟的有遗传算法、蚁群算法等,而粒子群算法是一个新兴的群体智能算法,目前已成为今后算法的一个重要分支,如何从多方面比较各种算法从而得到各自的特长和不足,如何吸引其他进化类算法的优势来弥补 PSO 算法的不足也是当前研究的热点之一。4)粒子群算法的应用算
45、法研究的目的是应用,如何将 PSO 算法应用于更多领域,同时研究应用中存在的问题也是值得关注的热点。2.6 粒子群算法的主要应用粒子群算法由于计算快速和本身的易实现性,一经提出就受到了广泛关注,各种关于粒子群算法应用研究的成果不断涌现。研究发现,粒子群算法在求解非线性连续优化问题、组合优化问题和混合整数非线性优化问题时非常有效,目前已广泛应用于:函数优化、神经网络训练、工程应用等方面,取得了不错的效果。1) 函数优化许多实际的工程问题本质上是函数优化问题或可以转换为函数优化问题进行求解,对于函数优化已经有一些成熟的解决方法如遗传算法。但是对于超高维、多局部极值的复杂函数而言,遗传算法往往在优化
46、的收敛速度和精度上难以达到期望的要求。Angeline 经过大量的使用研究发现,粒子群优化算法在解决一些典型的函数优化问题时,能够取得比遗传算法更好的优化结果 14。Shi 与 Eberhart 的实验证明,对大多数的非线性 Benehmark 函数,PSO 在优化速度和精度上均较遗传算法有一定的改善,这说明粒子群算法在解决函数优化时同样具有很好的应用前景。2) 神经网络训练工业、经济、医疗等领域的许多实际问题如质量控制、破产预测、图像识别、医疗诊断等可以转换为模式分类问题求解。神经网络自学习、自组织、容错以及模拟非线性关系的能力使其特别适合解决上述复杂的实际应用问题。神经网络的训练问题属于非
47、线性的高复杂度的优化问题。研究表明,PSO 是一种很有潜力的神经网络训练算法,粒子群优化算法保留了基于种群的、并行的全局搜索策略,其采用的速度-位移模型操作简单,避免了复杂的遗传操作,在实际应用问题(如运用 PSO 算法训练神经网络进行医疗诊断)取得了较高的成功率,目前正在将其推广到更多的应用领域。3) 工程应用实际的工程问题往往可以转化为函数优化问题求解。下面简要介绍粒子群算法在一些实际工程领域的应用。首先,通过训练神经网络,粒子群优化算法已成功应用到对医学中震颤的分析。震颤行为的诊断仍是医学研究的挑战性领域之一。经粒子群算法训练的人工神经网络已经能够区分人的本能震颤和病理性震颤。Eberh
48、art 和 Hu 研究发现,这种方法在上述的应用中处理速度快,诊断结果准确。在其他疾病的诊断如乳腺肿瘤良性或恶性的判断,心脏病的诊断,粒子群算法训练的神经网络也取得了较高的诊断成功率。其次,日本的 Fuji 电力公司的研究人员将电力企业著名的 RPVC(Reactive Power and Voltage Control)问题简化为函数优化问题,并使用改进的粒子群算法进行优化求解。与传统方法如专家系统、敏感性分析相比,实验结果证明粒子群算法在解决该题上具有一定的优势。此外,粒子群算法已被美国一家公司用于各种生物化学成分的优化组合,进而人工合成微生物。与传统的工业优化方法比较,粒子群算法产生合成
49、结果的适应度是传统方法的两倍。实验充分显示粒子群算法的优越性:尽管劣质成分在一定的迭代代数内能够影响优化搜索的进程,但由于粒子群算法能够搜索到更大范围内的优化问题的解空间,合成结果总能比较理想。总的来说,粒子群优化算法与其他进化算法一样,可以解决大部分的优化问题,或可以转换为优化问题进行求解的问题。目前,在模糊控制器的设计、车间任务调度、实时机器人路径规划、图像分割、EEG 信号模拟、语音识别、烧伤诊断以及探测移动目标等方面已经有成功应用的先例。2.7 本章小结本章详细介绍了粒子群算法的起源背景、基本思想以及基本粒子群算法的实现,最后简单介绍了该算法的主要应用及其研究方向。但是通过研究发现,作为一种新兴的智能优化算法,基本粒子群还存在早熟收敛和稳定性差的不足,有必要对其进行改进,进一步地探讨与研究。第三章 改进的粒子群算法