遗传算法毕业论文管理资料.docx
- 文档编号:24079275
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:69
- 大小:542.71KB
遗传算法毕业论文管理资料.docx
《遗传算法毕业论文管理资料.docx》由会员分享,可在线阅读,更多相关《遗传算法毕业论文管理资料.docx(69页珍藏版)》请在冰豆网上搜索。
遗传算法毕业论文管理资料
遗遗传算法毕业论文
【摘要】遗传算法(GeneticAlgorithm,GA)是近年来迅速发展起来的一种全新的随机搜索与优化算法,其基本思想基于Darwin的进化论和Mendel的遗传学。
遗传算法的广泛应用和发展潜能使很多学者深入研究遗传算法,并出版了很多关于它的书籍。
TSP问题是古老的经典的问题,有关的研究有几百年的时间。
TSP旅行商问题是一类典型的NP完全问题,遗传算法是解决NP问题的一种较理想的方法。
论文首先介绍了遗传算法的基本原理、遗传算法的特点,遗传算法的发展方向和它的主要应用领域;接着针对TSP问题论述了遗传算法在编码表示和遗传算子(包括选择算子,交叉算子,变异算子这三种算子)等方面的应用情况,简单讨论几种编码方法,并改进了交叉算子。
接着对改进的遗传算法做了实验,得出结果并分析了数据。
最后我做了一个TSP简单应用。
【关键词】遗传算法;TSP;遗传算子;编码
【Abstract】GeneticAlgorithm(GeneticAlgorithm,GA)isanewrandomsearchandoptimizationalgorithm,developrapidlyinrecentyears,thebasicideaofthetheoryisDarwinandMendel'sgenetics.Extensiveuseofgeneticalgorithmsanddevelopmentpotentialmakemanyscholarsin-depthstudyofgeneticalgorithms,andpublishedmanybooksaboutit.
TSPproblemistheoldclassicquestionandaboutitsresearchhavehundredsofyearsoftime."TSP"TravelingSalesmanProblemisakindofatypicalNP-completeproblem,geneticalgorithmstosolveNPproblemsisamoredesirablemethod.
Paperfirstintroducesthecharacteristics,developmentdirectionandmajorapplicationsofbasicgeneticalgorithms,andthendiscussedfortheTSPproblemofgeneticalgorithmsandgeneticcodingthatoperator(includingtheselectionoperator,crossoveroperator,mutationoperatorofthesethreeoperator)andotheraspectsoftheapplication,makeabriefdiscussionaboutseveralcodingmethods,andimprovedcrossoveroperator.Thenuseimprovedgeneticalgorithmtodotheexperiment,gettheoutcomeandanalyzethedata.Finally,IdoasimplesuingaboutTSP.
【Keywords】geneticalgorithm;TSP;geneticoperator;coding
编码技术16
对TSP遗传算法的改进:
25
第一章遗传算法理论
当前科学技术正进入多学科互相交叉、互相渗透、互相影响的时代,生命科学与工程科学的交叉、渗透和相互促进是其中一个典型例子,也是近代科学技术发展的一个显著特点。
遗传算法的蓬勃发展正体现了科学发展的这一特点和趋势。
1967年,Holland的学生在博士论文中首次提出“遗传算法”(GeneticAlgorithms)一词。
此后,Holland指导学生完成了多篇有关遗传算法研究的论文。
1971年,。
1975年Holland出版了他的著名专著《自然系统和人工系统的自适应》(AdaptationinNaturalandArtificialSystems),这是第一本系统论述遗传算法的专著,因此有人把1975年作为遗传算法的诞生年。
Holland在该书中系统地阐述了遗传算法的基本理论和方法,并提出了对遗传算法的理论研究和发展极其重要的模式理论(schematheory)。
该理论首次确认了结构重组遗传操作对于获得并行性的重要性。
同年,Jong完成了他的博士论文《一类遗传自适应系统的行为分析》(AnAnalysisoftheBehaviorofaClassofGeneticAdaptiveSystem)。
该论文所做的研究工作,可看作是遗传算法发展进程中的一个里程碑,这是因为,他把Holland的模式理论与他的计算实验结合起来。
尽管DeJong和Hollstien一样主要侧重于函数优化的应用研究,但他将选择、交叉和变异操作进一步完善和系统化,同时又提出了诸如代沟(generationgap)等新的遗传操作技术。
可以认为,DeJong的研究工作为遗传算法及其应用打下了坚实的基础,他所得出的许多结论,迄今仍具有普遍的指导意义。
进入八十年代,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。
1985年,在美国召开了第一届遗传算法国际会议(InternationalConferenceonGeneticAlgorithms,ICGA),并且成立国际遗传算法学会(InternationalSocietyofGeneticAlgorithms,ISGA),以后每两年举行一次。
1989年,《搜索、优化和机器学习中的遗传算法》(GeneticAlgorithmsinSearch,Optimization,andMachineLearning)。
该书总结了遗传算法研究的主要成果,对遗传算法及其应用作了全面而系统的论述。
同年,美国斯坦福大学的Koza基于自然选择原则创造性地提出了用层次化的计算机程序来表达问题的遗传程序设计(geneticprogramming,GP)方法,成功地解决了许多问题。
在欧洲,从1990年开始每隔一年举办一次ParallelProblemSolvingfromNature学术会议,其中遗传算法是会议主要内容之一。
此外,以遗传算法的理论基础为中心的学术会议还有FoundationsofGeneticAlgorithms,该会也是从1990年开始隔年召开一次。
这些国际会议论文,集中反映了遗传算法近些年来的最新发展和动向。
1991年,《遗传算法手册》(HandbookofGeneticAlgorithms),其中包括了遗传算法在工程技术和社会生活中的大量应用实例。
1992年,Koza发表了他的专著《遗传程序设计:
基于自然选择法则的计算机程序设计》”。
1994年,他又出版了《遗传程序设计,第二册:
可重用程序的自动发现》深化了遗传程序设计的研究,使程序设计自动化展现了新局面。
有关遗传算法的学术论文也不断在《ArtificialIntelligence》、《MachineLearning》、《Informationscience》、《ParallelComputing》、《GeneticProgrammingandEvoluableMachines》、《IEEETransactionsonNeuralNetworks》、《IEEETransactionsonSignalProcessing》等杂志上发表。
1993年,MIT出版社创刊了新杂志《EvolutionaryComputation》。
1997年,IEEE又创刊了《TransactionsonEvolutionaryComputation》。
《AdvancedComputationalIntelligence》杂志即将发刊,。
目前,关于遗传算法研究的热潮仍在持续,越来越多的从事不同领域的研究人员已经或正在置身于有关遗传算法的研究或应用之中。
遗传算法(GeneticAlgorithm,GA)是近三十年来迅速发展起来的一种全新的随机搜索与优化算法,其基本思想是基于Darwin的进化论和Mendel的遗传学说。
该算法由密执安大学教授Holland及其学生于1975年创建。
此后,遗传算法的研究引起了国内外学者的关注。
(InternationalConferenceonGeneticAlgorithms)会议和FOGA(WorkshoponFoundationofGeneticAlgorithms)会议。
为研究和应用遗传算法提供了国际交流的机会。
作为一种通用的问题求解方法,遗传算法采用简单的编码技术来表示各种复杂的结构并通过对一组编码表示进行简单的遗传操作和优胜劣汰的自然选择来指导学习和确定搜索的方向。
遗传程序设计是借鉴生物界的自然选择和遗传机制,在遗传算法的基础上发展起来的搜索算法,它已成为进化计算的一个新分支。
在标准的遗传算法中,由定长字符串(问题的可行解)组成的群体借助于复制、交叉、变异等遗传操作不断进化找到问题的最优解或次优解。
遗传程序设计运用遗传算法的思想,常采用树的结构来表示计算机程序,从而解决问题。
对于许多问题,包括人工智能和机器学习上的问题都可看作是需要发现一个计算机程序,即对特定输入产生特定输出的程序,形式化为程序归纳,那么遗传程序设计提供了实现程序归纳的方法。
把遗传算法和计算机程序结合起来的思想出现在遗传算法中,Holland把产生式语言和遗传算法结合起来实现分类系统,还有一些遗传算法应用领域的研究者将类似于遗传算法的遗传操作施加于树结构的程序上。
近年来,遗传程序设计运用遗传算法的思想自动生成计算机程序解决了许多问题,如预测、分类、符号回归和图像处理等,作为一种新技术,它已经与遗传算法并驾齐驱。
1996年,举行了第1次遗传程序设计国际会议,该领域己引起越来越多的相关学者们的兴趣。
现在的基因表达式算法应该算是遗传算法的继承者
遗传算法和字面意思一样,原理是关于遗传的算法。
遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。
生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。
遗传算法是根据生物进化思想而启发得出的一种全局优化算法。
遗传算法的概念最早是由Bagley;而开始遗传算法的理论和方法的系统性研究的是1975年,。
当时,其主要目的不是对遗传算法系统研究而是说明自然和人工系统的自适应过程。
遗传算法简称GA(GeneticAlgorithm),在本质上是一种不依赖具体问题的直接搜索方法。
遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。
在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。
遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。
Darwin进化论最重要的是适者生存原理。
它认为每一物种在发展中越来越适应环境。
物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。
在环境变化时,只有那些能适应环境的个体特征方能保留下来。
Mendel遗传学说最重要的是基因遗传原理。
它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。
每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。
基因突变和基因杂交可产生更适应于环境的后代。
经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。
由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。
[19]
这些概念如下:
(1)串(String)
它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)。
(2)群体(Population)
个体的集合称为群体,“串”是群体的元素
(3)群体大小(PopulationSize)
在群体中个体的数量称为群体的大小。
(4)基因(Gene)
基因是串中的元素,基因用于表示个体的特征。
例如有一个串S=1011,则其中的1,0,1,1这4个元素分别称为基因。
它们的值称为等位基因。
(5)基因位置(GenePosition)
一个基因在串中的位置称为基因位置,有时也简称基因位。
基因位置由串从左向右计算,例如在串S=1101中,0的基因位置是3。
基因位置对应于遗传学中的地点(Locus)。
(6)基因特征值(GeneFeature)
在用“二进制串”表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8。
(7)串结构空间(SS)
在串中,基因任意组合所构成的串的集合。
基因操作是在结构空间中进行的。
串结构空间对应于遗传学中的基因型(Genotype)的集合。
(8)参数空间SP
这是“串空间”在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。
(9)适应度(Fitness)
表示某一个体对于环境的适应程度。
遗传算法的原理
遗传算法GA把“问题的解”表示成“染色体”,在算法中也即是以二进制编码的串。
并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。
然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。
这样,“一代一代”地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。
在遗传算法里,优化问题的解被称为个体,它表示为一个参数列表,叫做染色体或者基因串。
染色体一般被表达为简单的字符串或数字串,不过也有其他的表示方法适用,这一过程称为编码。
一开始,算法随机生成一定数量的个体,有时候操作者也可以对这个随机产生过程进行干预,播下已经部分优化的种子。
在每一代中,每一个个体都被评价,并通过计算适应度函数得到一个适应度数值。
种群中的“个体”被按照适应度排序,适应度高的在前面。
这里的“高”是相对于初始的种群的“低适应度”来说的。
下一步是产生下一代个体并组成种群。
这个过程是通过选择和交叉完成的,其中繁殖包括(crossover)和突变(mutation)。
选择则是根据新个体的适应度进行的,适应度越高,被选择的机会越高,而适应度低的,被选择的机会就低。
初始的数据可以通过这样的选择过程组成一个相对优化的群体。
之后,被选择的个体进入交配过程。
一般的遗传算法都有一个交配概率,,这个交配概率反映两个被选中的个体进行交配的概率。
例如,,则80%的“夫妻”会生育后代。
每两个个体通过交配产生两个新个体,代替原来的“老”个体,而没交配的个体则保持不变。
交配父母的染色体相互交换,从而产生两个新的染色体,第一个个体前半段是父亲的染色体,后半段是母亲的,第二个个体则正好相反。
不过这里的半段并不是真正的一半,这个位置叫做交配点,也是随机产生的,可以是染色体的任意位置。
再下一步是突变,通过突变产生新的“子”个体。
一般遗传算法都有一个固定的突变常数,,这代表变异发生的概率。
根据这个概率,新个体的染色体随机的突变,通常就是改变染色体的一个字节(0变到1,或者1变到0)。
经过这一系列的过程(选择、交配和突变),产生的新一代个体不同于初始的一代,并“一代一代”向增加整体适应度的方向发展,因为最好的个体总是更多的被选择去产生下一代,而适应度低的个体逐渐被淘汰掉。
这样的过程不断的重复:
每个“个体”被评价,计算出适应度,两个个体交配,然后突变,产生第三代。
周而复始,直到终止条件满足为止。
遗传算法的基础理论是摸式定理。
它的有关内容如下:
(1)摸式(Schema)概念[1]
一个基因串用符号集{0,1,*}表示,则称为一个因式;其中*可以是0或1。
例如:
H=1xx0xx是一个模式。
(2)摸式的“阶”和“长度”
摸式中0和1的个数称为模式的阶,并用0(H)表示。
模式中第1个数字串和最后一个数字串间的距离称为模式的长度,并用δ(H)表示。
对于模式H=1xx0xx,有0(H)=2,δ(H)=4。
(3)Holland摸式定理
低阶,短长度的模式在群体遗传过程中将会按指数规律增加。
当群体的大小为n时,每代处理的模式数目为0(n3)。
(1)串的编码方式
这本质是问题编码。
一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。
串长度及编码形式对算法收敛影响极大
(2)适应函数的确定
适应函数(fitnessfunction)也称对象函数(objectfunction),这是问题求解品质的测量函数;往往也称为问题的“环境”。
一般可以把问题的模型函数作为对象函数;但有时需要另行构造。
(3)遗传算法自身参数设定
遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm。
群体大小n太小时难以求出最优解,太大则增长收敛时间。
一般n=30-160。
交叉概率Pc太小时难以向前搜索,太大则容易破坏“高适应值”的结构。
一般取Pc=。
变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。
一般取Pm=0.01-0.2。
(1)初始化
选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。
这个初始的群体也就是问题假设解的集合。
一般取n=30-160。
通常以随机方法产生串或个体的集合bi,i=1,2,...n。
问题的最优解将通过这些初始假设解进化而求出。
[5]
(2)选择
根据适者生存原则选择下一代的个体。
在选择时,以适应度为选择原则。
适应度选择原则体现了适者生存,不适应者淘汰的自然法则。
给出目标函数f,则f(bi)称为个体bi的适应度。
适应度较高的个体,繁殖下一代的数目较多。
适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。
这样,就产生了对环境适应能力较强的后代。
对于问题求解角度来讲,就是选择出和最优解较接近的中间解。
(3)交叉
对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P交叉。
在选中的位置实行交换。
这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。
交叉时,可实行单点交叉或多点交叉。
例如有个体
S1=100101
S2=010111
选择它们的左边3位进行交叉操作,则有
S1=010101
S2=100111
一般而言,—。
(4)变异
根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些“位”执行变异。
在变异时,对执行变异的串的“对应位”求反,即把1变为0,把0变为1。
变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,。
例如有个体S=101011。
对其的第1,4位置的基因进行变异,则有
=001111
单靠变异不能在求解中得到好处。
但是,它能保证算法过程不会产生无法进化的单一群体。
因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。
也就是说,变异增加了全局优化的特质.
(5)全局最优收敛(Convergencetotheglobaloptimum)
当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。
否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
(1)遗传算法从问题解的中集开始嫂索,而不是从单个解开始。
这是遗传算法与传统优化算法的极大区别。
传统优化算法是从单个初始值迭代求最优解的,容易误入局部最优解。
遗传算法从“串集”开始搜索,覆盖面大,利于全局择优。
(2)遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。
由于遗传算法使用“适应值”这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。
遗传算法只需“适应值”和串编码等通用信息,故几乎可处理任何问题。
(3)遗传算法有极强的容错能力。
遗传算法的初始串集本身就带有大量与最优解甚远的信息,通过选择、交叉、变异操作能迅速排除与最优解相差极大的串,这是一个强烈的滤波过程,并且是一个并行滤波机制。
故而,遗传算法有很高的容错能力。
(4)遗传算法最优迫近。
遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的覆盖。
(5)遗传算法具有隐含的并行性。
虽然在各种应用领域中,算法的具体实施细节有各自的特点,但遗传算法提供了一种求解复杂系统优化问题的通用框架,它不依赖于问题的具体领域。
遗传算法主要应用于以下几个主要领域:
[17][13]
(1)函数优化
函数优化是遗传算法的经典应用领域,也是对遗传算法进行性能评价的常用例子。
很多人工构造的各种各样复杂形式的测试函数,有连续函数也有离散函数,有单峰函数也有多峰函数等,利用这些函数来评价遗传算法的性能。
对于非线性、多目标的函数优化问题,用其他算法通常较难求解,但使用遗传算法却很方便并可以得到较好的结果。
(2)组合优化
随着问题规模的扩大,组合优化问题的搜索空间急剧增大,甚者有时无法求到精确最优解。
对于这类复杂问题,使用遗传算法求解可行解就显得更加有实际价值。
这类问题包括旅行商问题、背包问题、装箱问题和图形划分等。
(3)生成调度
生产调度问题在很多情况下所建立起来的数学模型难以精确求解,即使经过一些简化之后可以进行求解,也因简化太多而使得求解结果与实际相差甚远。
因此目前现实生产中也主要靠一些经验进行调度。
遗传算法已经成为解决复杂调度问题的有效工具,在单件生产车间调度、流水线生产车间调度、生产规划、任务分配等方面遗传算法都得到了有效的应用。
(4)自动控制
在自动控制领域中有很多与优化相关的问题需要求解。
遗传算法已在其中得到了初步的应用,并显示出良好的效果。
例如用遗传算法进行航空控制系统的优化、使用遗传算法设计空间交会控制器、基于遗传算法的模糊控制器的优化设计、基于遗传算法的参数辨识、基于遗传算法的模糊控制规则的学习、利用遗传算法进行人工神经网络的结构优化设计和“权值”学习等。
都显出了遗传算法在这此领域中应用的可能性。
(5)机器人学
机器人是一类复杂的难以精确建模的人工系统,而遗传算法的起源就来自于人工自适应系统的研究。
所以,机器人学理所当然地成为遗传算法的一个重要应用领域。
例如,遗传算法已经在移动机器人路径规划、关节机器人运动轨迹规划、机器人逆运动学求解、细胞机器人的结构优化和行为协调等方而得到研究和应用。
[12]
(6)图像处理
图像处理是计算机视觉中的一个重要研究领域。
在图像处理过程中,如扫描、特征提取、图像分割等不可避免地会存在一次误差,从而影响图像的效果。
如何使这些误差最小是使计算机视觉达到实用化的重要要求。
遗传算法在这些
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 遗传 算法 毕业论文 管理 资料