logo资料库

遗传算法综述.docx

第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
资料共14页,剩余部分请下载后查看
1.引言
2.遗传算法的特点
3.遗传算法的理论研究
3.1 基本遗传算法的数学模型
3.2 基本遗传算法的执行流程
3.3 基本遗传算法的构成要素
3.3.1 染色体编码方法
3.3.2 适应度函数
3.3.3 遗传操作
3.3.4 运行参数
4.遗传算法的现状
5.遗传算法的研究进展
6.遗传算法的应用领域
7.遗传算法的研究思路
8.遗传算法的展望
9.参考文献
遗传算法综述 摘要 遗传算法是一种全局优化的随机搜索算法,是解决复杂优化问题的有力工具。近年来, 由于遗传算法求解复杂优化问题的巨大潜力及其在工业工程领域的成功应用,这种算法受到 了国内外学者的广泛关注。本文介绍了遗传算法的理论研究和研究进展,概述了遗传算法的 常见应用领域,并且提出了几个有价值的研究点。 关键词: 遗传算法,编码,随机搜索 Genetic Algorithms : A Review Abstract Genetic algorithm is a random search algorithm which is based on global optimization. It is a powerful tool to solve complex optimization problems. In recent years, this algorithm has drawn wide attention of domestic and foreign researchers for its huge potential to solve complex optimization problems and its successful application in industrial engineering. This article introduces the basic theory and the research progress of genetic algorithm . Some common fields of application of genetic algorithms are summarized, and several valuable research points are proposed. Keywords: Genetic Algorithm, Coding, Random Search 1.引言 遗传算法(gentic algorithms 简称 GA)是以达尔文的生物进化理论和孟德尔的遗传 变异理论为基础的全局搜索的仿生型优化算法,借鉴生物界的进化规律(适者生存,优胜劣 汰遗传算法机制)演化而来的。 最初是由美国密歇根大学的 Jonn H.Holland 教授等于二十 世纪 六十年代在细胞自动机的研究中率先提出和创立[1]。在实际中,有许多问题是非连续 的问题,而遗传算法不用过多的考虑这些问题的动力学信息,也不需要确定的规则, 并且 该算法具有内在的隐并行性和全局寻优能力,能够自动获取和指导优化的搜索空间,自适应 地调整搜索方向,它在思想上突破了原有的最优化方法的框架,尤其适用于处理传统搜索方 法难以解决的复杂和非线性问题[1~4]。 随着计算机计算能力的发展和实际应用需求的增多,遗传算法在应用、理论等方面取
得了长足的进步。越来越多改进的遗传算法被广泛应用应用于组合优化、机器学习、自适应 控制、规划设计和人工生命等领域,是 21 世纪有关智能计算中的关键技术之一。 2.遗传算法的特点 遗传算法是一种基于群体的搜索算法,在具体的搜索过程中,它主要有以下的特点: (1)遗传算法同时使用多个搜索点搜索信息,而不是从单个解开始。这是遗传算法与 传统优化算法的极大区别。遗传算法对最优解的搜索过程,是从一个由很多个体组成的初始 种群开始的。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算 法从串集开始搜索,覆盖面大,利于全局择优。 (2)遗传算法直接以目标函数值作为搜索信息。 它仅使用由目标函数值变换来的适 应度函数值,就可确定进一步的搜索方向和搜索范围,而不需要目标函数的导数值等其他一 些辅助信息。实际应用中,很多函数无法或者很难求导,对于这类目标函数的优化和组合优 化问题,遗传算法就显示了其高度的优越性,因为它避开了函数求导这个障碍。 (3)遗传算法是一种基于概率的搜索技术,而非确定的精确规则。GA 中的选择、交叉、 变异等运算都是以一种概率的方式进行的,增加搜索过程的灵活性。虽然这种概率特性也会 使全体中产生一些适应度不高的个体,但随着进化过程的进行,新的个体中总会更多的产生 出优良的个体。与其他算法相比,遗传算法的鲁棒性使得参数对气搜索效果的影响尽可能小。 (4)遗传算法具有自组织、自适应和自学习等特性。当遗传算法利用进化过程获得信 息自行组织搜索时,适应度大的个体具有较高的生存概率,并获得更适应环境的基因结构。 (5)遗传算法具有隐含并行性。对于规模为 n,位串长为 l 的群体隐含着 2l~n*2l 个 模式,由于交叉作用,并非所有的模式都能以高概率被处理,一些定义距较长的模式将遭到 破坏。 GA 中能够以指数规律处理的模式数量经过 Holland 和 Goldberg 的分析,提出了遗 传算法有效处理的模式个数为 O(n3),称这一性质为隐含并行性。这个特点在运行过程和实 现方法在本质上还是串行的。但对于群体所进行的选择、交叉、变异等运算,产生出新一代 的群体,其中包括了很多群体信息。 这些信息可以避免搜索一些不必搜索的点,相当于搜 索了更多的点,所以这是遗传算法所特有的一种隐含或者说是内在的并行性。 (6)遗传算法具有可扩展性。GA 易于同别的算法(免疫算法、模拟退火算法、爬山法 等)相结合,生成综合双方优势的混合遗传算法。 3.遗传算法的理论研究
3.1 基本遗传算法的数学模型 遗传算法提供了一个求解复杂系统优化问题的通用框架,它不依赖问题的领域和种类。 由于遗传算法是自然遗传学与计算机科学相互渗透而形成的计算方法,所以 GA 中经常会使 用一些有关自然进化的基础术语[8],其中,群体是生物进化过程中的一个小集团,表示可行 解集; 个体是组成群体的单个生物体,表示可行解;染色体是包含生物体所有遗传信息的 化合物,表示可行解的编码;基因是控制生物体某种性状(即遗传信息)的基本单位,表示 可行解编码的分量; 遗传编码将优化比变量转化为基因的组合表示形式,优化变量的编码 机制有二进制编码、实数编码等。 Goldberg 总结的基本遗传算法(也成为标准遗传算法、简单遗传算法,简称 SGA)是 一种最基本的遗传算法。只包含选择、交叉和变异三种基本遗传算子。其数学模型[8]。可表 示为: SGA=(C , E , N ,  ,  ,  ,T ) (3.1) 式中:C -个体的编码方法; E -个体适应度评价函数; P -初始种群; N -种群大小;  -选择算子;  -交叉算子;  -变异算子; T -遗传运算终止条件; 3.2 基本遗传算法的执行流程 生物的进化过程主要是通过染色体之间的交叉和染色体基因的变异来完成的。与此对 应,遗传算法中最优解的搜索过程正是模仿生物的这个进化过程,进行反复迭代,不断地经 过遗传和遗传和进化操作,并且每次都按照优胜劣汰的规则将适应度较高的个体更多地遗传 到下一代,最终在群体中将会得到一个优良的个体,达到或接近于问题的最优解。具体步骤 如下:
(1)初始化。设置进化代数计数器 g=0,设置最大进化代数 G,随机生成 N 个个体作为 初始种群 P(0)。 (2)个体评价。计算群体 P(t)中各个个体的适应度。 (3)选择运算。将选择算子作用于群体,根据个体的适应度,按照一定的规则或者方 法,选择一些优良个体遗传到下一代群体。 (4)交叉运算。将交叉算子作用于群体,对选中的成对个体,以某一概率交换它们之 间的部分染色体,产生新的个体。 (5)变异运算。将变异算子作用于群体,对选中的个体,以某一概率改变某一个或者 某一些基因值为其他的等位基因。群体 P(t)经过选择、交叉和变异运算之后得到下一代群 体 P(t+1)。计算其适应度值,并根据适应度值进行排序,准备进行下一次遗传操作。 (6)终止条件判断。若 gG,则 g=g+1,转到步骤(2);若 g>G,则此进化过程中所得 到的具有最大适应度的个体作为最优解输出,终止计算。 3.3 基本遗传算法的构成要素 SGA 的基本要素包括染色体编码方法、适应度函数、遗传操作和运行参数 3.3.1 染色体编码方法 遗传算法处理的对象是染色体编码串,不能直接处理解空间中的解数据,必须通过编 码将解空间表示成遗传空间的基因型串结构数据。例如,求实数区间[0,4]上函数 f(x)的最 大值,传统的方法是不断调整自变量 x 本身的值,直到获得函数最大值;而 GA 则不对参数 本身进行调整,而是首先将参数进行编码,形成位串,再对位串进行进化操作。常用的有二 进制编码、实数编码、格雷码[9]等。 SGA 使用固定长度的二进制符号串来表示群体中的个体,其等位基因是由二值符号集 {0、1}所组成的。上述求最大值问题,假设使用二进制进行编码,可以由长度为 6 的位串 表示变量 x,即从"000000"到“111111”,并将中间的取值映射到实数区间[0,4]内。由于 从整数上来看,6 位长度的二进制编码位串可以表示 0~63,所以对应[0,4]的区间,每个相 邻值之间的阶跃值为 4/63 ≈0.0635,这个就是编码精度。编码精度越高,所得到的解的质 量也越高,意味着解更为优良,但同时,由于遗传操作所需要的计算量也更大,因此算法的 耗时将更长。一般来说,对于高纬、连续优化问题,由于从一个连续量离散化为一个二进制 量本身存在误差,使得算法很难求得精确解,而要提高解的精度又必须加长编码串的长度,
造成解空间扩大,算法效率降低,同时,二进制编码也不利于反映所求问题的特定知识。 实 数编码是把决策变量直接作为基因位,计算精度高,便于和经典连续优化算法结合,但是缺 点是适用范围有限。 此外,格雷码、多值编码、区间值编码等多种编码方法也都被证明各有优缺点。这些 编码方法(除二进制编码)的提出都是启发式的,缺乏一个理论基础来判断各种编码方法的 好坏并指导它们的设计。 3.3.2 适应度函数 适应度即是生物群体中个体适应生存环境的能力。在 GA 中,适应值是用来区分群体中 个体(问题的解)的好坏,用来评价个体优劣的数学函数,称为个体的适应度函数。GA 正 是基于适应值对个体进行选择,以保证适应值好的个体有机会在下一代中产生更多的个体。 GA 在进化搜索中基本上不用外部信息,仅仅以适应度函数为依据。它的目标函数不受连续 可微的约束,且定义域可以为任意集合。对适应度函数的唯一要求是,针对输入可计算出能 进行比较的结果。在具体应用中,适应度函数的设计要结合求解问题本身的要求而定。适应 度函数评估是选择操作的依据,适应度函数的设计直接影响到遗传算法的性能。常见的适应 度函数构造方法主要有:目标函数线性映射成适应度函数、目标函数非线性(指数函数、幂 函数等)映射成适应度函数、基于序的适应度函数等。 3.3.3 遗传操作 遗传操作是指选择操作、交叉操作和变异操作 (1)选择操作,用来确定交叉个体,以及被选个体将产生多少个子代个体。常用的方 法[10]有: 适应度比例法[16,17]: 遗传操作最基本最常用的选择方法,又称独轮或蒙特卡罗选择。 思想是,各个个体被选中的概率与其适应度大小成正比。由于随机操作的原因,这种方法选 择误差较大,不能保证适应度高的个体一定被选中,这会导致“早熟”。 最佳个体保存法: 又称为精英策略。思想是,把群体中适应度最高的个体不进行配对 交叉而直接复制到下一代。其有点是进化过程中某一代最优解不被遗传操作所破坏,但是有 可能导致局部最优解。该方法可以视为选择操作的一部分,是遗传算法收敛性的一个重要保 证条件,常与其他方法结合使用。
排序选择方法: 计算个体适应度后,按个体适应度大小排序,再根据事先分配的概率 表按序分配各个个体的选择概率,这样选择概率与适应度无直接关系,仅与序号有关。常用 的排序选择方法是采用线性排序选择法[11~13]。文献[14]中考虑到遗传算法整个搜索过程不同 阶段的要求,限定采用非单调适应值标度变换的有效代数范围,以便将探索和开发搜索过程 恰当地结合起来。 截断选择法[4]: 个体按适应度从大到小排序。截取前面占总体 trunc%的最优的个体产 生下一代,后面的个体不能产生下一代。 另外还有联赛选择法[23]、排挤法选择等,每种方法对遗传算法的搜索能力有不同的影 响。 (2)交叉操作是指把两个父代个体的部分结构加以替换重组而生成新个体的操作,是 组合出新个体的过程,是 GA 区别其他进化算法的重要特性。对于采用二进制编码的交叉算 子来说,常见的有一点交叉、两点交叉和均匀交叉。在算法中使用哪种杂交算子能提高算法 的搜索性能是研究者关注的问题,通过文献[20]对函数优化的实验研究表明,均匀杂交比一 点交叉和两点交叉好。但对某些问题,均匀杂交比两点杂交差[30]。对于采用实数编码的交叉 算子来说,也有类似一点杂交、多点杂交和均匀杂交等算子,这些算子称为离散重组算子。 但是实数编码的维度一般不像二进制一样有很多基因位,离散重组算子对于实属编码的求解 问题不能发挥出交叉的本质,会被局限在父代个体之间,所以,对于实数编码的杂交算子一 般采用算术杂交算子。 算术杂交算子包括整体算术杂交算子、线性算术杂交算子等。各种 交叉算子都包括两个基本内容: a. 从由选择操作形成的群体中,对个体随机配对并按预先设定的交叉概率来决 定每队是否需要进行交叉操作 b. 设定配对个体的交叉点,并对这些点前后的配对个体的部分结构进行相互交换。 (3)变异操作在遗传算法中被认为是次要的辅助性算子,但是起着恢复群体多样性、 保证算法的全局收敛的重要作用。变异算子是指将个体染色体编码串中的某些基因位上的基 因值用该基因位上的其他等位基因来替换,从而产生新的个体。变异是子代基因按小概率扰 动产生的变化。其目的是增加群体多样性,避免失去一些有用的基因,防止某些成员的值处 于不变状态,是一种防止算法早熟的措施。变异按照个体编码方式分为二进制变异、实数变 异以及序号变异等。二进制变异是随机产生一行与编码长度相同的(0,1)之间的随机数, 如果这个随机数小于指定的 Pm,则将个体在该变异位上的基因值取反。实数变异为将个体在 变异位上的基因值变为在此位置基因值的取值范围内的任意一个数。一般包括均匀(一致)
变异[18]、非均匀(一致)变异[19]、柯西变异[21]、高斯变异[22]、多项式变异[34]、边界变异等。 序号变异有倒序变异、交叉变异、三交换变异。倒序变异中,随机选择两点,将两点中的串 值颠倒顺序;交叉变异中,随机选择两点,将两点的值交换。三交换变异,随机选择三点, 并随机交换这三点的值。 3.3.4 运行参数 GA 的参数选择包括群体规模 N,杂交概率 Pc 和变异概率 Pm 以及进化代数 T 等。目前 对 GA 的参数设置的合理选择还缺少相应的理论作为指导。 (1) 群体规模 N 将影响遗传优化的最终结果以及遗传算法的执行效率。当群体规模 N 太小时,遗传优化性能一般不会太好。采用较大的群体规模可以减小遗传算法陷入局部最优 解的机会,但较大的群体规模意味着计算复杂度较高,一般 N 取 10~200。 (2) 交叉概率 Pc 控制着交叉操作被使用的频度。较大的交叉概率可以增强遗传算法开 辟心的搜索区域的能力,但是高性能的模式遭到破坏的可能性增大;若交叉概率太低,遗传 算法搜索可能陷入迟钝状态。一般 Pc 取 0.25~1.00. (3) 变异概率 Pm 控制着变异操作被使用的频度。一般低频度的变异可防止群体中重 要基因的可能丢失,高频度的变异将使遗传算法趋于纯粹的随机搜索。通常 Pm 取 0.001~0.1。 (4) 终止进化代数 T 是表示遗传算法运行结束条件的一个参数,它表示遗传算法运行 到指定的进化代数之后就会停止运行,并将当前群体中的最佳个体作为所求问题的最优解输 出。一般视具体问题而定,T 的取值在 100~1000 之间。 4.遗传算法的现状 随着应用领域的扩展,遗传算法的研究出现了几个引人注目的新动向: 一是基于遗传 算法的机器学习,这一新的研究课题把遗传算法从历来离散的搜索空间的优化搜索算法扩展 到具有独特的规则生成功能的崭新的机器学习算法。这一新的学习机制对于解决人工智能中 知识获取和知识优化精炼的瓶颈难题带来了希望。二是遗传算法正日益和神经网络、模糊推 理以及混沌理论等其它智能计算方法相互渗透和结合,这对开拓 21 世纪中新的智能计算技 术将具有重要的意义。三是并行处理的遗传算法的研究十分活跃。这一研究不仅对遗传算法 本身的发展,而且对于新一代智能计算机体系结构的研究都是十分重要的。四是遗传算法和 另一个称为人工生命的崭新研究领域正不断渗透。所谓人工生命即是用计算机模拟自然界丰
富多彩的生命现象,其中生物的自适应、进化和免疫等现象是人工生命的重要研究对象,而 遗 传 算 法 在 这 方 面 将 会 发 挥 一 定 的 作 用 。 五 是 遗 传 算 法 和 进 化 规 划 ( Evolution Programming,EP)以及进化策略(Evolution Strategy,ES)等进化计算理论日益结合。EP 和 ES 几乎是和遗传算法同时独立发展起来的,同遗传算法一样,它们也是模拟自然界生物 进化机制的智能计算方法,即同遗传算法具有相同之处,也有各自的特点。目前,这三者之 间的比较研究和彼此结合的探讨正形成热点。 5.遗传算法的研究进展 遗传算法存在过早收敛、局部搜索能力较弱,从而导致求解效率低和求解精度不够高 的问题,因此在实际应用中需不断改进与完善算法。大多的改进与研究表现在遗传操作的改 进、参数的动态自适应选取、算法融合上,还有小生境技术和分布并行遗传算法等。 (1)遗传操作的改进。体现在选择、交叉和变异的改进上。基于适应值比例的选择策 略,在初期,适应值高的超级个体会被多次选中,适应值底的个体会被过早淘汰,群体多样 性下降,引起过早收敛。在后期,群体集中于最优解附近,个体间适应值差别小,容易退化 为随机选择。个体适应值的标定或调整是解决这些问题的方法之一,常见的有线性标定、截 断法、幂律标定等[2]。徐宗本等[24]提出通过动态改变适应度函数的方法克服遗传算法的过早 收敛是有理论基础的。文献[25]采用指数变换法构造适应度函数模型。文献[27]对实数 GA 的交叉策略进行改进,利用逼近方法定位子代群体的交叉策略,既客服了子代不能超出父代 区间的限制,又强调了 GA 潜在的搜索方向,能使子代个体快速向高质量区域移动。文献[29]、 [31]分别对遗传算法的交叉操作进行了改进。文献[32]提出了一种基于二进制编码基因位的 变异策略,对编码串中的各个基因位赋予不同的变异率。文献[33]提出二元变异算子代替传 统变异算子。文献[35]提出了一个求解函数优化问题的高效演化算法,设计思想由混合选择 策略与分类变异策略构成,即使用锦标赛选择、轮盘赌选择相结合的混合选择策略,对最好 个体实行模式搜索,对适应值排名靠前的个体采用柯西变异,其他个体使用普通变异算子。 (2)参数的自适应选取大多体现在种群规模 N、交叉概率 Pc 和变异概率 Pm 的动态自 适应选取上。群体规模N太小容易过早收敛,太大搜索效率不高。Arabas 等[36]提出了一种 自适应调整群体规模的方法,引入了个体代龄和寿命参数来决定个体的存活代数。Srinivas 等[37]提出了自适应调整 Pc 和 Pm 的策略,计算公式如下:
分享到:
收藏