1、 数控技术学以致用精品教程 粒子群优化算法及其工程应用 刘波 著 Publishing House of Electronics Industry 北京BEIJING 内 容 简 介 粒子群优化(PSO)算法是一种基于群体智能的新兴演化计算技术,广泛用于解决科学研究和工程实践中的优化问题。本书主要阐述 PSO 算法的基本理论及其在机械系统故障诊断和机械工程测试中的应用成果。全书共 5 章,第 13 章介绍了 PSO 算法的原理和各种改进、变体 PSO 算法的原理,第 4 章介绍了 PSO 算法在机械工程领域的应用,第 5 章介绍了 PSO 算法在其他工程领域的应用。本书可作为机械工程、自动化等
2、专业高年级本科生和研究生的学习参考书,也可供工程技术人员及研究人员参考使用。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 粒子群优化算法及其工程应用刘波著.北京:电子工业出版社,2010.8 ISBN 978-7-121-11525-7.粒.刘.电子计算机算法理论.TP301.6 中国版本图书馆 CIP 数据核字(2010)第 150847 号 责任编辑:朱清江 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编 100036 开 本:7201000 1/16 印张:8.5 字数:200 千字 印 次:20
3、10 年 8 月第 1 次印刷 定 价:28.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。服务热线:(010)88258888。前 言 20 世纪 90 年代以来,受自然界生物的群体行为启发,研究者模拟自然界生物的群体行为来构造随机优化算法,产生了基于群体智能的新兴演化计算技术。典型的方法有 Dorigo 提出的蚁群算法和 Eberhart 与 Kennedy 提出的粒子群优化(Particle Swarm Optimization,PSO)算法。P
4、SO 算法由于具有简洁、易于实现、没有太多调整参数及不需要梯度信息的特点,已广泛应用于函数优化、神经网络训练、模糊系统控制等领域。目前,国内有关 PSO 算法的书籍还比较少,本书在对 PSO 算法的理论进行介绍的基础上,结合作者近两年的研究成果,重点介绍了 PSO 算法在机械故障诊断和测试中的应用,期望能够对从事粒子群优化技术的研究人员有所帮助。本书主要阐述 PSO 算法的基本理论及其在机械故障诊断和机械工程测试中的应用成果。全书共 5 章,第 13 章介绍了 PSO 算法的原理和各种改进、变体 PSO算法的原理,第 4 章介绍了 PSO 算法在机械工程领域的应用,第 5 章介绍了 PSO算法
5、在其他工程领域的应用。本书可以作为计算机科学、机械工程、控制工程等高年级本科生、研究生和教师的参考用书,也可供从事群体智能优化技术研究和应用的广大研究人员使用和参考。由于作者水平有限,书中的疏漏与不妥之处在所难免,望各位专家、学者和广大读者不吝指教。作 者 第 1 章 概 论(1)1.1 优化技术(1)1.1.1 优化技术介绍(1)1.1.2 优化算法(4)1.2 进化计算(6)1.2.1 进化计算框架(6)1.2.2 遗传算法(7)1.2.3 进化规划(10)1.2.4 进化策略(13)1.2.5 差分进化算法(15)1.3 群体智能(19)1.3.1 群体智能概述(19)1.3.2 蚁群优
6、化算法(21)1.3.3 粒子群优化算法(23)1.3.4 其他智能算法(23)参考文献(24)第 2 章 基本 PSO 算法(27)2.1 PSO 算法产生的背景(27)2.2 基本 PSO 算法更新过程(29)2.3 基本 PSO 算法设计原则及步骤(38)2.3.1 基本 PSO 算法设计原则(38)2.3.2 基本 PSO 算法步骤(39)2.4 基本 PSO 算法与其他算法的比较(40)2.5 基本 PSO 算法参数的选择(41)参考文献(46)第 3 章 改进的 PSO 算法(48)3.1 离散 PSO 算法(48)3.1.1 二进制 PSO 算法(48)3.1.2 基于离散空间的
7、 DPSO 算法(50)3.1.3 改进的 BPSO 算法(51)3.2 小生境 PSO 算法(58)3.3 混合 PSO 群算法(64)3.3.1 PSO-DV 算法(64)3.3.2 GA-PSO 算法(68)3.4 SA-PSO 算法(70)3.5 PSACO 算法(76)3.6 CPSO 算法(77)参考文献(79)第 4 章 PSO 算法在机械工程领域的应用(82)4.1 PSO 算法在机械故障诊断方面的应用(82)4.1.1 人工神经网络(82)4.1.2 BP 神经网络(83)4.1.3 人工神经网络与 PSO 算法(86)4.1.4 应用案例(87)4.2 PSO 算法在机械测
8、试中的应用(92)4.3 PSO 算法在机械工程其他领域的应用(95)参考文献(97)第 5 章 PSO 算法在其他工程领域的应用(99)5.1 函数优化(99)5.2 电力自动化领域的应用(99)5.3 化工过程控制(102)5.4 机器人领域的应用(104)5.5 计算机工程领域应用(106)5.6 通信工程领域应用(108)参考文献(111)附录 A 常用的基准测试函数(114)第 1 章 概论 1 第 1 章 概 论 优化理论与方法是一门应用性很强的学科,用于研究某些基于数学描述问题的最优解。美国工程院院士哈佛大学何毓琦(Yu-Chi Ho)教授指出“任何控制与决策问题本质均可以归结为
9、优化问题”。工程中很多的实际问题在进行数学建模后,都可以抽象为一个组合优化问题。通过求解该类问题,可以为决策者提供最佳选择或最佳信息,即针对给出的实际问题,从众多的方案中选出最佳方案。优化问题最早可以追溯到古希腊时代的极值问题,如谷物的堆砌问题、等周问题等。但由于缺乏合适的计算工具和系统的理论指导,一直没有得到应有的发展。优化成为一门独立的学科是在 20 世纪 40 年代末,一方面,需要为实际生产中涌现的复杂优化问题提供快速而实用的优化算法;另一方面,包括泛函分析在内的数学理论的发展也进一步奠定了优化方法的理论基础。而计算机的出现为各种优化算法的快速实现提供了更为便捷的计算工具,这些因素促使优
10、化逐渐成为一门应用广泛、生机勃勃的学科。1.1 优化技术 优化是人们在工程技术、科学研究和经济管理等诸多领域中经常遇到的问题,在计算机科学、人工智能、运筹学等领域中占有非常重要的地位,是指在合理的时间范围内为一个优化问题寻找最优可行解的过程,其中优化问题的可行解之间是可以进行量化比较的。1.1.1 优化技术介绍 具体来说,最优化问题就是在给定的约束条件下,寻找一组参数值,以使系统(或函数)的某些最优性度量得到满足,使系统(函数)的某些性能指标达到最大或最小。寻求问题最优可行解过程的第一步是要对问题进行描述和建立问题的数学模型,即用数学方程式和不等式来描述说明所求的最优化问题,其中包括目标函数和
11、约束条件,而识别目标、确定目标函数的数学表达形式尤为关键。1变量的确定 变量是最优化问题或系统中待确定的某些关键元素。变量数和约束条件的多少 粒子群优化算法及其工程应用 2 直接决定优化问题的规模大小,一般工程上最优设计问题属于中小规模的优化问题,而生产计划、调度问题中变量数可达几百个、几千个,属于大规模优化问题。2约束条件 目标函数求解时的某些限制称为约束,如变量取值范围的限定、可用资源的有限性以及所求问题的技术标准要求,此外还应满足物理系统的基本方程和性能方程。给出的约束条件越接近实际系统,则所求得的最优化问题的解也越接近于实际的最优解。约束条件可分为等式约束和不等式约束。3目标函数 最优
12、化是有一定的标准或评价方法的,而目标函数就是评价优化效果的标准的数学描述,用 f(x)表示。最优化常指最小化和最大化两类问题。由于函数的最大化等价于其负的最小化,所以最小化和最大化问题在实际求解过程中并没有本质上的区别,本书中如不作特殊说明,一般指最小化问题。最优化问题的一般形式为 min()s.t.()0()0Af xg xh xx=(1.1)其中x为决策变量,A为解的可行域,f(x)为目标函数,g(x)=0为等式约束,h(x)0为不等式约束。使目标函数f(x)取得最优值的解称为最优解,记为 x*a,s.t.f(x*)f(x)xa (1.2)对优化问题的分类有许多种,据不同的观点可以分为不同
13、的类型,通常有如下不同分类方法。(1)按是否有约束分类:取决于问题中有无约束,可分为有约束问题和无约束问题两种。(2)按目标函数及约束函数特性分类;可分为线性规划、非线性规划、几何规划、整数规划和二次规划问题等。从计算的观点来说,这种分类法很有用,因为通常研究出的很多种方法都是对某一类问题有效。(3)按计算复杂性分类:可分为P问题、NP问题、NP-Hard问题、NPC问题等。(4)按所包含变量确定性的性质分类:可分为确定性规划问题和随机规划问题。(5)按目标函数与约束函数的可分离性分类:可分为不可分离问题和可分离问题。第 1 章 概论 3 下面介绍几个在优化问题中经常用到的概念,以帮助更好地理
14、解后面的内容。1解之间的距离测度函数 设A,f是某优化问题的一个实例,定义Dist:AAR+为计算该优化问题中的两个解之间的距离测度函数。距离测度函数的定义与优化问题决策变量的表示有很大关系,与优化算法的性能也有非常大的关系。2解的邻域 设A,f是某优化问题的一个实例,Dist为解之间距离测度函数。A上的一个映射:eNxA()2AeNx 成为邻域映射,其中2A表示A的所有子集组成的集合。也就是对任意一个vA,集合()eN vA被称为v的邻域,:()eeNxN v称为v的一个邻居。对于任意给定R+,Ne的数学描述为::2|Dist(,)AeNAvxAx v (1.3)邻域的构造也依赖于问题决策变
15、量的表示,领域的结构在优化算法中起着非常重要的作用。有了邻域的定义以后,就可以定义局部、全局最优的概念了。3局部最优 设A,f是某优化问题的一个实例,Ne为邻域函数。对于确定的Ne,若Ne满足()f x(),()ef xxNx,则称Ne为在A上局部最优。4全局最优 设A,f是某优化问题的一个实例。若Ne满足()f x(),f xxA,则称Ne为在A上全局最优。5可接受解 设A,f是某优化问题的一个实例,Ne为在A上局部最优。对于给定R+,集合:|()()|CxAf xf x=被称为可接受解的集合。可接受解在优化问题中是非常重要的,因为在非常多的实例中,有限的时间内保证搜索到全局最优几乎是不可能
16、的。在这种情况下,优化的目的往往是搜索一个满足条件的可以接受解。粒子群优化算法及其工程应用 4 1.1.2 优化算法 在某种意义上,所谓优化算法其实就是一种搜索过程和规则,它是基于某种思想和机制,通过一定的途径和规则求得满足用户要求的解的过程。优化的算法非常多,大致分类如图 1.1 所示,基本可分为两大类:精确算法和启发式算法。其中精确算法可对解空间进行彻底搜寻,得到全局最优解,如线性规划、整数规划、动态规划等算法。但这类算法所适用的优化问题很有限,对 NP-Hard、NPC 等类问题则通常使用启发式算法,又称近似算法,例如,邻域搜索算法和基于系统动态演示的算法等。图 1.1 优化算法的组成及分类 Reeves 对启发式算法作如下定义1:启发式算法是一种技术,这种技术使得在可接受的计算费用内寻找好的解,但不一定能保证所得解的可行性和最优性,甚至在多数情况下,无法阐述所得解同最优解的近似程度。根据 Reeves 的定义可知,启发式算法在多数情况不能给出最坏解的偏差程度。20世纪60 至70 年代,由于人们对数学模型和最优解算法的重视,一些根据实际问题而提第 1 章 概论 5 出的启发式算