自适应粒子群算法研究及其在多目标优化中应用

更新时间:2023-09-14 18:13:01 阅读量: 初中教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目录

第一章 绪论 ......................................................................................................................................... 3 1.1

本文的。。。。。 .................................................................................................................. 3

1.1.1智能优化算法(见智能优化算法及应用P1页) .............................................................. 4 1.1.2三种典型智能优化算法 ........................................................................................................ 4 1.1.3粒子群算法与其他算法的异同 ............................................................................................ 6 1.1.4粒子群算法的优劣势及应用(见粒子群算法及其应用) ................................................ 7 1.2 本文的研究背景 .......................................................................................................................... 7 1.3 本文的研究内容 .......................................................................................................................... 8 第二章 粒子群算法的基本原理和发展现状 ..................................................................................... 8 2.1 引言 .............................................................................................................................................. 8 2.2 粒子群算法的起源背景 .............................................................................................................. 8 2.3 粒子群算法的基本思想 .............................................................................................................. 9 2.4 基本粒子群算法模型与实现 .................................................................................................... 12 2.4.1基本粒子群算法模型 .......................................................................................................... 12 2.4.2粒子的运动轨迹分析 .......................................................................................................... 13 2.4.3基本粒子群算法的参数设置 .............................................................................................. 13 2.4.4基本粒子群算法流程 .......................................................................................................... 14 2.4.5 基本粒子群算法的优缺点 ................................................................................................. 17 2.5 粒子群算法的研究现状及方向 ................................................................................................ 17 2.5.1 粒子群算法的研究现状 ..................................................................................................... 18 2.5.2 粒子群算法的研究方向 ..................................................................................................... 19 2.6 粒子群算法的主要应用 ............................................................................................................ 19 2.7 本章小结 .................................................................................................................................... 21 第三章 改进的粒子群算法 ............................................................................................................... 21 3.1 引言 ............................................................................................................................................ 21 3.2 改进的粒子群算法综述 ............................................................................................................ 21 3.3标准粒子群算法(粒子群算法及应用P19) ............................................................................... 25 3.3.1 算法思想 ............................................................................................................................. 25

3.3.2 测试函数 ............................................................................................................................. 26 3.3.3 算法测试 ............................................................................................. 错误!未定义书签。 3.3.4 测试结果与算法评估 ......................................................................................................... 31 3.4小生境粒子群算法 ..................................................................................................................... 37 3.4.1 算法思想 ............................................................................................................................. 37 3.4.2 算法测试 ............................................................................................................................. 37 3.4.3 测试结果与算法评估 ......................................................................................................... 37 3.5自适应调整飞行时间粒子群算法 ............................................................................................. 37 3.5.1 算法思想 ............................................................................................................................. 37 3.5.2 算法测试 ............................................................................................................................. 37 3.5.3 测试结果与算法评估 ......................................................................................................... 37 3.6本章小结 ..................................................................................................................................... 37 第四章 自适应粒子群算法AFIPSO .................................................................................................. 38 4.1 引言 ............................................................................................................................................ 38 4.2 AFIPSO基本思想 ........................................................................................................................ 38 4.3 AFIPSO算法流程 ........................................................................................................................ 39 4.4 AFIPSO实验 ................................................................................................................................ 40 4.4.1 测试函数 ............................................................................................................................. 40 4.4.2 参数选取 ............................................................................................................................. 40 4.4.3 优化结果与结果分析 ......................................................................................................... 41 4.5 本章小结 .................................................................................................................................... 42 第五章 AFIPSO在多目标优化问题中的应用 .................................................................................. 43 5.1 引言 ............................................................................................................................................ 43 5.2 AFIPSO对多目标函数的优化 .................................................................................................... 44 5.2.1自适应粒子群算法(AFIPSO) .......................................................................................... 44 5.2.2 AFIPSO对多目标函数的优化 ............................................................................................. 44 5.3 FCCU分馏塔的多目标优化模型 ............................................................................................... 48 5.4 AFIPSO在工程中的应用 ............................................................................................................ 49 5.4.1 多目标转化为单目标 ......................................................................................................... 49 5.4.2 AFIPSO智能优化FCCU分馏塔参数调试 ........................................................................... 49

5.4.3 AFIPSO优化FCCU分馏塔结果及其比较分析 ................................................................... 51 5.5 本章小结 .................................................................................................................................... 52 结论 ....................................................................................................................................................... 52 参考文献 ............................................................................................................................................... 53 攻读硕士期间取得的研究成果 ........................................................................................................... 58 致谢 ....................................................................................................................................................... 58

第一章 绪论

随着人类生存空间的扩大,以及认识世界和改造世界范围的拓宽,现实中碰到的许多科学、工程和经济问题呈复杂化、多极化、非线性等特点,这就使得高校的优化技术和智能计算成为迫切要求。

经典的优化算法通常采用局部搜索方法,它们一般与特定问题相关或是局部搜索方法的变形,适用于求解小规模且定义明确的问题。而实际工程问题一般规模较大,寻找一种适合于大规模并且局域智能特征的算法已成为人们研究的目标和方向。

二十世纪八十年代以来,涌现了很多新颖的优化算法,如:混沌算法、遗传算法GA(Genetic Algorithm)、蚁群算法ACA(Ant Colony Algorithm)、粒子群算法PSO(Particle Swarm Optimization)和模拟退火算法SA()等。它们通过模拟某些自然现象的发展过程而来,为解决复杂问题提供了新的思路和手段。由于这些算法构造直观且符合自然机理,因而被称为智能优化算法()。

1.1 本文的。。。。。

智能优化算法是通过模拟某些自然现象的发展过程而形成的算法,以结构化和随机化的搜索策略实现算法的优化过程,常用于大规模的并行计算。智能优化算法提出后受到了人们的重视,其中遗传算法、蚁群算法、粒子群算法作为三种典型智能算法得到迅速发展。

1.1.1智能优化算法(见智能优化算法及应用P1页)

智能优化算法是通过模拟或揭示某些自然现象或过程发展而来的,与普通的搜索算法一样都是迭代算法,对问题的数学描述不要求满足可微性、凸性等条件,是以一组解(种群)为迭代的初始值,将问题的参数进行编码,映射为可进行启发式操作的数据结构。算法仅用到优化的目标函数值的信息,不必用到目标函数的倒数信息,搜索策略是结构化和随机化的(概率型),其优点是:具有全局的、并行的优化性能,鲁棒性、通用性强等。智能优化算法的使用范围非常广泛,特别适用大规模的并行计算。

1.1.2三种典型智能优化算法

智能优化算法的应用范围广泛,特别适用于大规模的并行计算。通过研究,人们先后提出了多种智能优化算法,其中遗传算法、蚁群算法、粒子群算法较为典型。

1、遗传算法(见粒子群算法及应用P5)

1975年,Holland[]提出了遗传算法,它是由自然界的进化而得到启发的一种有效解决最优化问题的方法。遗传算法是一种全局范围的探索过程,在解决复杂问题中它常常能够寻找到最优解的附近区域。每个染色体个体代表一个潜在解,在利用此算法求解前,需对染色体进行二进制编码,然后通过选择、交叉和变异三个步骤进行进化,解随着进化而得到改善。

1)选择运算:以一定概率从种群中选择若干个体的操作。选择运算的目的是为了从当前群体中选出优良的个体,使它们有机会作为父代繁殖后代子孙。判断个体优劣的准则是个体的适应度值。选择运算模拟了达尔文试着生存、优胜劣汰原则,个体适应度越高,被选择的机会就越大。

2)交叉运算:两个染色体之间通过交叉而重组形成新的染色体,相当于生物进化过程中有性繁殖的基因重组过程。

3)变异运算:染色体的某一基因发生变化,从而产生新的染色体,表现出新的性状。变异运算模拟了生物进化过程中的基因突变方法,将某个染色体上的基因变异为其等位基因。

遗传算法作为一种重要的智能优化算法,发展至今已较为成熟,广泛应用于各个领

域。算法搜索从群体出发,具有潜在的并行性;且交叉和变异的过程能有效避免早熟现

象,鲁棒性强;搜索使用评价函数启发,使用概率机制进行迭代,具有随机性、可扩展性、容易与其他算法结合的优点。

但是遗传算法对于系统中的反馈信息利用不够,当求解到一定范围时往往做大量无谓的冗余迭代,求精确解效率低。

2、蚁群算法(见智能优化算法及应用P121页)

蚁群算法是最近几年才提出的一种新型的智能优化算法,是对真实蚂蚁的觅食过程的抽象继承与改进,最早成功应用于解决著名的旅行商问题TSP(Traveling Salesman Problem)。

生物界中的蚂蚁在寻找食物源时,能在其走过的路径上释放一种蚂蚁特有的分泌物(pheromone)—信息素,使得一定范围内的其他蚂蚁能够觉察并影响其行为。当某些路径上走过的蚂蚁越来越多时,留下的这种信息素也越多,以致后来蚂蚁选择该路径的概率也越高,从而更增加了该路径的吸引强度,蚁群就是靠着这种内部的生物协同机制逐渐形成一条它们自己事先并未意识到的最短路线。蚁群算法从这种模型中得到启示并用于解决优化问题。蚁群算法每个优化问题的解都是搜索空间中的一只蚂蚁,蚂蚁都有一个由被优化函数决定的适应度值(与要释放的信息素成正比),蚂蚁就是根据它周围的信息素的多少决定它们移动的方向,同时蚂蚁也在走过的路上释放信息素,以便影响别的蚂蚁。

在该算法中,可行解经过多次迭代后,最终将以最大的概率逼近问题的最优解。它不仅利用了正反馈原理、在一定程度上可以加快进化过程,而且是一种本质并行的算法,不同个体之间不断进行信息的交流和传递,从而能够相互协作,有利于发现较好解。

但是蚁群算法作为一种新兴的算法,还存在一定的缺陷,如:该算法需要较长的搜索时间,由于蚁群中各个个体的运动是随机的,虽然通过信息交换能够向着最优解优化,但是当群体规模较大时,很难在较短的时间内从大量杂乱无章的路径中找出一条较好的路径。而且在搜索到一定程度后,该算法容易出现停滞现象。

3、粒子群算法(见智能优化算法及应用P页)

粒子群算法最早于1995年提出,是对鸟群、鱼群觅食过程中的迁徙和聚集的模拟,是继遗传算法、蚁群算法后又一群体智能优化算法,目前已成为智能优化算法的另一重要分支。

鸟群在觅食的迁徙过程中,有既分散又集中的特点。总是有那么一只鸟对食物的嗅觉较好,即对食源的大致方向具有较好的洞察力,从而这只鸟就拥有食源的较好信息。

由于在找到食物的途中,它们随时都相互传递信息,特别是好消息。所以,在好消息的指引下,最终导致了鸟群“一窝蜂”地奔向食源,达到了在食源的群集。PSO算法就从这种生物种群行为特性中得到启发并用于求解优化问题。

粒子群算法最大的特点在于概念简单,易于理解,且参数少,易于实现,因而短期内得到很大发展,迅速地得到了国际计算研究领域的认可。

但其概念简单,易于实现的同时也存在早熟收敛、稳定性差等缺点。

1.1.3粒子群算法与其他算法的异同

遗传算法、蚁群算法与粒子群算法是智能优化算法中的三个重要成员。而最新提出的粒子群算法以高效的特点受到学术界的广泛重视,而它与以往智能优化算法的异同也吸引众多学者来研究。

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:鸟群觅食原理示意图

在粒子群算法中,每个优化问题的潜在解都可以想象成D维搜索空间中的一个点,

我们称之为“粒子”(Particle)。粒子在搜索空间中以一定的速度飞行,这个速度根据它本身的飞行经验和同伴的飞行经验来动态调整。所有的粒子都有一个被目标函数决定的适应值,并且知道自己到目前为止发现的最好位置。每个粒子使用下列信息调整自己的位置:1)当前位置

;2)当前速度

;3)当前位置与自己最好位置之间的距离

。从而形成新的速度

;4)当前位置与群体最好位置之间的距离

,到达新的位置

。单个粒子移动原理如图2-2所示:

1、初始化:

1)基本参数初始化:选取粒子群大小N为100;粒子解的维度D为3;粒子飞行的最大速度vmax、最小速度vmin分别为0.9、0;学习因子c1、c2均为2;粒子各维度位置的最大xmax、最小值xmin分别为-10、10;粒子群最大的迭代次数为tmax,当前迭代次数t为0。

2)位置初始化:对这100个粒子的位置逐个进行编码。针对第个粒子xi0,连续三次在(xmin,xmax)之间随机选取数值分别作为该粒子的三个维度的初始化值,则该粒子的

00位置编码为(xi01,xi2,xi3)。如此循环100次,对100个粒子进行初始化。

3)速度初始化:除此粒子位置,还需要对粒子的初始速度进行初始化。每个粒子的初始速度按位置方向的三个维度分别进行设置,与初始化位置的方法类似,对100个粒子的速度的逐个维度进行初始化。针对第i个粒子xi0,连续三次在(vmin,vmax)之间随

00机选取数值分别作为该粒子的三个维度的初始化值,则该粒子的速度编码为(vi01,vi2,vi3)。

如此循环100次,对100个粒子进行初始化。

初始化结束后进入第一轮迭代。

2、计算适应值:针对每个粒子当前位置,根据适应度函数

f(xit)?(xit1)2?(xit2)2?(xit3)2

计算得粒子的适应值f(xi)。

t3、更新个体历史最优值:第i个粒子第tt代时的个体历史最优值用pbestit,最优值

t(j?1,2,3)。时对应位置的维度存储在pbestij如果t?0,那么每个粒子的个体历史最优值

均取当前粒子的适应值f(xi0);如果t?0且pbestit?1?f(xit),则pbestit?f(xit);如果

pbestit?1?f(xit),则pbestit?pbestit?1。

4、更新粒子群全局最优值:第t代时的粒子群全局最优值用,全局最优

值时对应的位置维度存储于gbesttj(j?1,2,3)。如果t?0,那么全局最优值

t?1ttax((f)x)itgbest0?max(f(xi0));如果t?0且gbest?max(f(xi)),则gbest?m;如果t?0但gbestt?1?max(f(xit)),则gbestt?gbestt?1。

5、粒子速度和位置更新:粒子速度和位置按照公式(2-1)和(2-2)进行更新,

vijt?1?vijt?c1r1?(pbestijt?xijt)?c2r2?(gbestijt?xijt) (2-1)

xijt?1?xijt?vijt?1 (2-2)

6、判断是否满足终止条件:如果满足|gbestt?gbestt?1|?10?6或t?tmax,则转步骤7;

否则t?t?1,转步骤2。

7、输出结果:输出最终结果gbestt和其对应的位置gbesttj。

根据以上流程,迭代到第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. J.Kennedy,R.Eberhart. 算法特点 粒子的速度和位置更新引入惯性权重 用于解决组合优化问题、旅行商等离散问题 实现技术与遗传算法(GA)非常相似,在粒子群算法中加入交叉算在、变异算子、选择算子 采用模拟退火算法思想限制位置更新,提高了算法的收敛速度 把混沌寻优(Chaos)思想引入算法文献 文献[18][19] 文献[38][39] 文献[26][27][28][29] 提出年份 1995 1997-2001 带交叉算子的粒子群算法、 M.Lovbierg,N带变异算子的粒子群算法、 .Higashi,H,带选择算子的粒子群算法 李宁等 2001-2004 模拟退火粒子群算法 高鹰,谢胜利 文献[32] 2004 混沌粒子群算法 高鹰,杨俊到粒子群优化算法中,使得粒了算法的收敛速度和精度 文献[35][36][37] 文献[31] 2005 2004-2005 杰,C.W.Jiang 子群体的进化速度加快,提高完整的GA-PSO混合规划算法 吴晓军等 比一般遗传规划算法更优 (表格还有待补充2005-2010文献)

各种关于粒子群算法应用研究的成果不断涌现,有力地推动了粒子群算法的研究。但相对其它比较成熟的进化算法,对粒子群优化算法的理论研究还需要深入,对其应用领域的开拓还需进一步加强。2004年,IEEE3会议粒子群算法专集指出了粒子群算法目前研究的主要问题:算法收敛性的分析、粒子群拓扑结构、参数选择与优化、与其它进化算法融合技术、应用领域的开拓等等。毋庸置疑,对粒子群算法数学基础、实现技术、应用领域的深入研究仍将是研究热点。

2.5.2 粒子群算法的研究方向

粒子群算法自提出以来,在国外得到了相关领域众多学者的关注和研究,CEC国际年会上,粒子群算法已经被作为一个独立的研究分支。据不完全统计,短短十几年的时间,国外针对粒子群算法研究已完成的博士论文就达十余篇之多;在IEEE的国际学术会议上,有20篇左右的论文均是反映粒子群算法的研究成果的。国内在该领域的研究刚刚起步,深入的研究和应用还很少,已发表的论文也不多PSO算法的研究还有大量工作要做,主要的研究方向如下几个方面:

1)粒子群算法的改进

粒子群算法由于算法原理简单,存在早熟收敛和稳定性差的问题,如何改进算法以预防早熟收敛和提高算法稳定性值得深入研究。

2)粒子群算法的理论分析

到目前为止,PSO算法的分析方法还很不成熟,存在许多不完善之处。如何利用有效数学工具对PSO算法的运行行为、收敛性以及计算复杂性进行分析也是目前的研究热点之一。

3)粒子群算法与其他进化算法的比较、融合

目前,进化算法的研究在理论和应用两方面都得到迅速发展,效果显著。其中比较成熟的有遗传算法、蚁群算法等,而粒子群算法是一个新兴的群体智能算法,目前已成为今后算法的一个重要分支,如何从多方面比较各种算法从而得到各自的特长和不足,如何吸引其他进化类算法的优势来弥补PSO算法的不足也是当前研究的热点之一。

4)粒子群算法的应用

算法研究的目的是应用,如何将PSO算法应用于更多领域,同时研究应用中存在的问题也是值得关注的热点。

2.6 粒子群算法的主要应用

粒子群算法由于计算快速和本身的易实现性,一经提出就受到了广泛关注,各种关于粒子群算法应用研究的成果不断涌现。研究发现,粒子群算法在求解非线性连续优化问题、组合优化问题和混合整数非线性优化问题时非常有效,目前已广泛应用于:函数优化、神经网络训练、工程应用等方面,取得了不错的效果。

1) 函数优化

许多实际的工程问题本质上是函数优化问题或可以转换为函数优化问题进行求解,对于函数优化已经有一些成熟的解决方法如遗传算法。但是对于超高维、多局部极值的复杂函数而言,遗传算法往往在优化的收敛速度和精度上难以达到期望的要求。

Angeline经过大量的使用研究发现,粒子群优化算法在解决一些典型的函数优化问题时,能够取得比遗传算法更好的优化结果[14]。Shi与Eberhart的实验证明,对大多数的非线性Benehmark函数,PSO在优化速度和精度上均较遗传算法有一定的改善,这说明粒子群算法在解决函数优化时同样具有很好的应用前景。

2)

神经网络训练

工业、经济、医疗等领域的许多实际问题如质量控制、破产预测、图像识别、医疗诊断等可以转换为模式分类问题求解。神经网络自学习、自组织、容错以及模拟非线性关系的能力使其特别适合解决上述复杂的实际应用问题。

神经网络的训练问题属于非线性的高复杂度的优化问题。研究表明,PSO是一种很有潜力的神经网络训练算法,粒子群优化算法保留了基于种群的、并行的全局搜索策略,其采用的速度-位移模型操作简单,避免了复杂的遗传操作,在实际应用问题(如运用PSO算法训练神经网络进行医疗诊断)取得了较高的成功率,目前正在将其推广到更多的应用领域。

3)

工程应用

实际的工程问题往往可以转化为函数优化问题求解。下面简要介绍粒子群算法在一些实际工程领域的应用。

首先,通过训练神经网络,粒子群优化算法已成功应用到对医学中震颤的分析。震颤行为的诊断仍是医学研究的挑战性领域之一。经粒子群算法训练的人工神经网络已经能够区分人的本能震颤和病理性震颤。Eberhart和Hu研究发现,这种方法在上述的应用中处理速度快,诊断结果准确。在其他疾病的诊断如乳腺肿瘤良性或恶性的判断,心脏病的诊断,粒子群算法训练的神经网络也取得了较高的诊断成功率。

其次,日本的Fuji电力公司的研究人员将电力企业著名的RPVC(Reactive Power and Voltage Control)问题简化为函数优化问题,并使用改进的粒子群算法进行优化求解。与传统方法如专家系统、敏感性分析相比,实验结果证明粒子群算法在解决该题上具有一定的优势。

此外,粒子群算法已被美国一家公司用于各种生物化学成分的优化组合,进而人工

0.5 0.6 0.7 0.8 0.9 12 17 17 18 20 60% 85% 85% 90% 100% 从表中可以看出T0越大,算法稳定性越高,当T0取0.9时,算法稳定性最高,达到100%。继而在取定T0=0.9的情况下,再进行了50次实验,没有出现失败的情况。证明

T0=0.9算法稳定性高,故去T0=0.9。

取定T0=0.9后,对K0进行调试。研究得K0与算法收敛代数的关系如图5-1所示:

图5-1 K0与算法收敛代数的关系

从图中可以看出当K0=0.8时,算法的迭代次数最少,收敛速度最快。故取K0=0.8。 综合上述分析,本文实验中取定参数组合为T0=0.9、K0=0.8。

5.2.2.3 算法优化过程

取定参数粒子群大小为10、迭代次数为100、T0=0.9和K0=0.8情况下,自适应粒子

群算法AFIPSO优化综合目标函数F的过程如图5-2所示,优化过程中两个子目标函数的变化如图5-3所示。

图5-2 AFIPSO优化综合目标函数F的过程 图5-3 AFIPSO优化子目标函数的过程

从图中可以看出算法在迭代到8代左右便开始收敛,而在保证综合目标函数值不变的情况下,子目标函数之间仍在进行协调,在27代达到最终的平衡。

5.2.2.4 算法比较分析

为了更好评价AFIPSO算法优化多目标函数性能,比较AFIPSO算法与文献[51]及文献[52]算法在最优值达到10时的迭代次数,比较结果如表5-4、图5-4所示。

表5-4 对综合目标函数优化结果比较

算法来源 本文算法 文献[51] 文献[52] 算法名称 自适应粒子群算法AFIPSO 自适应调整飞行时间粒子群算法 动态变惯性权值粒子群算法 收敛代数 8 13 27 ?6

图5-4 AFIPSO算法与文献[51]及文献[52]算法优化过程比较

从图5-5可以看出,本章算法迭代到第8代时便开始收敛,文献[51]、文献[52]分别到第13代、27代开始收敛。而且本章算法在初始化值较大的情况下迅速收敛于最优值,表明本章算法对优化多目标函数有效,而且速度较快。

5.3 FCCU分馏塔的多目标优化模型

石油化工生产过程中,催化裂化分馏塔是一个非常复杂的工艺生产过程,涉及到的控制变量和约束变量多达25个。其中重石脑油流量口:Q1(t/h)和轻柴油流量Q2(t/h)是装置的2个经济指标,因此对此2个变量建立数学模型。采用多元逐步回归[61]等方法了建立分馏塔过程数学模型。样本数据来源为某石化厂现场数据,选择汽油和轻柴油的产量作为多目标优化的控制变量,其余的23个变量作为约束变量,优化目标函数为P1:

?Q1?0.48039H1?0.32325T2?1.4526T3?0.72868Q3???2.5993H2?1.0342T5?544.34256max??Q2?0.77283T1?0.30974H1?0.13858T2?0.038328Q4???0.26168T4?0.14154T5?254.4036 (5-5)

?317?T1?387,287?T2?351,59?T3?72?s.t?202?T4?247,458?T5?560,48?H1?58

?45?H?55,35?Q?43,417?Q?510234?式中变量的含义如表5-5所示。

变量 varible 符号notation 名称 denomination 单位unit 控制变量 Control variables Q1 Q2 表5-5 控制变量和约束变量 约 束 变 量 bound variables T1 T2 T3 T4 T5 H1 H2 Q3 Q4 汽油 轻柴油 流量 出装置 (t/h) 流量 (t/h) 塔底 重循 塔顶 轻柴 提升管 塔底 轻柴 塔顶循 轻柴汽 温度 抽出 回流 抽出 出口温 液位 汽提 环回流 提蒸汽(℃) 温度 温度 温度 度(℃) (m) 塔液 流量 流量 (℃) (℃) (℃) 位(m) (t/h) (t/h) 5.4 AFIPSO在工程中的应用 5.4.1 多目标转化为单目标

根据生产要求用加权法将多目标优化目标函数P1转化为单目标优化目标函数P2:

1 Q(1?Q+2 max? ) (5-6) 2为了研究方便,取?1??2?0.5。

将P2作为算法的适应度函数,利用自适应粒子群算法(AFIPSO)求解。

5.4.2 AFIPSO智能优化FCCU分馏塔参数调试

在本章实验中,取N?30。由于本章算法(5-2)式与Imax相关,并非Imax越大求解效果越好,所以需要对Imax进行调试。同时,(5-2)式中的参数T0和k0对求解效果有所影响。为了确定Imax、T0以及k0的值,分别对Imax、T0、k0与最优解平均值及收敛到最优值次数的关系进行实验(在本章中,对每组参数进行10次实验)。测试结果如图5-5、图5-6、图5-7所示。

由于最优解的平均值越大,算法求解效果越好;收敛到最优解的次数越多,算法的稳定性越高。选取参数时,首先保证最优解的平均值最大,在此基础上,尽量使得收敛

到最优解的次数越多。从图5-5(a)可以看出,Imax取100和110时,最优解的平均值最大,从图5-5(b)中可以看出Imax在100时收敛到最优解的次数比110时多,所以选定参数Imax=100。同理,从图5-6、图5-7可以看出,参数T0应取0.7,k0应取0.8。由此可得,自适应粒子群算法优化FCCU分馏塔选定参数组合如表5-6所示。

表5-6 分馏塔参数取值

参数名 参数值 Imax T0 k0 100 0.7 0.8

图5-5 Imax的实验图 图5-6 T0的实验图

合成微生物。与传统的工业优化方法比较,粒子群算法产生合成结果的适应度是传统方法的两倍。实验充分显示粒子群算法的优越性:尽管劣质成分在一定的迭代代数内能够影响优化搜索的进程,但由于粒子群算法能够搜索到更大范围内的优化问题的解空间,合成结果总能比较理想。

总的来说,粒子群优化算法与其他进化算法一样,可以解决大部分的优化问题,或可以转换为优化问题进行求解的问题。目前,在模糊控制器的设计、车间任务调度、实时机器人路径规划、图像分割、EEG信号模拟、语音识别、烧伤诊断以及探测移动目标等方面已经有成功应用的先例。

2.7 本章小结

本章详细介绍了粒子群算法的起源背景、基本思想以及基本粒子群算法的实现,最后简单介绍了该算法的主要应用及其研究方向。但是通过研究发现,作为一种新兴的智能优化算法,基本粒子群还存在早熟收敛和稳定性差的不足,有必要对其进行改进,进一步地探讨与研究。

第三章 改进的粒子群算法

3.1 引言

针对基本粒子群算法早熟收敛和稳定性差的缺点,基于不同的策略,已产生大量改进的粒子群优化算法。从根本上来说,大多数改进方案都基于与其他优化算法结合的改进,是以大幅度提高算法理解的难度和实现的复杂度为代价的,这就使得粒子群优化算法失去了一些诱人的核心优点,如理解的简单性、实现的简洁性等,这对该算法的大面积工程应用是有所不利的。因此,以改进粒子群算法为出发点寻找尽量简单有效的改进粒子群算法,是十分必要和有意义的。

3.2 改进的粒子群算法综述

对粒子群算法的改进主要集中在对参数的改进以及算法融合两个方面。对参数的改进包括对惯性权值?、学习因子c1和c2、每一代粒子的飞行时间等的调整。对于算法融

合方面,许多学者尝试了将粒子群算法与其他智能计算方法相融合,有结合遗传算法交叉算子的混合粒子群优化算法[14]、基于模拟退火的粒子群算法[32]、免疫粒子群算法[35]、基于群体适应度方差自适应变异的粒子群算法[37]、与差别进化相结合的粒子群算法[48]等,下面简要介绍粒子群算法的几类改进算法。

1)惯性权重法

粒子群优化算法以种群行为来激励粒子的运动。每个潜在的解与粒子的速度相联系,该速度不断地根据粒子自身经验和粒子的社会经验来调整大小、方向,总是希望粒子能朝更好的方向运动。在搜索过程中,全局搜索能力和局部搜索能力的平衡关系对于算法的性能起着举足轻重的作用。初始时,Shi将惯性权值取值定为常数,但后来实验发现,较大的?值有利于跳出局部极小点,较小的?值有利于算法的收敛,而动态的惯性权重能够取得比固定值更好的寻优结果。现在采用较多的是Shi建议的线性递减权重(LDW)策略, 速度更新公式在式(2-1)的基础上加上惯性权值,调整为式(3-1)(3-2)所示。

?t??max??max??mintmax?t (3-1)

(3-2)

vijt?1??tvijt?c1r1?(pbestijt?xijt)?c2r2?(gbestijt?xijt)式中,?max为初始惯性权重;?min为最终惯性权重;tmax为最大迭代次数;t为当前迭代次数。

在算法初期,?取值较大,有利于粒子探索未知区域,扩大搜索空间。在算法后期收敛的情况下,?取值较小,有利于微调对最优区域周围的搜索,从而提高了搜索的精度。典型取值?max=0.9、?min=0.4,但是还有两个缺点:其一迭代初期局部搜索能力较弱,即使初始粒子已接近于全局最优点,也往往错过,而在迭代后期,则因全局搜索能力变弱,而易陷入局部极值。其二最大迭代次数tmax较难预测,从而将影响算法的调节功能。2001年Shi又提出用模糊规则动态地修改?值和随机惯性权重(RIW)取值策略。

张选平等提出了一种动态的改变惯性权值(Dynamically Changing Weight,DCW)的粒子群算法。在该算法中,惯性权重的变化受算法运行态势影响,是由粒子群的进化速度和粒子群的聚集度综合决定的。与LDW算法相比,平均迭代次数至少平均降低25%,收敛速度和收敛精度都明显提高。陈贵敏等在LDW的基础上,又给出了三种非线性的

惯性权重递减策略,发现对于多数连续优化问题,凹函数递减策略优于线性策略,而线性策略优于凸函数策略。

带惯性权值的粒子群算法在刚开始的时候倾向于开掘,然后逐渐转向于开拓,从而在局部区域调整解。这是目前使用最广泛的粒子群算法形式。

2)收缩因子法

Clerc[41]的研究表明使用收缩因子可以保证粒子群算法收敛。收缩因子?是关于c1、

c2的函数,定义的公式如式(3-3)、(3-4)所示。

k?1kkkttvij??[vij?c1r1(pbestij?xij)?c2r2(gbestij?xij)] (3-3)

??22?l?l?4l2,l?c1?c2,l?4 (3-4)

Clerc的带收缩因子的方法中设l为4.1,故收缩因子?为0.729。相当于在速度更新公式中,在前次速度的基础上乘0.729。

收缩因子法可使粒子轨迹最终收敛,且可以有效搜索不同的区域,能得到高质量的解,若与此同时将每维的最大速度设置为一维搜索空间的大小,则可得到更好的效果。

但是,收缩因子法在处理单峰函数或者其它比较光滑的较为简单的函数时,比起基本粒子群算法,收敛速度稍微慢一点。

3)基于学习因子c1和c2的改进

学习因子c1和c2代表了粒子向自身极值pbest和全局极值gbest推进的随机加速权值。小的加速常数值,可使粒子在远离目标区域内振荡;而大的加速常数可使粒子迅速向目标区域移动,甚至又离开目标区域。如果c1?c2?0,则粒子将以当前速度飞行,直到边界。此时,由于粒子只能搜索有限的区域,故很难找到好解。

当c1?0则粒子没有自身认知能力,亦即“只有社会(social-only)认知”的模型。在粒子相互作用下,算法有能力达到新的搜索空间。其收敛速度比标准算法更快,但碰到复杂问题,比标准算法更容易陷入局部极值点。

当c2?0,则粒子之间没有社会信息共享,亦即“只有自身认知(cognition-only)”的模型。由于个体之间没有交互,一个规模为N的群体等价于N个单个粒子的运行,因而得到最优解的概率非常小。

Shi和Eberhar建议,为了平衡随机因素的作用,通常设c1?c2?2,后来Clerc推导出c1?c2?2.05,也有研究者认为c1和c2不等,并由实验得出c1?2.8,c2?1。Ratnaweera等采用了根据迭代次数来动态地修改加速因子的方法,模拟实验结果表明,当c1由2.15线性递减至0.15,c2由0.15线性递增至2.15时,算法所获得适应值最优。这种方法确实加速了算法的收敛,尤其在单峰值函数的测试表现突出。为此付出的代价是算法容易陷入局部最小值,在多峰值函数的测试中容易过早收敛。

但是,实际上这些研究也仅仅局限于部分问题的应用,无法推广到所有问题域。 4)小生境粒子群算法

粒子群算法启发性强、收敛速度快,使得粒子在寻优时过分集中,最后粒子都移向全局最优点,不能用于多模态函数优化。

2002年Brits等[50]将小生境技术引入粒子群优化算法中,小生境法除去影响粒子间信息交流的“社会部分”,增强粒子局部搜索能力,每个粒子飞向离它最近的山峰,即形成小生境。小生境粒子群算法速度更新公式如式(3-5)所示。

t?1tttvij??tvij?c1r1(pbestij?xij) (3-5)

小生境粒子群法收敛速度较慢,主要应用于多峰函优化,对单峰函数效果不佳。 5)自适应调整飞行时间

基本粒子群算法在解空间搜索时,每代粒子的飞行时间恒为1,有时会导致粒子在最优解的附近来回“振荡”现象[51]。自适应调整飞行时间法动态调整飞行时间,随着迭代代数的增加,飞行时间线性减少。具体调整公式如式(3-6)、(3-7)所示。

t?1ttxij?xij?vijTt (3-6)

Tt?T0(1?t0ttmax) (3-7)

式中,Tt表示第t代粒子的飞行时间;T0表示粒子最长飞行时间;t0为比例系数,起调节作用。

自适应调整飞行时间法适用于复杂函数,最优值处在狭长或陡峭的山峰上。但是对于简单函数后期收敛速度较慢。

6)算法融合

Angeline[52]将选择算子引入粒子群算法中,选择每次迭代后较好的粒子复制到下一

代,以保证每次迭代的粒子群都具有良好的性能,这种算法对某些单峰函数效果良好。

Lvbjerg[53]在粒子群每次迭代后,按几率在粒子间交换各维,通过交叉来生成更优秀的粒子群算法对某些多峰函数效果较好。

Higash[54]等人分别提出了自己的变异粒子群算法,基本思路均是希望通过引入变异算子跳出局部极值点的吸引,从而提高算法的全局搜索能力,得到较高的搜索成功率。

高鹰等人则引入免疫机制的概念,提高粒子群的多样性和自我调节能力,以增强粒子的全局搜索能力。

Baskar等人提出了协同粒子群算法,通过使用多群粒子分别优化问题的不同维来对基本算法进行改进尝试。

另外,还出现了一些量子粒子群算法、基于模拟退火的粒子群算法以及求解几何约束问题的粒子群算法等。

以上改进算法各有优缺点,它们引入了一些新的参数,在改进算法性能的同时也一定程度上增加了算法的复杂性。

3.3标准粒子群算法(粒子群算法及应用P19)

为了改善基本粒子群算法的性能,Shi和Eberhart在1998年的IEEE国际进化计算学术会议上发表了题为“A modified particle swarm optimizer”的理论,引入了惯性权重,逐渐地大家都默认这个改进粒子群算法为“标准粒子群算法”。

3.3.1 算法思想

在基本粒子群算法的速度公式上包括三部分:第一部分是粒子调整前的速度;第二部分和第三部分是对粒子速度的调整。

如果没有后面两部分,粒子将会保持相同的速度朝一个方向飞行,直到到达边界,这样粒子很大可能会找不到最优解,除非最优解恰好在粒子直线飞行的轨迹上,但这种情况是很少的。

如果没有第一部分,粒子的飞行速度将仅由它们当前位置和历史最好位置决定,则速度本身是无记忆的,无法将优质信息保留。假定刚开始粒子i处于较优位置,那么粒子的飞行速度将会是0,即它会保持静止状态,直到其他粒子找到比粒子i所处位置还

要好的解,从而替代了全局最优解。此时,每个粒子将会飞向它自身最好位置和群体全局最好位置的权重中心。所以如果没有第一部分,粒子群算法的搜索空间将会随着进化而收缩。此时只有当全局最优解在初始搜索区间时,粒子群算法才可能找到解。所以求解结果非常依赖于初始群体。当没有第一部分时,此算法更像是局部最优算法。

对于不同的问题,局部最优能力和全局最优能力的权衡也不一样。考虑到这个问题,并结合以上的讨论,Shi和Eberhart添加了一个惯性权重?到速度更新公式,即式(3-2)。

vijt?1??tvijt?c1r1?(pbestijt?xijt)?c2r2?(gbestijt?xijt) (3-2)

位置更新公式与基本粒子群算法更新公式相同。惯性权重?起着权衡局部最优能力和全局最优能力的作用。为了研究惯性权重对粒子群算法性能的影响,Shi和Eberhart将此算法应用到Schaffer’s f6函数中,这是个著名的评价优化算法的基准函数。他们改变惯性权重的大小,通过大量的实验得到两个结论:

1)当惯性权重较小时(<0.8),如果粒子群算法能找到全局最优解的话,那么它所经历的搜索时间是很短的,即所有的粒子趋向于快速汇集在一起。如果最优解是在初始搜索空间内,粒子群算法将会很容易找到全局最优,否则它会找不到全局最优。

2)当惯性权重较大时(>1.2),粒子群算法更像全局最优解,且它总是在探索新区域。当然,这时的粒子群算法会需要更多的迭代来达到全局最优解,且更有可能找不到全局最优解。当惯性权重适中时,粒子群算法将会有更大的机会找到全局最优解,但迭代次数也会比第一种情况更多。

根据以上分析,他们不是把惯性权重设为定值,而是设为一个随时间线性减少的函数,惯性权重的函数形式通常如式(3-1)所示。

?t??max?其中

?max??mintmax?t (3-1)

?max为初始权重;?min为最终权重;tmax为最大迭代次数;t为当前迭代次数。

这个函数使得粒子群算法在刚开始时倾向于开掘,然后逐渐转向开拓,从而在局部区域调整解。这些改进使得粒子群算法的性能得到很大的提高。

3.3.2 测试函数与测试环境

为了考察标准粒子群算法的性能,对两个典型的测试函数进行优化。选定测试函数

如表3-1所示。

表3-1 两个测试函数

测试函数 f(x,y) x,y取值范围 [-30,30] [-5.12,5.12] 求最大/最最优值 小值 最小值 最大值 Ⅰ 100(x2?y)2?(1?x)2 Ⅱ (3 )2?(x2?y2)2220.05?(x?y)0 3600 对于测试函数Ⅰ,目标为求该函数的最小值,最优值为0,在(1,1)点取到。该函数为单峰函数,函数较为简单,不存在局部极值,但是函数的取值范围较大,在[-30,30]之间,在求解过程中应设置较大的粒子群数和迭代代数,才能较快地收敛到最优值。函数图象如图3-1所示。

图3-1 测试函数Ⅰ

对于测试函数Ⅱ,目标为求该函数的最大值,最优值为3600,在(0,0)点取到。该函数为多峰函数,在(?5.12,?5.12)处分别有四个局部极值,中间(0,0)是全局极值,非常狭长陡峭,容易陷入局部极值,是非常具有代表性的测试函数。函数图象如图3-2所示。

图3-2 测试函数Ⅱ

利用选取好的两个测试函数,测试标准粒子群算法的性能。由于测试环境不同对算法性能评估也不一样,故将本次实验测试环境列出,如表3-2所示。

CPU 硬盘 内存 工具 编程工具 表3-2 测试环境 lenovo笔记本 Pentium?Dual-Core CPU T4200 160G 2.0HZ Matlab 6.5 电脑型号 电脑配置 3.3.3 算法流程设置

粒子群算法无需像遗传算法采用二进制编码,而是采用实数编码直接进行优化计算。将测试函数本身设为适应度函数进行求解,求解步骤与基本粒子群算法类似,只是速度调整公式有所不同,具体见如下流程。

图3-3 标准粒子群算法简要流程

表3-3 参数初始化(以测试函数Ⅱ为例)

步骤 具体操作 最大惯性权重 最小惯性权重 算法基本参数初始化 参数初始化 是否调试参数 对应MATLAB代码 是 是 wmax=0.9; wmin=0.4; itmax=200; N=200; c1=2; c2=2; j=1; for iter=1:itmax W(iter)=wmax-((wmax-wmin)/itmax)*iter; end; D=2; a=-5.12;b=5.12; x=a+(b-a)*rand(N,D,1); V=wmin+(wmax-wmin)*rand(N,D,1); 最大迭代次数 是 粒子群大小 是 学习因子1 是 学习因子2 是 初始化迭代次数 否 否 循环迭代前初始化惯性权重 设置目标函数相关参数 粒子初始化 惯性权重按迭代次数线性递减 自变量解的维度 解的左边界a,右边界b 位置初始化 速度初始化 否 否 否 否 表3-4 计算第一代适应度值(以测试函数Ⅱ为例)

步骤 具体操作 对应MATLAB代码 for i=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); for p=1:N for r=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); 对粒子自身最优位置进行赋值 for i=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); for xx=1:N for yy=1:D if x(xx,yy,j)bx(xx,yy,j)=b; end;end;end; for i=1:N x0(1)=x(i,1,j);x0(2)=x(i,2,j); F(i,1,j)=f4(x0); end; [C,I]=max(F(:,:,j)); if C>Fb(1,1,j)%如果当代不是最大值,则修改第j代全局最优值的位置gbest(1,1,j)=gbest(1,1,I); gbest(1,2,j)=gbest(1,2,I);end; for i=1:N [C,I]=max(F(i,1,:)); if F(i,1,j)>=C pbest(i,:,j)=x(i,:,j); else pbest(i,:,j)=x(i,:,I); end;end; 速度调整 位置调整 边界控制 迭代求解 计算适应度值 调整全局最优值 调整粒子自身最优值 表3-6 终止迭代和结果输出(以测试函数Ⅱ为例)

步骤 终止迭代和具体操作 迭代代数 对应MATLAB代码 j=itmax

结果输出

结果输出 Fbest(1,1,itmax) 3.3.4 参数调试

由于对于不同的测试函数,适合的参数组合不一样,因此需对两个测试函数分别进

cc行参数调试。标准粒子群算法可调参数为:最大迭代代数itmax,学习因子1、2,粒

子群大小N,惯性权值?。可首先对参数进行尝试性调试,在根据调试过程中出现的问题进行具体细微调整。

3.3.4.1 测试函数Ⅰ参数调试

针对测试函数Ⅰ,首先进行尝试性调试:

1、通过初步调试,该目标函数较为简单,求解最优值收敛速度较快,故可使用较小规模的粒子群N,故选定N=50,且设置最大迭代代数为100;

2、由于该函数解处于平滑地带,最优值较容易找到,可使用平衡的局部搜索和全局搜索,此处取c1?2,c2?2;

3、根据一般取法,取为随迭代代数线性递减,?k??max?迭代代数,此处取?max?0.9,?min?0.4;

4、调试结果:利用以上参数组合进行优化测试,设置收敛精度为0.01,进行20次实验。20次实验中,每次都很快取得最优值,成功率达100%,故选取尝试性参数,不再进行调整,选取参数如表3-7所示:

表3-7 测试函数Ⅰ参数选择

(?max??min)k,k为当前

itmax参数名称 最大惯性权重?max 最小惯性权重?min 最大迭代次数tmax 取值 参数名称 0.9 粒子群大小N 0.4 学习因子c1 100 学习因子c2 取值 50 2 2 3.3.4.2 测试函数Ⅱ参数调试

针对测试函数Ⅱ,尝试性调试过程如下:

1、通过初步调试,该目标函数较为复杂,求解最优值收敛速度较慢,故可使用稍

大规模的粒子群N,故选定N=200,且设置最大迭代代数为200;

2、由于该函数解隐蔽,应加强局部搜索,减弱全局搜索,否则局部极值较容易找到。全部被牵引过去,容易陷入局部极值,此处取c1?2,c2?0.5;

3、根据一般取法,取为随迭代代数线性递减,?k??max?迭代代数,此处取?max?0.9,?min?0.4。

4、调试结果:利用以上参数组合进行优化测试,设置收敛精度为0.01,进行20次实验。20次实验中仅9次取到最优值,成功率仅45%。有11次未取到最优值,其中有10次接近最优值,但精度不高,占总实验次数的50%;另外有一次陷入了局部极值。

通过实验发现,在寻优过程中存在两个问题:

1)解的精度不够高,或者收敛速度慢,迭代200代时经常在最优解附近,无法达到0.01的精度,很难完全收敛到最优值,故可考虑加大迭代次数;

2)有时会陷入局部极值,但概率不高,对求解影响不是太大,且针对该函数,标准粒子群算法存在这方面的缺陷,难以通过单纯调试某个参数解决。

针对以上问题,保持其他参数不变,将最大迭代次数从200次调整为300、400、500次,再分别进行20次实验。

表3-8 迭代次数调试结果

迭代次数 实验次数 成功次数 精度不高次数 200 300 400 500 20 20 20 20 9 12 12 10 10 8 6 8 陷入局部极值次数 1 0 2 2 成功率 45% 60% 60% 50% (?max??min)k,k为当前

itmax从表中可以看出,最大迭代次数调为300次时,算法的成果率达60%,在此基础上继续增加迭代次数并不能提高算法的成功率,由于惯性权重的调整也与最大迭代次数相关,因此并非迭代次数越大算法成功率越高。而且随着迭代次数的加大,陷入局部极值的次数也有所增加。可见标准粒子群算法对优化测试函数Ⅱ具有一定的瓶颈,选定一组相对较优的参数组合进行优化。参数选取如表3-9所示:

表3-9 测试函数Ⅱ参数选择

参数名称 最大惯性权重?max 取值 参数名称 0.9 粒子群大小N 取值 200 最小惯性权重?min 最大迭代次数tmax 0.4 学习因子c1 400 学习因子c2 2 0.5 3.3.5 测试结果与算法评估

在选定参数后,分别为两个测试函数进行算法测试与算法评估。

3.3.5.1 测试函数Ⅰ测试结果

实验结果如表3-10所示:

表3-10 测试函数Ⅰ优化结果 实验次数 最优值 最优解(x) 最优解(y) 1.000005941 0.999997485 1.00003392 1.000005677 1.000028519 1.000008383 1.00000024 0.999999946 1.001916178 0.999994096 0.999999491 0.999998721 1.00048185 0.9999748 1.000001645 1.000102674 1.000001768 0.995814955 0.999993486 1.000024147 1.000011198 0.999989675 1.000064576 1.000011546 1.000081389 1.000015156 1.000000445 0.999999916 1.004073971 0.999986982 0.999998912 0.99999741 1.000898201 0.999955426 1.000003177 1.000213583 1.000003989 0.991336486 0.999985285 1.000049077 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 收敛代数 22 65 74 54 34 20 41 30 88 24 22 38 42 48 41 18 58 43 53 32 成功与否/原因 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 连续20次均以高精度取得最优值,成功率达100%,且收敛速度快,平均收敛代数为42。

选取其中一次实验结果,在32代收敛到最优值。优化过程如图3-4所示。

图3-4 测试函数Ⅰ优化过程

3.3.5.2 测试函数Ⅱ测试结果

实验结果如表3-所示:

表3- 测试函数Ⅱ20次实验结果 实验最优次数 值 最优解(x) 1.0e-009 * 0.85786001633870 -0.002469908 1.0e-004 * 0.19108877190307 1.0e-004 * -0.26554595531953 1.0e-008 * 0.04691581057247 0.010130784 1.0e-005 * 0.01937576950979 1.0e-008 * 0.14316176680035 0.053386624 1.0e-008 * 0.05647695763394 1.0e-009 * 0.96163883720008 1.0e-008 * -0.75870096977782 最优解(y) 收敛代数 成功与否/原因 是 精度不高 是 是 是 精度不高 是 是 精度不高 是 是 是 1 2 3 4 5 6 7 8 9 10 11 12 3600 3597 3600 3600 3600 3571 3600 3600 2912 3600 3600 3600 1.0e-009 * 56 -0.99359443653254 0.00282468 不收敛 1.0e-004 * 128 -0.03409661412707 1.0e-004 * 139 0.26554665506307 1.0e-008 * 159 -0.10159732131997 -0.010001801 不收敛 1.0e-005 * 158 -0.39473374295996 1.0e-008 * 113 0.03511917010934 -0.052348203 不收敛 1.0e-008 * 111 0.13587545867514 1.0e-009 * 121 -0.2914402683989 1.0e-008 * 167 0.73238949200582 13 14 15 16 17 18 19 20 3599 3600 3597 3600 3586 3600 3600 3445 1.0e-003 * 0.63524280244967 1.0e-009 * 0.89050611863368 -0.002858507 1.0e-009 * -0.38213418533520 -0.006870539 1.0e-007 * 0.87822008846974 1.0e-005 * 0.54470570027567 -0.024576326 1.0e-003 * -0.63524280244967 1.0e-009 * 0.90488238508311 0.002470074 1.0e-009 * -0.08948555717601 0.006774831 1.0e-007 * -0.87822009004954 1.0e-005 * 0.76551011499126 0.022517253 不收敛 精度不高 54 是 不收敛 精度不高 88 是 不收敛 精度不高 285 是 116 是 不收敛 精度不高 算法成功率为60%,有8次实验精度不高。在成功的12次实验中,平均迭代次数为:108。

选取其中一次实验结果,在125代收敛到最优值。优化结果如图3-5,3-6所示,优化过程如图3-7所示。

图3-5 粒子的初始位置 图3-6 粒子的最终位置

图3-7 测试函数Ⅱ的优化过程

3.3.5.3 算法评估

标准粒子群算法是在基本粒子群算法的基础上进行简单的改进,对于求解简单优化问题(测试函数)时,能够较快、较准地取得最优值。而在求解复杂优化问题(测试函数)时,往往出现精度不高和陷入局部极值的情况,这方面是算法瓶颈问题,无法通过调整算法自身参数给以解决,必须对算法进行思想方面的改进才能提高算法性能。

3.4小生境粒子群算法 3.4.1 算法思想 3.4.2 算法测试

3.4.3 测试结果与算法评估

3.5自适应调整飞行时间粒子群算法 3.5.1 算法思想 3.5.2 算法测试

3.5.3 测试结果与算法评估 3.6本章小结

为了改善算法的收敛性能,Sin和Eberhart在1998年的论文中引入了惯性因子的概念[12],速度和位置更新公式(3-3)和(3-4)所示:

vijt?1??t?vijt?c1r1?(pbestijt?xijt)?c2r2?(gbestijt?xijt) (3-3)

t?1tt?1 xij?xij?vij (3-4)

这里,?为惯性因子,其大小决定了对粒子当前速度继承的多少,合适的选择可以使粒子具有均衡的探索和开发能力。也就是起到权衡全局搜索能力和局部搜索能力。?较大时,原速度影响较大,全局搜索能力较强;?较小时,原速度影响较小,局部搜索能力较强。

目前,对于PSO算法的研究大多以带惯性因子的PSO算法为基础进行分析、扩展和改进,因此把这种带惯性因子的PSO算法称为标准PSO算法;而将前述的PSO算法称为原始PSO算法。原始PSO算法就是惯性因子?=1时的特例。

第四章 自适应粒子群算法AFIPSO

4.1 引言

粒子群算法存在早熟收敛、收敛速度慢以及稳定性差等缺点。为提高算法性能,已有很多学者通过分析PSO参数对优化性能的影响提出了很多改进方案,例如:惯性权重法[10]、收缩因子法[11]、杂交粒子群算法[12]、非线性惯性递减策略[13]等。这些方法很好地解决了早熟收敛问题,但仍存在对有些测试函数收敛速度慢和稳定性差的问题。本章提出一种自适应粒子群算法AFIPSO。通过自适应调整飞行时间和惯性权值,克服了粒子群算法在进化后期搜索能力下降的问题,并且充分利用目标函数的信息,提高了算法的稳定性,加快了算法的收敛速度。通过测试函数对本章算法进行实验,实验表明:本章算法具有较好的稳定性和收敛速度。

4.2 AFIPSO基本思想

在标准粒子群算法中,由于每代粒子飞行时间固定为1,导致“振荡”现象的产生,且惯性权重?是线性递减的,没有充分利用目标函数所提供的其它信息,使得搜索方向的启发性不强,收敛速度较慢且易陷入局部极值。

为了解决上述问题,本章提出的AFIPSO算法权值?根据全局最优值信息进行自适应调整。惯性权值计算公式如式(4-1)所示[51]。

?ttFbestt?exp(?) (4-1)

Fbestt?1tt?1式中?表示第t代粒子的惯性权值,Fbest、Fbest子的全局最优值。

分别表示第t代、第t-1代粒

另外,在公式(3-2)中未考虑飞行时间,但是为了减少“振荡”现象,本文AFIPSO算法加入飞行时间,并对飞行时间进行自适应调整,调整公式如式(4-2)所示[52]。

xijt?1?xijt?vijt?1?T0?(1?k0t) (4-2) Imax式中T0表示初始飞行时间, k0是调整参数。

4.3 AFIPSO算法流程

AFIPSO算法过程描述如下: 1)种群初始化X?{X1,X2,?,Xn}; 2)计算种群中各个个体的适应度;

tt3)计算个体历史最优位置pbestij、群体历史最优位置gbestij及其所对应的最优值

Fbestt;

4)根据式(3-1)、(4-1)、(4-2)更新粒子的速度与位置; 5)判断是否达到最大迭代代数,如果到了,则退出,否则转2)。 流程图如下:

开始 微粒群体初始化 微粒适应度计算 计算个体历史最优值pbestij 计算群体历史最优值Fbest(t) 根据式(3-1)(4-1)、(4-2) 更新微粒的速度和位置 t判断迭代次数是否达到Imax 判断?是否大于10?6 找不到合理最优值 输出迭代次数t以及最优值 结束

图4-1 自适应粒子群算法AFIPSO流程图

4.4 AFIPSO实验 4.4.1 测试函数

为了考察本章算法的性能,对两个典型的测试函数进行优化。选定测试函数如表1

所示。

表4-1 两个测试函数

测试函数 f(x,y) x2?y2 100(x2?y)2?(1?x)2 x,y取值范围 [-100,100] [-30,30] 求最大/最小值 精确最优值 Ⅰ Ⅱ

最小值 最小值 0 0 4.4.2 参数选取

在本章实验中,取N?100,为

4-2)中k0、T0的取值,分别对k0、T0与迭代收敛次数的关系进行实验。测试结果如图4-2、图4-3所示。

为使迭代次数最少,根据图1、2结果,AFIPSO算法对于测试函数Ⅰ选用参数为:

k0=0.9,T0=0.4;对于测试函数Ⅱ选用参数为:k0=0.6,T0=0.3。

图4-2

k0与迭代次数的关系图 图4-3 T0与迭代次数的关系图

4.4.3 优化结果与结果分析

为了更好评价AFIPSO算法性能,比较AFIPSO算法与标准粒子群算法、文献[51]及文献[52]算法在最优值达到10?6时的迭代次数以及算法稳定性。比较结果测试函数Ⅰ如表4-2、图4-4所示,测试函数Ⅱ如表4-3、图4-5所示。

表4-2 对测试函数Ⅰ优化结果的比较

算法名称 AFIPSO算法 标准粒子群算法 文献[51]算法 文献[52]算法 迭代收敛代数 28 61 42 55 表4-3 对测试函数Ⅱ优化结果的比较

算法稳定性 100% 100% 100% 100% 算法名称 AFIPSO算法 标准粒子群算法 文献[51]算法 文献[52]算法

迭代收敛代数 29 60 56 45 算法稳定性 100% 80% 100% 90%

图4-4 测试函数Ⅰ优化结果的比较 图4-5 测试函数Ⅱ优化结果的比较

在图4-4、图4-5中,曲线(1)表示AFIPSO算法优化结果;曲线(2)表示标准粒子群算法优化结果;曲线(3)表示文献[51]算法优化结果;曲线(4)表示文献[52]算法优化结果。

从表4-2可以看出,对测试函数Ⅰ,四种算法的稳定性都很好,迭代收敛代数AFIPSO较其它三种算法都有所减少,比标准粒子群算法减少54%。

从表4-3可以看出,对测试函数Ⅱ,四种算法中AFIPSO算法、文献[51]算法稳定性较好,而AFIPSO算法比文献[51]算法迭代收敛代数减少了52%。

综上所述,AFIPSO算法收敛速度更快,且算法稳定性高。

4.5 本章小结

本章提出一种自适应粒子群算法AFIPSO。通过自适应调整飞行时间和惯性权值,克服了粒子群算法在进化后期搜索能力下降的问题,并且充分利用目标函数的信息,提高了算法的稳定性,加快了算法的收敛速度。通过测试函数对AFIPSO算法进行实验,实验表明:AFIPSO算法具有较好的稳定性和收敛速度。

第五章 AFIPSO在多目标优化问题中的应用

5.1 引言

在现代化的工业生产中,如何同时使生产的不同产品都达到满意的产量一直是各工业领域期待解决的问题。这类优化问题在实际工程中占有较大的比重,其特点是极少存在绝对最优解,而是存在一个非劣解集(Pareto解集),在该解集中,每一个解在不牺牲其他目标的前提下无法再进一步对单个目标进行优化。多目标优化技术的主要目的就是寻求Pareto解集中的一个或多个满意解。

在石油化工生产中,催化裂化(FCCU)分馏塔的生产过程就是一个典型的多目标优化问题。其中,重石脑油和轻柴油是催化裂化分馏装置的2个主要产物。如何同时使重石脑油和轻柴油的产量都尽可能高,达到最大的经济效益?目前对于该问题研究的文献还比较少。

熊俊文等[48]建立以汽油和轻柴油为目标的FCCU分馏塔的多目标模型。其基础是利用某炼厂的FCCU装置25个操作变量的实际数据,并结合多元逐步回归方法,剔除次要变量得模型。该模型不涉及任何物性数据,能多目标优化FCCU分馏塔。

对于上述FCCU分馏塔多目标优化问题,熊俊文等[57]采用遗传算法对其进行优化;申慧敏等[58]在文献[57]的基础上加以改进,采用自适应的基于Pareto多目标遗传算法(IPAGA)进行优化,取得较好的优化结果,但优化速度较慢,花费时间较长;周晓静等[59]采用基于参数自适应的空间全局单位化蚁群算法(ASACA)进行优化,找到了FCCU分馏塔多目标优化问题的历史最优解,但是该算法优化过程较慢,中间存在暂时的停滞现象,花费时间较长。粒子群算法是继蚁群算法之后的又一智能算法,算法概念简单,参数设置少,在处理优化问题时,收敛速度快,但容易陷入局部极值[60]。

本章提出将自适应粒子群算法AFIPSO(Adaptively adjust Flight-time and Inertia-weight Partical Swarm Optimization)应用于FCCU分馏塔多目标优化问题。该算法在粒子群算法的基础上,自适应调整飞行时间并动态改变惯性权值,提高了算法的稳定性,加快了算法的收敛速度。实验表明:该算法能在较短的时间内收敛到FCCU分馏塔多目标优化问题的最优解。

5.2 AFIPSO对多目标函数的优化 5.2.1自适应粒子群算法(AFIPSO)

本章采用自适应粒子群算法AFIPSO,该算法是在粒子群算法的基础上对惯性权值和飞行时间进行自适应调整。调整公式如(5-1)、(5-2)所示。

Fbetst?() ??expt?1 (5-1) Fbesttt?1tt?1xij?xij?vij?T0?(1?k0t) (5-2) Imax式中?表示第t代粒子的惯性权值;Fbestt、Fbestt?1分别表示第t代、第t?1代粒子

t?1tt的全局最优值;xij、xij分别表示第t?1代、第t代第i个粒子第j维向量取值;vij表示第

tt?1代第i个粒子第j维的速度;T0表示初始飞行时间;k0是调整参数;Imax是最大迭代

次数。

5.2.2 AFIPSO对多目标函数的优化

5.2.2.1 优化测试函数

为了检验自适应粒子群算法(AFIPSO)能否有效的应用于多目标函数优化问题,在多目标函数优化问题中能否表现出算法优良的性能,选取表5-1中多目标优化函数作为测试函数进行试验。

表5-1 多目标函数优化问题

优化函数 MOP 目标函数 1??f1?x2?x2?1 min?12?f?x2?3x2?1?212优化区间 x1?[?3,3] x2?[?5,5] 首先,选用简单加权的方法将多目标优化问题转化为单目标优化问题的形式,如式(5-3),然后再利用自适应粒子群算法(AFIPSO)的思想进行优化。

F??1f1??2f2 (5-3)

式中ω1+ω2=1。

为了研究方便,取?1??2?0.5。

表5-2 转化后单目标函数优化问题

优化函数 F 目标函数 优化区间 最优解 理论最优值 1 F?0.5f1?0.5f2? 0.5x1?x2?122?0.5(x1?3x2?1)22x1?[?3,3] x2?[?5,5] x1?0x2?0 5.2.2.2 参数选取

在本文实验中,通过对参数T0,K0进行0.1至0.9的分割,然后交叉组合。对每种组合进行20次实验。分析其结果发现T0对算法的稳定性影响较大,而K0对算法的收敛速度影响较大。

在取定粒子群大小为10,迭代次数为100的情况下,研究T0与算法稳定性的关系,以及K0与算法收敛代数的关系。

算法稳定性定义为实验中收敛到最优解的百分比。如果百分比越大,说明算法稳定性越高;反之则越低。

算法稳定性?实验取到最优解次数 (5-4)

实验总次数研究得T0与算法稳定性的关系表5-3所示:

表5-3 T0与算法稳定性的关系表

T0 实验成功次数 14 7 14 10 算法稳定性 70% 35% 70% 50% 0.1 0.2 0.3 0.4

本文来源:https://www.bwwdw.com/article/v92h.html

Top