1、中南民族大学硕士学位论文遗传算法在TSP问题上的应用姓名:彭丹平申请学位级别:硕士专业:计算机应用技术指导教师:王江晴20060520中南民族大学硕士学位论文 I 摘 要 旅行商问题(Traveling Salesman Problem,TSP)是一个经典的组合优化问题,是多种复杂问题的一种简化形式。TSP问题的搜索空间随着城市数的增加而增大,在庞大的空间中寻找最优解,往往需要大量的求解时间,因此需寻求一种求解时间短且精度较高的算法来解决此问题。 遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法,其简单通用、鲁棒性强、适于并行处理等,借助遗传算法解决TSP问
2、题是一个自然的想法。 本文针对遗传算法求解TSP问题进行了研究。首先分析了遗传算法的基本原理,遗传算法的研究及应用,接着对TSP问题的应用价值及其研究现状作了相应的分析,并结合遗传算法及TSP问题的特点,在对基本遗传算法改进的基础上,设计了一个新的算法,并通过实验验证了算法的有效性,本文主要研究工作如下: 1针对遗传算法求解TSP问题,提出了基于适应度对种群进行分级,采用小种群并行育种的方式。让适应度较高的个体用于实现最优解的开采以保证算法的收敛性;适应度较低的个体产生较多的个体对搜索空间进行探索,以保证种群的多样性,避免陷入局部最优解。而且在每级内使用了精英保留策略。 2基于遗传算法的交叉策
3、略,使用混合交叉算子,即PMX和一种启发式交叉算子,既可保留父代中相同的模式,又可以较大概率生成优于父体的个体。 3改进了变异算子,提出了对种群使用混合变异算子,即2-opt和一种贪婪倒位变异算子。 4将本文算法进行了数值实验和相关比较,从而验证了本文算法的可行性。 关键词:遗传算法;TSP问题;交叉算子;变异算子 遗传算法在TSP问题上的应用 II Abstract Traveling salesman problem (TSP) is a classical combinatorial optimization problem. It is a predigested form of va
4、rious complex problems. Genetic algorithm is a self-adapted probability search algorithm of the whole situation, which has developed simulating the genetic and evolutionary process of the natural lives in the environment. It is simple, general and robust, fit for parallel process etc. This paper doe
5、s some research towards the genetic algorithm for solving TSP problem. Firstly analyzes the basic principle of genetic algorithm, the research and application of genetic algorithm; then analyzes the application value and current research of TSP problem accordingly. Afterwards combining the character
6、istics of genetic algorithm and the TSP problem designs a new algorithm based on simple algorithm. Moreover it validated the effect of the algorithm through the experiment. In the paper, the main work is as follows: 1. Towards the genetic algorithm for solving TSP problem, proposed to classify the p
7、opulation according to the individual fitness, adopting the mode of subgroup for parallel breeding. Let the individuals with higher fitness to exploit the most optimal solution to ensure the convergence of algorithm; Let the individuals with lower fitness to explore new solution space to ensure the
8、diversity of population. The algorithm also adopts the elitist selection strategy. 2. Based on the crossover strategy of genetic algorithm, designs a combined crossover operator, that is PMX and heuristic crossover operator, which can maintain the good mode of the parent and can produce better child
9、ren individuals in big probability. 3. Improves the mutation operator, put forward a combined mutation operator, that is 2-opt and greedy inverse mutation operator. 4. Put forward the experiment and make correlate contrast, thereby verifies its feasibility. Key words: Genetic algorithm; TSP; Crossov
10、er operator; Mutation operator中南民族大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权中南民族大学可以将本学位论文的
11、全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 本学位论文属于 1、保密,在_年解密后适用本授权书。 2、不保密。 (请在以上相应方框内打“”) 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 中南民族大学硕士学位论文 -1- 第1章 绪 论 1.1 论文选题理由 旅行商问题1(Traveling Salesman Problem, 简记 TSP)可以描述为:一旅行商要到若干城市推销货物,从某一城市出发,经过其余各城市一次且仅一次,然后回到出发点,求其最短行程。 TSP问题是一个典型的组合优化问题,是许多领域内出现的多种复杂问题的
12、集中概括和简化形式,有效地解决这个问题被归为 21 世纪的科学难题。它在可计算理论上具有重要的理论意义,同时也具有重要的实际应用价值。该问题在很多领域中有着广泛的应用,如网络通讯、电气布线、管道铺设、货物运输、加工调度、印制电路板的钻孔路线方案、连锁店的货物配送路线等,经过简化处理后,均可建模为旅行商问题2。因此,快速、有效地解决TSP 问题有着极高的实际应用价值。 1.2 立论依据 TSP 问题是组合优化领域中的一个典型问题,涉及到求多变量函数的最小值问题。虽然它陈述起来很简单,但求解却很困难,它一直是运筹学中最富挑战性的问题之一,并且已经被证明是 NP难题3,4。对于具有 n 个城市的 T
13、SP 问题,其可能的路径数目为(n-1)!/2,要找到求解此问题的有效方法有一定难度。在理论上枚举法可以解决这一问题,但是当 n 较大时,解题的时间消耗会使枚举法显得没有任何实际价值5。因此寻求一种求解时间短,能满足实际问题精度要求的解,成为解决该问题的主要途径。 作为组合优化问题中的一个经典问题,TSP 问题吸引了广大学者对它进行研究。其大体的计算方法,主要分为三大类:一类是传统的精确算法(完全算法);一类是传统的近似算法(不完全算法);还有一类新近出现的智能搜索方法。精确算法能保证完全搜索问题的整个解空间,从而找到最优巡回,但需要消耗(n!)级的运算时间;有些精确算法虽然运用一些精巧的技术
14、来减少搜索空间,但本质上还是进行全局搜索,并没有降低运算时间复杂度。近似算法和一些智能搜索方法不能保证搜索问题的全部解空间,所以也不能保证能够找到最优解,甚至在某些实例上连解都找不到。但它们与精确算法相比却具有运算时间上的优势,即它们遗传算法在TSP问题上的应用 2 的运算时间复杂度都只是多项式的,并不随着输入规模的扩大产生“组合爆炸”。后两种算法因采用的是启发式策略来指导搜索,普遍比精确算法计算速度要快。 由Holland提出的遗传算法6是借鉴生物界的自然选择和自然遗传机制的随机化智能搜索方法,一种全局优化搜索算法。遗传算法以其简单通用、鲁棒性强、适于并行处理以及应用范围广等特性,非常适合于
15、求解TSP问题。当今许多研究者针对TSP问题对遗传算法作了相应的改进使算法更加有效。Rudolhp G7提出了用精英选择策略即保持种群中最好的个体不丢失,以保证算法的收敛性;Srinivas M8和吴志远9等提出对算法的参数Pc,Pm,种群规模N进行自适应调整以维护种群的多样性,防止算法的过早收敛;马均水10等提出大变异策略即当某代中多数个体集中在一起时,以一个远大于通常的变异概率的概率执行一次变异操作,使之独立产生许多新个体,使整个种群脱离早熟。以上方法只解决了算法的“早熟”问题,却没有很好地考虑算法的收敛速度问题。马欣11等提出了单亲进化遗传算法(PEGA)利用父体所提供的有效边的信息,使
16、用保留最小边的方法进行个体的进化,来提高算法的收敛速度;Sushil Louis12提出的贪心对换变异(greedy_swaption),其基本思想是从一个染色体中随机的选择两个城市(即两个码值),然后交换它们,得到新的染色体,以旅程长度为依据比较交换后的染色体与原来的染色体的大小,保留旅程长度值小的染色休;谢胜利等13提出的倒位变异算子加快了算法的收敛速度。这些方法提高了算法收敛的速度,但还是没有很好地解决算法的种群的多样性问题。 1.3 本文所做工作 本文首先分析了遗传算法的基本原理以及它的研究与应用,接着对TSP问题的应用价值及其研究现状作了分析,然后结合遗传算法及TSP问题的特点,在对
17、传统的算法进行改进的基础上,设计了一个比较好的算法来提高求解TSP问题的速度和解的质量,并通过实验验证了算法的有效性。本文共分六章,具体安排如下: 第1章 绪论。介绍论文选题理由、遗传算法解TSP问题的研究现状及本文的主要工作。 第2章 遗传算法简介。介绍了遗传算法的基本原理及其发展与应用,分析了遗传算法的特点和遗传算法的理论基础,讨论了基本遗传算法及遗传算法的关键技术。 第3章 旅行商问题。分析了TSP问题的特点、应用价值和对其问题研究现状,总结了求解TSP问题的几种方法及特点,并重点引入遗传算法作为一种随机搜索中南民族大学硕士学位论文 -3- 方法在TSP问题上的应用,同时提出本文研究工作
18、的重点。 第4章 遗传算法的改进及TSP问题求解。分析了遗传算法求解TSP问题的基本实现方法,并提出了基于基本遗传算法的改进遗传算法,最后给出了改进后的算法的设计方法。 第5章 数值计算结果分析。设计了两个具体实验,通过实验的数值计算结果分析,算法能在一定程度上达到较好的效果。 第6章 结论与展望。总结了全文的主要工作,讨论了下一步研究的有关内容。 遗传算法在TSP问题上的应用 4 第2章 遗传算法简介 遗传算法是模拟自然界生物进化过程的一种随机化搜索算法,其主要原理是对个体基因结构进行选择、交叉、变异等遗传操作,使个体重新组合,不断进化,产生更优秀的个体。遗传算法的特点是不受搜索空间的限制,
19、且从种群开始,利用适应度信息及概率转移策略来指导搜索。本章首先对遗传算法的原理、发展和应用及其主要特点作了简略的概述,并由此引入遗传算法的相关理论基础,然后介绍基本遗传算法,最后讨论了遗传算法的关键技术。 2.1 遗传算法概述 2.1.1 遗传算法与生物进化 根据达尔文的进化理论,生命从远古的单细胞开始,在环境的作用下,经历着从低级到高级,由简单到复杂的演化历程。遗传算法是借鉴生物进化中的生物自然选择和遗传机制的随机搜索算法。遗传算法中所用到的进化理论的基本特性为: 1生物进化是一个对于染色体、而不是对生物体本身进行操作的过程。 2自然选择的过程联系着染色体和它们的各基因串的性能,各个子串的性
20、能越好的染色体越容易生存下来。 3有性生殖的过程保证其后代的基因混合、基因重组和基因突变,以产生适应力更强的后代。 4生物进化无记忆,进化过程中的每一代只与其父代中的生物体所携带的染色体的信息和编码结构有关,而与父代之前的更早的祖先代无关。 遗传算法是一种概率搜索算法,其核心思想源于这样的基本认识:从简单到复杂,从低级到高级的生物进化过程本身是一个自然、并行发生的、稳健的优化过程。生物之所以进化是由于生物个体有其内部结构即基因结构,生物体经过选择、变异,产生大量新的结构,由于生存的压力,生物通过优胜劣汰选择能适应环境的个体,使其好的基因型个体得以保存,再经过选择、交叉、变异,使优秀的个体重新组
21、合,产生更优的个体,并通过竞争选择得以保存,这样生物就得以进化。遗传算法是一种随机算法,但它不是简单的随机走动,它可以有效地利用已有的信息来搜寻那些有希望改善质量的个体。类似于生物进化,遗传算法通过中南民族大学硕士学位论文 -5- 作用于染色体上的基因,寻找好的染色体来求解问题。与生物界相似,遗传算法对求解问题的本身一无所知,它所需要的仅是对算法所产生的每个染色体进行评价,并基于适应度来选择染色体,使适应性好的染色体比适应性差的染色体有更多的被选择机会。 遗传算法的主要特点是采取种群搜索策略和在种群中个体之间进行信息交换,利用简单的编码技术和繁殖机制来表现复杂的现象,不受搜索空间的限制性假设的
22、约束,不要求诸如连续性、导数存在和单峰等假设。遗传算法目前已经在优化、机器学习和并行处理等领域得到了越来越广泛的应用。 2.1.2 遗传算法的发展 60年代,Holland教授认识到生物的遗传和生物进化现象与人工自适应系统的相似关系,提出在研究和设计人工自适应系统时,可以借鉴生物的遗传机制,以种群的方式进行自适应搜索。1967年,Holland的学生Bagley在他的博士论文中首次提出了“遗传算法”一词,并提出了复制、交叉、变异、显性、倒位等遗传算子。 70年代初,Holland提出了遗传算法的基本定理模式定理(Schema Theorem ),奠定了遗传算法的理论基础 。1975年,Holl
23、and出版了第一部系统论述遗传算法和人工自适应系统的专著自然系统和人工系统的适配( Adaptation in Natural and Artificial Systems )。同年,De Jong在其论文遗传自适应系统的行为分析中结合模式定理进行了大量纯数值优化试验,将选择、交叉和变异操作进一步完善和系统化,同时又提出了诸如代沟( generation gap )等新的遗传操作概念,建立了著名的De Jong五函数测试平台,定义了评价遗传算法性能的在线指标和离线指标。 80年代,Holland实现了第一个基于遗传算法的机器学习系统分类器系统(Classifier System ),开创了基于
24、遗传算法的机器学习的新局面,为分类器的构造提出了一个完整的框架。1989年,Goldberg出版了专著搜索、优化和机器学习中的遗传算法(Genetic Algorithms in Search,Optimization and Machine Learning),系统总结了遗传算法的主要研究成果,全面完整地论述了遗传算法的基本原理和应用。 1992年,Koza将遗传算法应用于计算机程序的优化设计即自动生成,提出了遗传程序设计(Genetic Programming,简称GP)的概念。 如今,无论是对遗传算法的理论研究还是应用研究都分外活跃。 遗传算法在TSP问题上的应用 6 2.1.3 遗传算
25、法的研究方向及应用 遗传算法为求解复杂系统优化问题提供了一个通用的框架,它不依赖于问题的具体领域,因此广泛应用于很多领域之中。其主要应用领域有: 1组合优化:组合优化是遗传算法最基本最重要的研究和应用领域,复杂的组合优化问题通常带有大量的局部极值,目标函数往往具有不可微、不连续、多维多目标、有约束、高度非线性等特征。因此,精确地求解组合优化问题的全局最优解是不易做到的。遗传算法作为随机化搜索方法已在组合优化中得到了相当广泛的应用,并在解决某些典型的优化问题显示出良好的效果,特别是对有约束、多目标的优化,遗传算法己经发展成演化计算中的一个分支。 2机器学习:遗传算法从一开始就与机器学习有着密切的
26、联系,Holland首先提出的分类器系统,为遗传算法和机器学习的结合打开了新的一页。遗传机器学习在煤气管道的成功应用,被认为是遗传算法发展的一个里程碑。基于遗传算法的机器学习方法已越来越多地应用到实际的系统中。 3人工生命:近几年来,通过计算机模拟各种生命现象的人工生命已悄然兴起。人工生命的重要研究内容之一就是遗传、进化现象,基于遗传算法的进化模型是研究人工生命的重要理论基础,同时又为人工生命的研究和实现提供一个有效的工具。如遗传算法用来发现细胞自动机规则来完成一定的任务,基于遗传信息处理模型的人工生命的合成等。此外,遗传算法在并行分布处理、复杂系统分析和建模、自适应控制、自动程序设计、模式识
27、别和图像处理、演化硬件等领域都有一定的应用。由于遗传算法是对生物进化的一个粗略简化,其完整的数学基础有待深入研究,借以时日,随着它不断地完善其应用会更加广泛14-16。 2.1.4 遗传算法的特点 概括而言,计算领域内搜索算法主要有解析法、爬山法、穷举法和随机搜索法。解析法是常用的搜索方之一,它通常是通过求解使目标函数梯度为 0 的一组非线形方程来进行搜索的。一般而言,若目标函数连续可微,解的空间方程比较简单,解析法还是可以用的。但是,若方程的变量有几十或几百个时,它就无能为力了。 爬山法也是常用的搜索方法,它和解析法一样都是属于寻找局部最优解的方法。对于爬山法而言,只有在更好的解位于当前解附
28、近的前提下,才能继续向最优解搜索。显然这种方法对于具有单峰分布性质的解空间才能进行行之有效的搜中南民族大学硕士学位论文 -7- 索,并得到最优解,而对于多峰空间,爬山法(包括解析法)连局部最优解都很难得到4。 另一种典型的搜索方法是穷举法。该方法简单易行,即在一个连续有限搜索空间或离散无限搜索空间中,计算空间中每个点的目标函数值,且每次计算一个。显然,这种方法效率太低而鲁棒性不强。许多实际问题所对应的搜索空间都很大,不允许一点一点地慢慢求解17。 随机搜索方法比起上述的搜索方法有所改进,是一种常用的方法,但它的搜 索效率依然不高。一般而言,只有解在搜索空间中形成紧致分布时,它的搜索才 有效。但
29、这一条件在实际应用中难于满足。 与这些搜索方法相比较,遗传算法的主要特点有: 1遗传算法是以参变量的某种编码作为运算对象,而不是直接作用在参变量集上。传统的优化算法往往直接利用参变量的实际值本身进行优化计算,而遗传算法是以参变量的某种形式的编码为运算对象。这种参变量的编码方式使得在优化计算过程中可以借鉴生物学中染色体和基因的概念,可以模拟自然界中生物的遗传和进化等机理,使得我们可以方便地应用遗传操作算子。特别是对于一些无数值概念或很难有数值概念,而只有代码概念的优化问题,编码处理方式显示出它的优越性。 2遗传算法不是从单点,而是从种群开始搜索。传统的优化算法往往是从解空间中的一个初始点开始最优
30、解的迭代搜索过程。遗传算法从由很多个体所组成的一个初始种群开始最优解的搜索过程。对于这个种群所进行的选择、交叉、变异等运算,产生出的是新一代的种群,在这之中包括了很多种群信息。这些信息可以避免搜索一些不必搜索的点,这是遗传算法所特有的一种隐含并行性。 3遗传算法利用适应度信息,无需导数或其它辅助信息。传统的优化算法不仅需要利用目标函数值,而且往往需要目标函数的导数值等其他一些辅助信息才能确定搜索方向。而遗传算法仅仅使用由目标函数值变换来的适应度函数值,无需目标函数值的导数等一些辅助信息。这个特性对于多目标函数(因无法或很难求导),以及组合优化问题等具有一定的优越性。再者,直接利用目标函数变换而
31、来的个体适应度函数,也可以使得我们把搜索范围集中到适应度较高的部分搜索空间,从而提高了搜索效率。 4遗传算法利用概率转移规则,而不是确定性规则。很多传统的优化算法往往使用确定性的搜索方法,一个搜索点到另一个搜索点的转移有确定的转移方法遗传算法在TSP问题上的应用 8 和转移关系。而遗传算法属于一种自适应概率搜索技术,其选择、交叉、变异等运算都是以一定的概率进行的,从而增加了其搜索过程的灵活性。虽然这种概率特性也会使种群中产生一些适应值不高的个体,但是随着进化过程的进行,新的种群中总会更多地产生出许多优良的个体。实践和理论都己经证明,在一定条件下遗传算法总是以概率1收敛于问题的最优解18。 2.
32、2 遗传算法的理论基础 遗传算法的运行机理非常复杂,随着遗传算法在复杂优化问题求解和实际工程设计中的应用,对遗传算法的理论基础也给予了关注。遗传算法的基本原理可以从模式定理和积木块假设等理论加以讨论。 1模式定理 Holland 的模式理论奠定了遗传算法的数学基础1419。 定义 2.1(模式)基于三值字符集0,1,*所产生的能描述居于某些结构相似性的 0,1 字符集的字符串称作模式。 引入模式概念后,我们看到一个串实际上隐含在多个串中,不同的串之间通过模式而相互联系。遗传算法中串的运算实质上是模式的运算。因此,通过分析模式在遗传操作下的变化,就可以了解什么性质被延续,什么性质被丢弃,从而把握
33、遗传算法的实质。 定义 2.2(模式阶)模式 H 中确定位置的个数称作该模式的模式阶(schema order),记作o(H)。 比如模式 011*1*的阶数为 4,而模式 0*的阶数为 1。显然,一个模式的阶数越高,其所代表的集合中的个体数就越少,因而确定性越高。但是,模式阶并不能反映模式的所有性质。 定义 2.3(定义距)模式 H 中第一个确定位置何最后一个确定位置之间的距离称作该模式的定义距(defining length),记作(H)。 比如模式 011*1*的定义距为 4,而模式 0*的定义距为 0。 模式定理:在遗传算法中,定义长度较短、低价且适应值超过平均适应值的模式H,在种群中
34、数目的期望值按指数级递增。 2. 隐含并行性 隐含并行性:在算法的运行过程中,每代都处理了n个个体,但由于一个个体编码串中隐含了多种不同的模式,所以算法实质上却处理了更多的模式,这种中南民族大学硕士学位论文 -9- 并行处理过程有别于一般意义下的并行算法的运行过程,是包含在处理过程内部的一种隐含并行性,通过这种隐含并行性,使得我们可以快速地搜索出一些比较好的模式。 3积木块假设 个体的基因块通过选择、交叉、变异等遗传算子的作用,能够相互拼接在一起,形成适应度更高的个体编码。 4欺骗问题 所谓的欺骗问题(deceptive problem ),即问题的初始条件具有欺骗性质,“迷惑”GA,使其偏离
35、全局最优解。其中最著名的模式定理的反例MDP(最小欺骗问题)主要思想是在最大程度上违背积木块假设,使优于平均适应度的低阶积木块生成局部最优的积木块。 5收敛性分析 理论上,一类算法全局收敛的充要条件是:具备局部收敛性;提供从当前局部最优状态向其它未搜索空间转移的方法;提供控制搜索整个空间的策略。 遗传算法的全局优化收敛性分析尚未解决,目前普遍认为,遗传算法并不能保证全局收敛,但在一定的约束条件下,能以概率1收敛于全局最优解18。 2.3 基本遗传算法 通常,对遗传算法的研究往往从Holland提出的遗传算法即基本遗传算法(Simple Genetic Algorithm,简记SGA)开始。SG
36、A只使用了选择算子、交叉算子和变异算子这三种基本遗传算子,其遗传进化操作过程简单,容易理解,是其它一些遗传算法的雏形和基础。 SGA可看成遗传算法的一种特例,它的操作对象是一群二进制串(称为染色体、个体),即种群。这里每个染色体都对应于问题的一个解。从初始种群出发,采用基于适应度比例的选择策略在当前种群中选择个体,使用杂交和变异来产生下一代种群。如此一代一代地演化下去,直到满足期望的终止条件。 1SGA的构成要素 (1) 染色体的编码方法 SGA使用固定长度的二进制符号串来表示种群中的个体,其等位基因是由二值符号集0 ,1组成的。初始种群中各个个体的基因值可用均匀分布的随机数来生成。 遗传算法
37、在TSP问题上的应用 10 (2) 个体的适应度评价 SGA按与个体适应度成正比的概率来决定当前种群中每个个体遗传到下一代种群中的机会。为了正确计算这个概率,这里要求所有个体的适应度值必须为正数或零。这样,根据不同种类的问题,必须预先确定好由目标函数值到个体适应度之间的转换规则。 (3) 遗传算子 SGA有三种遗传算子:选择算子使用比例选择算子;交叉算子使用单点交叉算子;变异算子使用基本位变异算子或均匀位变异算子。 (4) 基本遗传算法的运行参数 N:种群大小,即种群中所含个体的数量; t:遗传算法的终止进化代数; pr:选择概率; pc:交叉概率; pm:变异概率。 运行参数对遗传算法的求解
38、结果和求解效率都有一定的影响,合理的运行参数往往是通过多次运算后确定的。 SGA可以定义为一个8元组: SGA=(P(0),N,l,s,g,p,f,t) 这里P(0)表示初始种群; N:种群中含有个体的个数; l:二进制串的长度; s:选择策略; g:遗传算子,通常它包括选择算子、杂交算子、变异算子; p:遗传算子的操作概率,包括选择概率pr、杂交概率pc、变异概率pm; f:适应度函数; t:终止准则。 2SGA的设计 基本遗传算法是一个迭代过程,它模仿生物在自然环境中的遗传和进化机理,反复将选择算子、交叉算子和变异算子作用于种群,最终可得到问题的最优解和近似最优解。 中南民族大学硕士学位论
39、文 -11- 遗传算法的基本步骤为: 步骤一:确定参变量及其各种约束条件。即确定个体的表现形式和问题的解空间。 步骤二:建立优化模型。即确定出求解问题的目标函数和数学描述形式及量化方法。 步骤三:确定染色体的编码方法。即确定个体的基因形式。 步骤四:确定解码方法。即确定出个体的基因形式到个体的表现形式的对应关系和转化方式。 步骤五:确定个体适应度的量化评价方法。即确定出目标函数值同个体适应度的转化规则。 步骤六:设计遗传算子。即确定出选择算子、交叉算子和变异算子等遗传算子的具体操作方法。 步骤七:确定遗传算法的有关运行参数。即确定出遗传算法N,p,f,t等参数20。 SGA的一般流程如图2.1
40、所示。 图2.1 基本遗传算法流程图 初始化种群 适应度评价 选择 结果 变异 交叉 NY 满足条件遗传算法在TSP问题上的应用 12 2.4 遗传算法的关键技术 遗传算法的运行过程为一个典型的迭代过程,其必须完成的工作和基本任务有选择遗传编码、定义适应度函数、确定遗传算子、确定算法参数和算法的终止条件等。 2.4.1 遗传编码 按照遗传算法的工作流程,当用遗传算法求解问题时,必须在目标问题实际表示与遗传算法的染色体位串结构之间建立关系,即确定编码和解码运算。 编码就是将问题的解用一种码来表示,从而将问题的状态空间与遗传算法的编码空间相对应,编码的选择是影响算法性能与效率的重要因素。 对于给定
41、的优化问题,由遗传算法的表现型个体集合所组成的空间称为问题空间,由遗传算法的基因型个体所组成的空间称为遗传算法编码空间。遗传算子在遗传算法编码空间中对位串个体进行操作。编码应该适合要解决的问题,而不是简单的描述问题,问题编码一般应满足以下几个原则: 1完备性:问题空间中的所有点(潜在解)都能成为遗传算法编码空间中的点(染色体串)的表现型。 2健全性:遗传算法编码空间中的染色体串必须对应问题空间中的某一潜在解。 3非冗余性:染色体和潜在解必须一一对应。 按照遗传算法的模式定理,De Jong进一步提出了较为客观明确实用的编码评估准则,称为编码原理(building blocks)。具体可以概括为
42、两条规则: 1有意义建筑模块编码规则:编码应当生成与所求问题相关的短距和低阶的建筑模块。 2最小字符集编码规则:编码应采用最小字符集以使问题得到自然、简单的表示和描述。 常用的编码方法有如下几种: 1二进制编码:二进制编码将问题空间的参数表示为基于字符集0,1构成的染色体位串,是最常用的一种编码方式。 2大字符集编码:除基于字符集0,1 的二进制编码之外,可以结合实际问题的特征采用十进制数或字符集来表示长度为l的位串。 3序列编码:采用遗传算法求解TSP问题时,用排列法进行编码似乎更为自然、合理。如有10个城市的TSP问题,城市序号为1,2,10,则编码位串:1 2 3 4 5 6 7 8 9
43、 10 表示对城市采用升序方法访问行走路线。 中南民族大学硕士学位论文 -13- 4实数编码:在整个实数集上选择实数位串,实数编码具精度高、大空间搜索的优点。 5树编码:树编码是一种非定长编码模式,以树的结点表示个体串,其表示空间是开放的。在搜索过程中树可以自由生长,但是不便于形成更具有结构化和层次性的问题解,实际应用中往往可以加以限制。 6自适应编码:自适应编码在解决问题过程中同时调整编码,染色体的长度随环境变化而增长或缩短。因实现选择合适的固定编码方式对潜在的遗传算法用户来说是一个难题。因此,许多用户认为既然要用遗传算法解决问题,为什么不让它同时调整编码呢?一些专家就采用了自适应编码。 7
44、乱序编码:Goldberg和他的同事提出了一种基于乱序编码的遗传算法,用于提高函数优化和概念学习问题中遗传算法的搜索能力。在乱序编码中,原始染色体位串上的每一位基因增加一个整数基因位标号。例如长度为6的原始二进制串:101010,加上位置编号变为:(1,1)(2,0)(3,1)(4,0)(5,1)(6,0)。其主要思想是促进短距模式的检测和重组效率,降低模式被交叉算子破坏的概率。 2.4.2 适应度函数 遗传算法在进化搜索中基本不用外部信息,仅以适应度函数为依据,利用种群中每个个体的适应度值来进行搜索。因此适应度函数的选择至关重要,直接影响到遗传算法的收敛速度以及能否找到最优解。适应度函数的设
45、计主要满足以下条件: 1.单值、连续、非负、最大化:这个条件是容易理解和实现的。 2.合理、一致性:要求适应度值反映对应解的优劣程度,这个条件的达成比较难以衡量。 3.计算量小:适应度函数设计应尽可能简单,这样可以减小计算时间和空间上的复杂性,降低成本。 4.通用性强:适应度函数对具体问题应尽可能具有通用性,最好无需使用者改变适应度函数中的参数。 对于给定的优化问题opt ),)( vuxxg ,目标函数有正有负,甚至可能是复数值,所以有必要通过建立适应函数与目标函数的映射关系,保证映射后的适应值是非负的,而且目标函数的优化方向应对应于适应值增大方向。 针对进化过程中关于遗传操作的控制的需要,
46、选择函数变换fgT :,使得对于最优解*x,max =)(*xf opt(*x ) ),(*vux 。 遗传算法在TSP问题上的应用 14 1.对最小化问题,建立如下适应函数)(xf和目标函数)(xg的映射关系: )(xf = 其中,maxc可以是一个输入值或是理论上的最大值。或者是到当前所有代或是最近K代中)(xg的最大值,此时maxc随着代数会有变化。 2对于最大化问题,一般采用下述方法: )(xf = 式中minc既可以是特定的输入值,也可以是当前所有代或最近K代中)(xg的最小值。 2.4.3 遗传算子 遗传算法利用遗传算子产生新一代种群来实现种群的进化,算子的设计是遗传算法的主要组成
47、部分,也是调整和控制进化过程的基本工具。优胜劣汰是设计算法的基本思想,它应在选择、交叉、变异等遗传算子中得以体现,并且要考虑到对算法效率与性能的影响。 1.选择 选择即从当前种群中按个体适应度概率地选择一定数目的个体以产生交叉变异的过程。目前有适应度比例选择、Boltzmann选择、排序选择、联赛选择等形式。此外,为了防止由于选择误差,或者交叉和变异的破坏作用而导致当前种群的最佳个体在下一代丢失,还提出了精英选择和稳态选择等方法。 2.交叉 交叉算子是遗传算法具备的原始独有特性。分为以下几个步骤: (1) 从交配池中随机取出要交配的一对个体; (2) 根据位串长度l,对要交配的一对个体,随机选
48、取1,l-1中一个或多个的整数k作为交叉位置; (3) 根据交叉概率pc实施交叉操作,配对个体在交叉位置处,相互交换各自的部分内容,从而形成新的一对个体。 3.变异 变异操作模拟自然界生物体进化中染色体上某等位基因发生的突变现象,从)(maxxgc ,若max)( cxg 0, 否则 中南民族大学硕士学位论文 -15- 而改变染色体的结构和物理性状。按照变异概率随机选择一个父体,对其基因位进行变异,从而得到一个新的个体。 2.4.4 算法参数 在遗传算法的运行过程中,存在着对其性能产生重大影响的一组参数。这组参数在初始阶段或种群进化过程中需要合理地选择和控制。主要包括种群规模N、染色体位串长度
49、l、交叉概率Pc以及变异概率Pm。 1种群规模N:大种群含有较多模式,为遗传算法提供了足够的模式采样容量,可以改进遗传算法搜索的质量,防止早熟前收敛。但大种群增加了个体适应性评价的计算量,从而使收敛速度降低。一般专家建议N=20200。 2位串长度l:位串长度l的选择取决于待定问题的精度。要求的精度越高,位串越长,但需要更多的计算时间。为提高运算效率,变长度位串或者在当前所达到的较小可行域内重新编码,是一种可行的方法,并显示了良好性能。 3交叉概率Pc:交叉概率Pc控制着交叉算子的应用频率,在每一代新的种群中,需要对个体的染色体结构进行交叉操作。交叉概率越高,种群中新结构的引入越快,已获得的优良基因结构的丢失速度也相应升高。而交叉概率太低则可能导致搜索停滞。一般Pc=0.61.0。 4变异概率Pm:变异操作是保持种群多样性的有效手段,交叉结束后,交配池中的全部个体位串上的每位等位基因按概率随机改变。变异概率太小,可能是某些基因位过早丢失的信息无法恢复;而变异概率过高,则搜索将变成随机