进化粒子群算法在TSP中的应用.docx
- 文档编号:29149891
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:58
- 大小:478.10KB
进化粒子群算法在TSP中的应用.docx
《进化粒子群算法在TSP中的应用.docx》由会员分享,可在线阅读,更多相关《进化粒子群算法在TSP中的应用.docx(58页珍藏版)》请在冰豆网上搜索。
进化粒子群算法在TSP中的应用
进化粒子群算法在TSP中的应用
摘要
粒子群优化算法是一种新型的进化计算技术,由Eberhart博士和Kennedy博士于1995年提出。
PSO算法已经被证明是一种有效的全局优化方法,并且广泛应用于函数优化,神经网络训练以及模糊系统控制等领域。
目前对粒子群优化算法的研究尚处于初期,它今后的发展还有许多工作需要不断充实提高。
因此以粒子群优化算法为主要研究对象,寻找求解实际问题的更加有效的改进算法是很有意义的。
旅行商问题(TravelingSalesmanProblem-TSP)是图论中一个经典的组合优化问题,是一个典型的NP难题,许多实际问题都可以转化为旅行商问题。
本文对一种新的进化粒子群算法在TSP中的应用研究。
本文首先分析了粒子群优化算法的原理,应用粒子群优化算法的步骤,以及算法中经验参数的设置,总结了目前PSO算法研究的成果,对比分析了目前对粒子群优化算法的多种改进。
其次,基于对粒子群优化算法原理的分析,实现了一种基于TSP的改进的粒子群优化算法:
求解TSP的混合粒子群算法,结合遗传算法、蚁群算法和模拟退火算法的思想来解决TSP问题。
最后,本文将改进的粒子群算法在burma14和oliver30这两个TSP实例中进行了仿真,得到了较为满意的结果。
关键词:
粒子群优化算法;旅行商问题;混合粒子群算法
Abstract
ParticleSwarmOptimization(PSO)isanewkindofevolutionarycomputationandwasoriginallyintroducedbyEberhartandKennedyin1995.Ithassinceproventobeapowerfulglobaloptimizationmethod.PSOhasbeenwidelyappliedinfunctionoptimization,neuralnetworktraining,andfuzzysystemcontrol,etc.However,asPSOisanewlyemergingoptimizationmethod,therearemanyresearchworkshouldbesubstantiated.SoitisverysignificanttoseekmorepowerfulimprovedalgorithmsbasedonPSOtosolveconcreteengineeringproblems.
TSP(TravelingSalesmanProblem-TSP)isaclassicgraphtheory,combinatorialoptimizationproblem,isatypicalNPproblem,manypracticalproblemscanberansformedintotravelingsalesmanproblem.Inthispaper,theevolutionofanewparticleswarmalgorithmintheapplicationofTSP.
Firstly,elementsofPSOisanalyzedinthisthesis.BasedontheanalysisoncharacteristicsofPSO,thealgorithmissummarized.Theexperiencedsettingsofparametersarealsogiven.Inthethesis,thepresentproductionsofPSOaresummarizedandcompared.
Secondly,basedontheprincipleofparticleswarmoptimizationanalysis,therealizationofaTSPbasedontheimprovedparticleswarmoptimizationalgorithm:
SolvingtheTSPhybridparticleswarmalgorithm,combinedwithgeneticalgorithm,antcolonyalgorithmandsimulatedannealingalgorithmtosolvetheTravelingSalesmanProblem.
Finally,thenewParticleSwarmOptimizationisusedtoemulateintwoofTSPexample:
buram14andoliver30andobtainedsatisfactoryresults.
Keywords:
ParticleSwarmOptimizationTravelingSalesmanProblemHybridParticleSwarmOptimizationAlgorithm
第1章绪论
1.1引言
最优化问题就是从所有可能的方案中选择出最合理的、达到最优目标的方案,即最优方案问题,搜索最优方案的方法就是最优化方法。
在国民经济各部门和科学技术的各个领域中普遍存在着优化问题,最优化方法广泛应用十工业、农业、国防、工程、交通、金融、化工、能源、通信等许多领域,如在资源利用、结构设计、调度管理、后勤供应等许多领域中产生了巨大的经济效益和社会效益。
在结构力学、生命科学、材料科学、环境科学、控制论等其他科学研究领域也有广泛应用。
国内外的应用实践表明,在同样条件下,优化方法对系统效率的提高、能耗的降低、资源的合理利用及经济效益的提高等均有显著的效果,而且随着处理对象规模的增大,这种效果也更加显著。
这对国民经济的各个领域来说,应用前景是巨大的。
追求最优目标一直是人类的理想,长期以来,人们对最优化问题进行不断的探讨和研究。
最优化方法就是从众多可能的解决方案中选择最佳者,以达到最优目标的科学。
早在17世纪,英国伟大科学家Newton开创了微积分时代,已经提出极值问题;后来出现Lagrangian乘数法,1847年法国数学家Cancky研究了函数沿什么方向下降最快的问题;1949年前苏联数学家KaHTOPOBNq提出解决下料问题和运输问题这两种线性规划问题的求解方法。
但是由于受到计算手段等历史条件的限制,在20世纪40年代以前,最优化理论还不能形成一门学科。
自20世纪40年代以来,由于生产和科学研究突飞猛进地发展,最优化理论和方法日益受到人们的重视,特别是计算机日益广泛应用,使最优化问题的研究不仅成为一种迫切的需要,而且有了求解的有力工具,因此最优化理论和算法迅速发展起来,形成了一门新的应用数学分支学科,已经渗透到生产、管理、商业、军事、决策等各领域。
至今已出现线性规划、整数规划、非线性规划、几何规划、动态规划、随机规划、网络流等许多分支,最优化理论和算法在实际应用中正在发挥着越来越重要的作用。
随着生产、经济、技术的发展,工程技术、管理人才在实际工作中常常会面临工程设计中这样的一类问题:
怎样选取参数使得设计既满足要求又能降低成本;在资源分配中,怎样的分配方案既能满足各方面的基本要求,又能获得好的经济效益;在生产计划安排中,选择怎样的计划方案才能提高产值和利润;在原料配比问题中,怎样确定各种成分的比例才能提高质量、降低成本;在城建规划中,怎样安排工厂、机关、学校、商店、医院、住宅和其他单位的合理布局,才能方便群众,有利于城市各行各业的发展。
这一类问题的共同点是选出最合理、达到最优目标的方案,这就是工程优化问题。
许多工程优化问题性质十分复杂,常常需要在复杂而庞大的搜索空间中寻找最优解或者准最优解。
传统的优化算法在面对这些大型问题时,需要遍历整个搜索空间,从而会产生搜索的组合爆炸,无法在多项式时间内完成搜索,无论是在计算速度、收敛性、初值敏感性等方面都远不能满足要求,因此很难用于工程优化问题的求解。
20世纪60年代以来,生物学中的进化论被广泛地应用于工程技术、人工智能等领域中,形成了一类新的搜索算法--进化算法。
进化算法通常包括:
遗传算法(GeneticAlgorithm)、遗传编程(GeneticProgramming)、进化策略(EvolutionStrategies)以及进化规划(EvolutionaryProgramming)。
虽然这几种方法在实现手段上各有特点、互不相同,但它们所遵循的进化原则是一致的。
它们主要是模仿生物学中进化和遗传过程,遵循达尔文的“适者生存、优胜劣汰”的竞争原则,从一组随机生成的初始可行解群体出发,借助复制、重组以及突变等遗传操作,在搜索过程中自动获取并积累积空间的有关知识,逐步向问题的最优解或者准最优解逼近。
因此从实质上来说,进化算法是一类具有自适应调节功能的搜索寻优技术,目前己经被广泛地应用到组合优化问题、机器学习、人工生命、自动控制以及动态系统的故障诊断等领域中。
在生物学领域中,进一步的研究发现,自然界中还存在着多个个体或是多个物种通过相互合作而共同进化的自然规律,也就是说,在个体之间不仅仅存在着相互竞争的关系,在一些不同物种之间还存在着相互合作的关系。
共同进化算法正是体现了以上思想,它不仅是对达尔文的“适者生存、优胜劣汰”自然规律的模拟,同时也体现了自然界中多个物种通过相互合作而共同进化的自然规律。
共同进化算法采用子群体表示部分解的策略,使完全解分布于不同的子群体中,各个子群体独立进化,却又通过适应度函数的关联而相互合作、共同进化,该算法能在一定程度上避免早熟收敛情况的出现。
目前共同进化算法己经成为进化算法的一个研究热点,相关的理论研究以及应用研究已经全面展开。
粒子群优化算法(ParticleSwarmOptimization)是一种新型的进化计算技术,由Eberhart和Kennedy于1995年提出。
PSO的概念起源于对鸟群觅食的行为研究,最先是一个用来图形化仿真鸟群飞行(Flocking)的算法,可模拟出鸟群寻找谷场(Cornfield)的过程。
在意识到其可用于优化函数后,逐步将它发展成为一种通用的优化算法,并在优化神经元网络结构上取得了很好的结果。
由于PSO算法概念简单,实现容易,同时又有深刻的智能背景,既适合科学研究,又特别适合工程应用。
因此PSO的提出引起学术界的广泛重视。
目前,PSO已经成为一个研究热点,被广泛应用于函数优化、神经网络训练、模糊系统控制和决策支持等领域。
1.2研究背景
1.2.1进化算法简介
从远古时代单细胞开始,历经环境变迁的磨难,生命经历从低级到高级,从简单到复杂的演化历程。
生命不断地繁衍生息,产生出具有思维和智能的高级生命体。
人类得到生命的最佳结构与形式,它不仅可以被动地适应环境,更重要的是它能够通过学习,模仿与创造,不断提高自己适应环境的能力。
飞机、轮船、雷达、计算机的问世,都是人类模拟自然的极好例证。
20世纪后半叶以来,通过计算机模拟各种生命现象的人工生命已悄然兴起,人类正在将其模拟范围延伸到人类自身:
神经网络是对大脑信息处理方式的模拟,模糊系统是对大脑思维机制的模拟,遗传算法是对生物进化机制的模拟,免疫算法是对免疫机理的模拟,它们共同组成二十一世纪智能计算的关键技术。
进化算法是借鉴生物自然选择和遗传机制的随机搜索算法。
进化算法之所以能够增强解决问题的能力,是因为自然演化过程本质就是一个学习与优化的过程。
该算法的核心思想是:
生物进化过程(从简单到复杂,从低级到高级)本身是一个自然的,并行发生的,稳健的优化过程,其目的就是要适应环境。
生物种群通过“优胜劣汰”及遗传变异来达到进化,生物的进化通过繁殖,变异,竞争和选择实现的。
进化算法通过模拟“优胜劣汰,适者生存”的规律,通过模拟孟德尔的遗传变异理论在迭代过程中保持已有的结构,同时寻找更好的结构。
作为随机优化与搜索算法,进化算法具有如下特点:
进化算法不是盲目式的乱搜索,也不是穷举式的全面搜索,它根据个体生存环境即目标函数来进行有指导的搜索。
进化算法只需利用目标的取值信息而不需要梯度、连续性、凸性等信息,因而适用于大规模、高度非线性的不连续、多峰函数的优化以及无解析表达式的目标函数优化,具有很强的通用性;算法的操作对象是一组个体,而且非单个个体,具有多条搜索轨迹,因而具有隐并行性。
基于进化算法的进化模型是研究人工生命的重要理论基础,同时又为人工生命的研究和实现提供一个有效的工具。
如进化算法用来发现细胞自动机规则来完成一定的任务,基于遗传信息处理模型的人工生命的合成等。
此外,进化算法在并行分布处理、复杂系统分析和建模、自适应控制、自动程序设计、模式识别和图像处理、演化硬件等领域都有一定的应用。
由于进化算法是对自然进化的一个粗糙简化,其完整的数学基础有待深入研究,假以时日,随着不断地完善,其应用会更加广泛。
1.2.2群智能简介
一个集群通常定义为一群自治体的集合,他们通过相互间直接的或者间接的通讯,从而通过全体的活动来解决一些分布式的难题。
在这里,自治体是指在一个环境中具备自身活动能力的一个实体,其自身力求简单,通常不必具有高级智能,但是,他们的集群的活动所表现出来的则是一种高级智能才能达到的活动,我们称这种活动为群智能(SwarmIntelligence)。
群智能是一种生物系统、社会系统,更准确的说,是由简单个体组成的群落与环境以及个体之间的互动行为。
这些模拟系统利用局部信息从而产生不可预测的群体行为。
长期以来,以群居生活的昆虫,如蚂蚁、蜜蜂、黄蜂、白蚁等,引起了包括自然学家和艺术家在内的人们的兴趣。
昆虫群体行为的奇妙之处在于:
昆虫的个体都很简单,但当它们一起协同工作时却能表现出很复杂的行为,如蜜蜂能够建造完美的蜂窝,蚂蚁觅食能够找到最短的路径,简单的昆虫可建造复杂形状的巢穴等。
群居昆虫中的每一个个体看上去都有自身的行动方式,并且整个种群在整体上呈现出高度的有组织性。
显然,在所有个体活动的完美集成过程中不需要任何的指导。
事实上,研究社会性昆虫的科学家发现在群体中的协作是高度自组织的,它们的协调行为是通过个体之间的交互行为直接实现,或者个体与环境的交互行为间接实现的。
虽然这些交互行为非常简单,但是他们聚在一起却能解决一些难题。
这种潜在方式的群智能已经逐渐为人们所认识,并得到应用。
群智能的特点是:
(1)控制是分布的,不存在中心控制。
(2)每个个体只能感知局部的信息,不能直接拥有全局信息。
(3)个体可改变环境(个体间通过改变环境,感知环境变化来彼此间接通讯的方式被称为“Stigmergy”)。
(4)自组织,即群体的复杂行为是通过简单个体的交互过程中突现出来的智能。
在群智能领域主要有两种基本群智能的算法,蚁群算法(AntColonyOptimization)和粒子群优化算法(ParticleSwarmOptimization)。
前者是对蚂蚁群落食物采集过程的模拟,在蚁群算法中,利用了如下自然现象:
一只蚂蚁仅仅追随其他蚂蚁留下的尾迹,最终会在无数通往食物源的路径中找到最短的一条。
蚁群算法已经成功运用在很多离散优化问题上。
该算法也存在一些缺点,如该算法需要较长的搜索时间;容易出现停滞现象,即搜索进行到一定程度后,所有个体所发现的解完全一致,不能对解的空间进一步进行搜索,不利于发现更好的解。
粒子群优化算法(PSO)也是起源于对简单社会系统的模拟,最初设想是模拟鸟群觅食的过程,但后来发现PSO是一种很好的优化工具。
1.2.3粒子群优化算法的概述
粒子群优化算法(PSO)的基本概念源于对鸟群觅食行为的研究。
设想这样一个场景:
一群鸟在随机搜寻食物。
在这个区域里只有一块食物,所有的鸟都不知道食物在哪里,但是他们知道当前的位置距离食物还有多远。
那么找到食物的最优策略是什么呢?
最简单有效的就是搜寻目前距离食物最近的鸟的周围区域。
PSO从这种模型中得到启示并用于解决优化问题。
在粒子群优化算法中,每个优化问题的潜在解都是搜索空间中的一只“鸟”,称之为“粒子”。
所有的粒子都有一个由被优化的函数决定的适应值(FitnessValue),每个粒子还有一个速度决定他们飞翔的方向和距离,然后粒子们就追随当前的最优粒子在空间中搜索。
粒子群优化算法初始化为一群随机粒子(随机解),然后通过迭代找到最优解。
在每一次迭代中,粒子通过跟踪两个“极值”来更新自己。
第一个极值就是粒子本身所找到的最优解,这个解被称为个体极值。
另一个极值是整个种群目前找到的最优解,这个极值是全局极值。
另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。
Kennedy和Eberhart最早提出的PSO算法采用下列公式对粒子操作:
(1-1)
式中
表示第i个粒子在第d维上的速度;
为惯性权重,控制粒子的每一代速度更新有多少以前的速度保留下来;
和
为调节
和
相对重要性的参数;
为随机数生成函数。
这样可以得到粒子移动的下一个位置:
(1-2)
为粒子i曾达到的最优位置,
为整个粒子群曾达到的最优位置。
由此可见PSO的基本思想就是每个个体充分利用群体与自身的智能,不断地调整学习,最终得到满意解。
算法的迭代终止条件根据具体问题一般选为最大迭代次数或(和)粒子群迄今为止搜索到的最优位置满足预定最小适应阀值。
粒子群优化算法并没有能给出严格的数学证明,但在实际应用中被证明是有效的。
粒子群优化算法初期,其解群随进化代数而言表现了更强的随机性,正是由于其产生了下一代解群体的较大随机性,以及每代所有解的“信息”的共享性和各个解的“自我素质”的提高,比如解群体随进化代数的变化过程中存在“掉队”个体的“归队”现象,使得每代种群中的解具有“自我”学习和向“他人”学习提高的双重优点,因此其下代解具有针对性的从“先辈”那里继承的更多的信息。
在这种前提下,种群很快就达到了收敛状态,从而能在较少的代数内找到最优解。
1.2.4旅行商问题
最优化问题自然而然的被分为两类:
一类是连续变量的问题,另一类是离散变量的问题,对于后者,我们称它为组合优化。
在组合优化问题里,是从一个无限集或者可数无限集里寻找一个对象,典型的是一个整数,一个集合,一个排列或一个图。
这与连续变量问题求一组实数或一个函数有着很大不同,因而求解它们的方法也很大相同。
从某种意义上讲,组合优化问题的研究是从它与连续优化问题之间的分界线上入手的。
旅行商问题(TravelingSalesmanProblem-TSP)是运筹学、图论和组合优化中的NP难题,旅行商问题描述如下:
给定n个城市及两两城市之间的距离,求一条经过各城市一次且仅一次的最短路线。
其图论描述为:
给定图G=(V,A),其中V为顶点集,A为各顶点相互连接组成的弧集,已知各顶点间连接距离,要求确定一条长度最短的Hamilton回路,即遍历所有顶点一次且仅一次的最短回路。
设
为城市i与j之间的距离,即弧(i,j)的长度。
引入决策变量:
(1-3)
则TSP的目标函数为
。
(1-4)
TSP的描述非常简单,但求解最优化解是很困难的。
对于N个城市的TSP,存在着
条可能的路径。
随着城市数目N的增长,可能路径的数目以N的指数倍增加,如果使用穷举法搜索,需要考虑所有的可能情况,并两两比较,找出最优解,那么可搜索的路径及其距离之和的计算量将正比于
算法的复杂度呈指数增长,产生所谓的“组合爆炸”,这即使是当今世界上运算最快的计算机也感到无能为力。
由于对TSP及与之具有类似复杂性的一些其它最优化问题现在还没有有效的算法,人们把这类问题称为“NP完全问题”。
因为所有的NP完全问题在数学上都等价于TSP,因此研究TSP具有很重要的意义。
1.3粒子群优化算法的国内外研究现状
粒子群优化算法概念简单,实现容易,同时又有深刻的智能背景,既适合科学研究,又特别适合工程应用。
算法一提出就吸引了广泛的注意,不断涌现了各种关于PSO算法应用研究的成果,有力推动了PSO研究。
目前,其研究现状大致分为两个方向:
算法的改进,算法的应用。
由于粒子群算法提出的时间不长,算法缺乏深刻的的理论分析,数学基础相对薄弱,且存在许多不完善和未涉及到的问题。
因此,迄今已经出现了很多对粒子群优化算法的改进方法。
例如:
混合PSO(HPSO)算法、杂交PSO算法、协同PSO算法、基于模拟退火的PSO算法、自适应变异的PSO算法、离散PS0、自适应PSO、耗散的PSO,GA-PSO等多种粒子群优化算法。
如何利用有效的数学工具对算法的收敛性,收敛速度的估计,计算的复杂性,以及预防陷入局部最优和参数设置影响等进行分析将是今后的研究热点之一。
由于PSO算法概念简单,易于实现,因而在短期内得到很大发展,迅速得到了国际演化计算研究领域的认可,并在很多领域得到应用:
PSO的第一个应用是神经网络训练。
Kennedy和Eberhart的报告说明PSO成功用于正确区分XOR问题,包括13维搜索空间的函数优化问题。
Salerno也应用PSO到训练神经网络学习XOR问题,比梯度递减算法更好。
另一个神经网络训练的例子中Eberhart和Hu用PSO训练神经网络以正确区分病人的颤抖行为是普通颤动或是患有帕金森氏症。
他们在PSO算法中使惯性权值在2000代中从0.9到0.4线性递减,获得很好的效果。
PSO算法也用来优化带权神经网络的连接结构。
Zhang和Shao的PSONN算法使用PSO算法优化神经网络,成功地用来评估喷气机燃料的质量。
乘法单元神经网络是带误差函数的神经网络,很难训练。
多种基于梯度的优化算法在搜索空间陷入多个局部最小值。
Engelbrecht和Ismail研究了不同优化算法训练乘法单元神经网络的能力,发现在乘法单元神经网络的训练问题上,PSO比其它随机搜索算法还要好,如GA和LeapFrog算法。
Eberhart等人在文献[7]描述了PSO的一些其他应用。
例如用训练神经网络来评估电池充电的状态;PSO用来优化用于促进微生物的生长的化学成分配方,找到的解比之前使用其它优化算法发现的各种解有明显的改进。
PSO的优势之一是能更加有效地对搜索空间内的大范围区域进行搜索,这使得PSO能够在搜索空间里发现更好的解,并且该解明显区别于使用其它已知算法发现的解。
另一个与神经网络训练有关的应用是Fukuyama和Yoshida发表的论文。
他们表明PSO优化连续和离散变量都非常有效。
在速度更新前,通过简单离散值来调整PSO的更新公式,粒子的位置也是如此。
只要适当调整,这些离散变量与连续变量可以自由组合,应用到更新公式。
他们使用的是惯性权值线性递减的PSO,结果表明比原来使用的RTS算法效率更高。
Fukuyama等人把Angeline的混合PSO运用到相同问题,似乎混合PSO算法更有效。
进一步的研究还发现相同参数设置的PSO应用在不同电力系统问题上获得了高质量的解。
标准粒子群算法主要适用于连续空间函数的优化问题,如何将算法应用于离散空间的优化问题,特别是非数值优化问题,将是粒子群算法的一个重要研究方向。
此外,充分利用其他进化算法以改善微粒群算法存在的不足,也是值得研究的问题。
总之,PSO算法的应用十分广泛,有着比较好的发展前景。
目前PSO的研究尚处于初期,还有许多问题值得做进一步的研究。
1、PSO算法的理论研究还很缺乏,目前还没有粒子群理论的数学证明。
2、由于实际问题的多样性和复杂性,尽管目前已经有了多种不同版本的PSO改进算法但这些PSO算法不具有通用性,或者参数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进化 粒子 算法 TSP 中的 应用