关于遗传算法研究的容调研设计毕业论文
摘 要 I
Abstract II
第一章 遗传算法概论 1
1.1 遗传算法的产生和国外研究现状 1
1.2 遗传算法的基本原理 2
1.3遗传算法的特点 3
1.4遗传算法的应用 4
1.5课题的任务 6
第二章 基本遗传算法 7
2.1 基本遗传算法简介 7
2.2 基本遗传算法描述 7
2.3 基本遗传算法的实现 10
第三章 遗传算法求解TSP 15
3.1 旅行商问题概述 15
3.2 使用改进的遗传算法求解TSP 16
第四章 求解TSP的实验结果及分析 26
4.1实验环境 26
4.2算法在求解不同规模下的TSP的实验结果 26
4.3改良的遗传算法和其它智能优化算法的比较 27
4.4使用单一变异算子和混合变异算子的实验结果对比分析 28
第五章 总 结 30
参考文献 32
附录1 改良遗传算法求解TSP Java源程序 33
附录2 英文文献翻译 50
致 谢 56
第一章遗传算法概论
1.1 遗传算法的产生和国外研究现状
遗传算法(Genetic Algorithm简称GA)美国的J. Holland教授于1975年在他的专著《自然界和人工系统的适应性》中首先提出的,它是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法[1] 。
遗传算法模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象,在每次迭代中
都保留一组候选解,并按某种指标从解中选取较优的个体(优胜劣汰),利用遗传算子(选择、交叉和变异)对这些个体进行组合,产生新一代的候选解,重复此过程,直到满足某种收敛指标为止。最后一代候选解中的最优解就是所求得的最优解。
1991年D.Whitey在他的论文中提出了基于领域交叉的交叉算子(Adjacency based crossover),这个算子是特别针对用序号表示基因的个体的交叉,并将其应用到了(旅行商)TSP问题中,通过实验对其进行了验证。
D.H.Ackley等提出了随机迭代遗传爬山法(Stochastic Iterated Genetic Hill-climbing,SIGH)采用了一种复杂的概率选举机制,此机制中由m个“投票者”来共同决定新个体的值(m表示体的大小)。实验结果表明,SIGH与单点交叉、均匀交叉的神经遗传算法相比,所测试的六个函数中有四个表现出更好的性能,而且总体来讲,SIGH比现存的许多算法在求解速度方面更有竞争力[2]。
H.Bersini和G.Seront将遗传算法与单一方法(simplex method)结合起来,形成了一种叫单一操作的多亲交叉算子(simplex crossover),该算子在根据两个母体以及一个额外的个体产生新个体,事实上他的交叉结果与对三个个体用选举交叉产生的结果一致。同时,文献还
将三者交叉算子与点交叉、均匀交叉做了比较,结果表明,三者交叉算子比其余两个有更好的性能。
国也有不少的专家和学者对遗传算法的交叉算子进行改进。2002年,戴晓明等应用多种遗传并行进化的思想,对不同种基于不同的遗传策略,如变异概率,不同的变异算子等来搜索变量空间,并利用种间迁移算子来进行遗传信息交流,以解决经典遗传算法的收敛到局部最优值问题
2004年,宏立等针对简单遗传算法在较大规模组合优化问题上搜索效率不高的现象,提出了一种用基因块编码的并行遗传算法(Building-block Coded Parallel GA,BCPGA)。该方法以粗粒度并行遗传算法为基本框架,在染体体中识别出可能的基因块,然后用基因块作为新的基因单位对染体重新编码,产生长度较短的染体,在用重新编码的染体体作为下一轮以相同方式演化的初始体。
2005年,江雷等针对并行遗传算法求解TSP,探讨了使用弹性策略来维持体的多样性,使得算法跨过局部收敛的障碍,向全局最优解方向进化。
1.2 遗传算法的基本原理
1.2.1遗传算法的基本术语
由于遗传算法的研究与应用尚在不断发展之中,有关术语的运用尚未完全取得统一。为了在下面的研究中做到准确、清晰、规的描述,对本文使用到的遗传算法术语解释如下[3]:
个体(individual):遗传算法中处理的基本对象、数据结构,对应于自然遗传学中的生物个体。
种( population):个体的集合,对应于自然遗传学中的生物种。
种大小( population size):种中个体数目称为种大小。
位串( bit string):也叫染体(chromosome),个体特征的表现形式,对应于自然遗传学中的染体。
基因( gene):位串中的元素,表示不同的特征,对应于生物学中的遗传物质单位,以DNA序列形式把遗传信息译成编码。
数据结构与算法论文基因位( locus):某一基因在位串(染体)中的位置
适应度(fitness):某一个体对于环境的适应程度,或者在环境压力下的生存能力,取决于遗传特性。
适应度函数(fitness function):为了体现染体的适应能力,引入了对问题中的每一个染体都能进行度量的函数,叫适应度函数,适应度函数是计算个体在种中被使用的概率。
遗传操作(genetic operator):遗传算法中有三种关于染体的运算:选择、交叉和变异,这三种运算被称为遗传操作。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论