遗传算法综述

  • 格式:docx
  • 大小:79.98 KB
  • 文档页数:7

遗传算法综述摘要遗传算法是通过模拟大自然中自然进化的过程并遵循遗传机制来求解问题的最优解的算法。

本文介绍了遗传算法的发展史,并对算法过程中编码方式、适应度函数选择、选择策略、遗传算子处理、参数控制进行了详尽探讨。

关键词:遗传算法;编码;适应度函数;选择策略;遗传算子一、引言遗传算法是在20世纪80年代迅速发展起来的一种随机搜索与优化算法,近年其成功的应用于工业、经济管理、交通运输等不同领域[1],应用前景广泛,本文将从其起源,发展,重要人物,重要文章开始讨论,重点探讨算法过程中的一些关键步骤中的问题。

二、遗传算法的起源和发展分支遗传算法是通过模拟大自然中自然进化的过程并遵循遗传机制来求解问题的最优解的算法。

其核心的进化思想要追溯到Darwin的进化论与Mendel的遗传学说。

Darwin提出了“物竞天择,适者生存”,生物的遗传使得父代性状可以传至子代,而交叉,变异则产生新基因,为自然选择提供了丰富的原材料。

Mendel 则提出了分离率和自由组合率,奠定了现代遗传学的基础。

遗传算法是由密西根大学的Holland教授和他的学生在二十世纪六十年代对细胞自动机进行研究时率先提出的,并在1975年出版了《Adaptation in Natural and Artificial Systems》[2]。

以后,Holland将该算法加以推广。

其后,遗传算法不断在许多领域得到应用,算法本身也越来越成熟。

在20世纪80年代,在美国召开了第一届国际遗传算法会议,遗传算法迎来了其蓬勃发展时期,随着计算机计算能力的发展与实际需求的增多,遗传算法也更加广泛的在许多领域得到应用。

比如机器智能设计和机器人学习、计算机自动设计、系统优化设计、生产调度、时间表安排等等[1]。

正是由于其在许多重要领域获得了成功,因此受到了普遍关注并成为一个热门研究领域。

三、遗传算法发展中的重要人物与经典文章遗传算法是从Holland开始逐渐为世人所熟悉,其提出了模式定理[2],而他的《Adaptation in Natural and Artificial Systems》也成了一部经典之作。

1975年,De Jong则尝试了将遗传算法用于函数优化。

1989年,Goldberg出版的《Genetic Algorithm in Search, Optimization, and Machine learning》[3],对遗传算法的研究产生了一定影响。

1992年,Michalewicz出版了一个具有影响力的著作《Genetic Algorithm + Data Structure = Evolutionary Programming》[4]。

四、算法详析(一)遗传算法的基本步骤1.初始化群体,随机产生初始群体。

2.计算群体中每个个体的适应度值,维护最优解,进行精英保留。

3.模拟自然选择的过程,根据每个个体的适应度利用某种方法产生新一代的个体。

4.模拟交叉过程。

5.模拟变异过程。

6.判断是否达到停止要求,没有则回到第2步重复,达到即可进入下一步。

7.输出结果。

根据该过程,我们可以得到如图一所示的流程图。

接下来我们将从具体的几个方面详细探讨遗传算法的实现。

(二)编码问题毫无疑问,我们在利用遗传算法解决问题时,就要将问题模型化,将其转化为我们希望使用的抽象模型。

我们在算法中,总是首先生成一些可能解,对于这些群体,进行自然选择的操作,以希望从这些原始群体中进化出最优解。

但是我们首先遇到的问题就是如何来进行编码表示这些可能解。

Holland在运用模式定理分析编码机制时建议使用二进制编码,即只用0和1组成的字符串来表示染色体。

二进制编码也是目前最常用的编码方式。

使用二进制编码有很多优点,比如简单易行,变异杂交操作都比较方便,而且也便于使用模式定理对其进行理论分图一,遗传算法流程图析,但是其精度不够,占用内存较多。

除了二进制编码之外,还有很多其它的编码方式。

常见的还有实数编码[5],格雷码编码[5],符号编码方法[1],还有复数编码[6]等。

采用何种编码方式应该视具体情况决定,具体的问题会有其较为适合的编码方式。

而目前不同的编码方式中,许多也是为了解决某些具体问题而寻找到的合适编码方式。

比如复数编码的GA就是为了描述和解决二维问题,而让基因采取x+yi的方式进行编码[6]。

在实际决定采取何种编码方式的时候,我们必须要注意以下几个方面:一是完备性,即问题空间中的所有解均可以以GA空间中的染色体表现;二是健全性,即GA空间中的染色体均能对应到问题空间的某一可能解。

(三)适应度函数为了表明每个染色体的优劣,就需要一个适应度函数,来描述每个染色体的优劣,适应度就表现了每个个体的生存机会的大小。

因此,适应度函数的选取直接决定算法收敛的速度以及是否可以找到全局最优解,适应度函数直接影响到了遗传算法的效果。

那么合理选取适应度函数就变得相当重要了。

往往我们会对适应度函数进行尺度变换,常用的尺度变换有线性变换法、幂函数变换法、指数变换法等。

而一个问题具体采用什么变换才能达到最优的效果,vladik kreinovicha等人的《genetic algorithms: what fitness scaling is optimal?》[7]进行了比较详尽的阐述。

(四)选择策略在产生新一代个体过程中,很重要的一步就是在父代中进行选择。

不同的选择的策略对算法性能有不同的影响。

最常见的一个选择策略就是轮盘赌法,它依据父代每个个体的适应度数值大小,决定了每个个体被选择的几率,适应度数值越大,被选择存活的几率越大,但是这一种方法有着较大的抽样误差。

其它常用的一些选择策略还有非线性排名选择法,这时,种群将会进行基于排序的适应度分配,这样,适应度仅仅取决于个体在种群中的序位,不依赖于其具体目标值。

在一定程度上避免了轮盘赌法的弊端。

除此之外,还有随机遍历抽样法,局部选择法,锦标赛选择法等[8]。

面对不同的问题,应当采取合适的选择策略,以让算法性能尽可能的提高。

(五)遗传算子基本遗传算法中一般采用简单的单点交叉算子和简单的变异算子。

交叉与变异是产生新的个体的方式,因此交叉运算和变异运算对遗传算法的搜索能力有着明显的影响。

因此合理的选择交叉方法,变异方法可以有效的提高遗传算法的搜索能力。

在二进制编码或实数编码中,经常使用到的交叉算子有单点交叉,即随机设置一个交叉点,在该点相互交换两个配对个体的部分基因。

经常使用的还有双点交叉,即随机设置两个交叉点,对两个配对的个体交换两个交叉点之间的基因。

除此在外还有均匀交叉,算术交叉等[8]。

变异本身就是一种局部随机搜索,其使得群体具有多样性,防止出现非成熟收敛。

在二进制编码和实数编码中一般有基本位变异、均匀变异、高斯变异、二元变异[9]。

特别是二元变异,其变异需要两条染色体的参与,分别与另一条进行同或/异或运算,这有效的改善了早熟收敛问题,使得遗传算法得到了进一步优化。

(六)参数控制一般来说,参数包括群体大小,交叉概率,变异概率等。

参数的选取也是很重要的,比如群体大小,如果太小不利于进化,但如果太大的话程序运行时间过长,不能接受。

如果我们人为的去控制这些参数,具有很大的经验性,盲目性。

事实上,如果这些参数能够随着遗传进化而自适应变化,那将可靠的多,Davis 就提出自适应算子概率方法[10]。

许多学者也在该方向上努力,并取得了不少进展,相关算例也表明获得了较好的性能。

五、最新研究进展遗传算法的主要应用领域在于函数优化,机器人学,其在控制、规划、设计、组合优化、图像与信号的处理等方面也有着广泛的应用[8]。

而比较新的引人注目的有基于遗传算法的机器学习,而遗传算法与其它计算智能方法的相互渗透和结合也是一个热点。

遗传算法与神经网络、模糊推理以及混沌理论等的结合,可以取长补短,合理的应用将会显著提高系统性能。

而并行处理的遗传算法更是算法本身的发展,遗传算法与人工生命的渗透也逐渐成为一个热点。

六、结束语遗传算法以模拟自然界自然选择的过程,获得问题的最优解。

而在遗传算法当中,编码方式、适应度函数选择、选择策略、遗传算子处理、参数控制都决定着遗传算法的性能。

我们应当依据具体问题,采取具体的策略来让遗传算法的性能尽可能发挥到最好。

遗传算法也在很多领域有着广泛的应用价值,尽管其仍然有许多问题需要处理,但各国学者一直在寻求着遗传算法的改进,相信未来其会有更加广泛的应用前景。

参考文献[1][日]玄光男、程润传, 遗传算法与工程设计, 北京: 科学出版社,20001[2]Holland J H. Adaptation in Natural and Artificial Systems. Ann Arbor:University of Michigan press, 1975.[3]David E. Goldberg . Genetic Algorithms in Search, Optimization and MachineLearning.Addison-Wesley Educational Publishers Inc, 1989.[4]Z.Michalewicz. Genetic Algorithm + Data Structure = EvolutionaryProgramming Spinger Press,1992[5]周明、孙树栋, 遗传算法原理及应用, 北京: 国防工业出版社, 19991[6]唐飞滕弘飞刘峻娄汉文带有能力约束的二维装填布局问题宇航学报。

2000,21(2):50-57[7]Vladik Kreinovich,Chris Quintana,Olac Fuentes. genetic algorithms: whatfitness scaling is optimal? Ctberm ans system.1993,24(1):9-26[8]王小平、曹立明遗传算法:理论、应用与软件实现。

西安交通大学出版社。

2002.1[9]杨启文, 蒋静坪, 张国宏, 遗传算法优化速度的改进软件学报 2000,12( 2) : 270~ 2751[10]Davis. L Adaptive Operator Probability in Genetic Algorithms. In Proc.3rd In tConf Genetic Algorithms,1989 18(6):590-595。