遗传算法简介

上传人:m**** 文档编号:173882359 上传时间:2022-12-13 格式:DOCX 页数:10 大小:140.42KB
收藏 版权申诉 举报 下载
遗传算法简介_第1页
第1页 / 共10页
遗传算法简介_第2页
第2页 / 共10页
遗传算法简介_第3页
第3页 / 共10页
资源描述:

《遗传算法简介》由会员分享,可在线阅读,更多相关《遗传算法简介(10页珍藏版)》请在装配图网上搜索。

1、遗传算法遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进 化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它最初由美国Michigan大学J.Holla nd教授于1975年首先提出来的,并出版了颇有影响的专著Adaptation in Natural and Artificial System,GA这个名称才逐渐为人所知,J.Holland教授所提出的 GA通常为简单遗传算法(SGA)。基本概念遗传算法(Genetic Algorithm )是一类借鉴生物界的进化规律(适者生存,优胜劣汰 遗传机制)演化而来的随机化搜索方法。它是

2、由 美国的J.Holland教授1975年首先提 出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有 内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导 优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质, 已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领 域。它是现代有关智能计算中的 关键技术。对于一个求函数最大值的优化问题(求函 数最小值也类同),一般可以描述为下列数学规划模型:Im An遗传算法式中为决策变量,为目标函数式,式2-2、2-3为约束条件,U是基本空间,R是U的 子集。满足约束条

3、件的解 X称为可行解,集合R表示所有满足约束条件的解所组成 的集合,称为可行解集合。遗传算法的基本运算过程如下:a)初始化:设置进化代数 计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。 b)个体 评价:计算群体P(t)中各个个体的适应度。c)选择运算:将选择算子作用于群体。选择 的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下 一代。选择操作是建立在群体中个体的适应度评估基础上的。d)交叉运算;将交叉算子作用于群体。所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个 体的操作。遗传算法中起核心作用的就是交叉算子。e)变异运算:将变异算子

4、作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t 1)。 f)终止条件判断:若tT,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。遗传算法定义遗传算法是从代表问题可能潜在的解集的一个种群( population )开始的,而一个种 群则由经过基因(gene)编码的一定数目的个体(individual)组成。每个个体实际上是染色体(chromosome)带有特征的实体。染色体作为遗传物质的主要载体,即多个基 因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表 现,如黑头发的特征是

5、由染色体中控制这一特征的某种基因组合决定的。因此,在一 开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复 杂,我们往往进行简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣 汰的原理,逐代(gen eration )演化产生出越来越好的近似解,在每一代,根据问题 域中个体的适应度(fitness )大小选择(selection )个体,并借助于自然遗传学的遗 传算子(genetic operators )进行组合交叉(crossover )和变异(mutation ),产生 出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更 加适应于环境

6、,末代种群中的最优个体经过解码(decoding ),可以作为问题近似最 优解。遗传算法特点遗传算法是解决搜索问题的一种通用算法,对于各种通用问题都可以使用。搜索算法 的共同特征为: 首先组成一组候选解; 依据某些适应性条件测算这些候选解 的适应度; 根据适应度保留某些候选解,放弃其他候选解;对保留的候选解进行某些操作,生成新的候选解。在遗传算法中,上述几个特征以一种特殊的方式 组合在一起:遗传算法基于染色体群的并行搜索,带有猜测性质的选择操作、交换操作和突变操作。这种特 殊的组合方式将遗传算法与其它搜索算法区别开来。遗传算法还具有以下几方面的特点:(1)遗传算法从问题解的串集开始嫂索,而不是

7、从单个解开始。这是遗传算法 与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误 入局部最优解。遗传算法从串集开始搜索,覆盖面大,利于全局择优。(2)许多传统搜索算法都是单点搜索算法,容易陷入局部的最优解。遗传算法同时处理群体中的多 个个体,即对搜索空间中的多个解进行评估,减少了陷入局部最优解的风险,同时算 法本身易于实现并行化。(3)遗传算法基本上不用搜索空间的知识或其它辅助信息, 而仅用适应度函数值来评估个体,在此基础上进行遗传操作。适应度函数不仅不受连 续可微的约束,而且其定义域可以任意设定。这一特点使得遗传算法的应用范围大大扩展。(4)遗传算法不是采用确定性规则,

8、而是采用概率的变迁规则来指导他的搜索方向。(5)具有自组织、自适应和自学习性。遗传算法利用进化过程获得的信息自行 组织搜索时,硬度大的个体具有较高的生存概率,并获得更适应 环境的基因结构。 遗传算法的应用由于遗传算法的整体搜索策略和优化搜索方法在计算是不依赖于梯度信息或其它辅 助知识,而只需要影响搜索方向的目标函数和相应的适应度函数,所以遗传算法提供 了一种求解复杂系统问题的通用框架,它不依赖于问题的具体领域,对问题的种类有 很强的鲁棒性,所以广泛应用于许多科学,下面我们将介绍遗传算法的一些主要应用 领域:函数优化函数优化是遗传算法的经典应用领域,也是遗传算法进行性能评价的常用算例,许多 人构

9、造出了各种各样复杂形式的测试函数:连续函数和离散函数、凸函数和凹函数、 低维函数和高维函数、单峰函数和多峰函数等。对于一些非线性、多模型、多目标的 函数优化问题,用其它优化方法较难求解,而遗传算法可以方便的得到较好的结果。组合优化随着问题规模的增大,组合优化问题的搜索空间也急剧增大,有时在目前的计算上用 枚举法很难求出最优解。对这类复杂的问题,人们已经意识到应把主要精力放在寻求 满意解上,而遗传算法是寻求这种满意解的最佳工具之一。实践证明,遗传算法对于 组合优化中的NP问题非常有效。例如遗传算法已经在求解旅行商问题、背包问题、装箱问题、图形划分问题等方面得到成功的应用。此外,GA也在生产调度问

10、题、自动控制、机器人学、图象处理、 人工生命、遗传编码和机器学习等方面获得了广泛的 运用。遗传算法的现状进入90年代,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十 分热门的课题。尤其是遗传算法的应用研究显得格外活跃,不但它的应用领域扩大, 而且利用遗传算法进行优化和规则学习的能力也显著提高,同时产业应用方面的研究也在摸索之中。此外一些新的理论和方法在应用研究中亦得到了迅速的发展,这些无 疑均给遗传算法增添了新的活力。遗传算法的应用研究已从初期的组合优化求解扩展 到了许多更新、更工程化的应用方面。随着应用领域的扩展,遗传算法的研究出现了几个引人注目的新动向:一是基于遗传算法的机

11、器学习,这一新的研究课题把遗传 算法从历来离散的搜索空间的优化搜索算法扩展到具有独特的规则生成功能的崭新 的机器学习算法。这一新的学习机制对于解决 人工智能中知识获取和知识优化精炼的 瓶颈难题带来了希望。二是遗传算法正日益和神经网络、模糊推理以及混沌理论等其 它智能计算方法相互渗透和结合,这对开拓21世纪中新的智能计算技术将具有重要的 意义。三是并行处理的遗传算法的研究十分活跃。这一研究不仅对遗传算法本身的发 展,而且对于新一代智能计算机体系结构的研究都是十分重要的。四是遗传算法和另 一个称为人工生命的崭新研究领域正不断渗透。所谓人工生命即是用计算机模拟自然 界丰富多彩的生命现象,其中生物的自

12、适应、进化和免疫等现象是人工生命的重要研 究对象,而遗传算法在这方面将会发挥一定的作用,五是遗传算法和进化规划(Evolution Programming,EP )以及进化策略(Evolution Strategy,ES )等进化计算 理论日益结合。EP和ES几乎是和遗传算法同时独立发展起来的,同遗传算法一样, 它们也是模拟自然界生物进化机制的智能计算方法,即同遗传算法具有相同之处,也 有各自的特点。目前,这三者之间的比较研究和彼此结合的探讨正形成热点。1991年D.Whitey在他的论文中提出了基于领域交叉的交叉算子(Adjacency based crossover ),这个算子是特别针对

13、用序号表示基因的个体的交叉,并将其应用到了 TSP问题中,通过实验对其进行了验证。D.H.Ackley等提出了随即迭代遗传爬山法(Stochastic Iterated Genetic Hill-climbing ,SIGH )采用了一种复杂的概率选举机制, 此机制中由m个“投票者”来共同决定新个体的值(m表示群体的大小)。实验结果表 明,SIGH与单点交叉、均匀交叉的神经遗传算法相比,所测试的六个函数中有四个 表现出更好的性能,而且总体来讲,SIGH比现存的许多算法在求解速度方面更有竞 争力。H.Bersini和G.Seront将遗传算法与单一方法(simplex method )结合起来,

14、 形成了一种叫单一操作的多亲交叉算子(simplex crossover ),该算子在根据两个母 体以及一个额外的个体产生新个体,事实上他的交叉结果与对三个个体用选举交叉产 生的结果一致。同时,文献还将三者交叉算子与点交叉、均匀交叉做了比较,结果表 明,三者交叉算子比其余两个有更好的性能。国内也有不少的专家和学者对遗传算法的交叉算子进行改进。2002年,戴晓明等应用多种群遗传并行进化的思想,对不同 种群基于不同的遗传策略,如变异概率,不同的变异算子等来搜索变量空间,并利用 种群间迁移算子来进行遗传信息交流,以解决经典遗传算法的收敛到局部最优值问题 2004年,赵宏立等针对简单遗传算法在较大规模

15、组合优化问题上搜索效率不高的现 象,提出了一种用基因块编码的并行遗传算法(Build in g-block Coded Parallel GA ,BCPGA )。该方法以粗粒度并行遗传算法为基本框架,在染色体群体中识别出可能的 基因块,然后用基因块作为新的基因单位对染色体重新编码,产生长度较短的染色体,在用重新编码的染色体群体作为下一轮以相同方式演化的初始群体。2005年,江雷等针对并行遗传算法求解TSP问题,探讨了使用弹性策略来维持群体的多样性,使得算 法跨过局部收敛的障碍,向全局最优解方向进化。遗传算法的一般算法遗传算法是基于生物学的,理解或编程都不太难。下面是遗传算法的一般算法:创建一个

16、随机的初始状态初始种群是从解中随机选择出来的,将这些解比喻为染色体或基因,该种群被称为第 一代,这和符号人工智能系统的情况不一样,在那里问题的初始状态已经给定了。评估适应度对每一个解(染色体)指定一个适应度的值,根据问题求解的实际接近程度来指定(以便 逼近求解问题的答案)。不要把这些“解”与问题的“答案”混为一谈,可以把它理解成为 要得到答案,系统可能需要利用的那些特性。繁殖繁殖(包括子代突变)带有较高适应度值的那些染色体更可能产生后代(后代产生后也 将发生突变)。后代是父母的产物,他们由来自父母的基因结合而成,这个过程被称 为“杂交”。下一代如果新的一代包含一个解,能产生一个充分接近或等于期

17、望答案的输出,那么问题就 已经解决了。如果情况并非如此,新的一代将重复他们父母所进行的繁衍过程,一代 一代演化下去,直到达到期望的解为止。并行计算非常容易将遗传算法用到并行计算和群集环境中。一种方法是直接把每个节点当成一 个并行的种群看待。然后有机体根据不同的繁殖方法从一个节点迁移到另一个节点。 另一种方法是“农场主/劳工”体系结构,指定一个节点为“农场主”节点,负责选择有机 体和分派适应度的值,另外的节点作为“劳工”节点,负责重新组合、变异和适应度函 数的评估。由于遗传算法是由进化论和遗传学机理而产生的搜索算法,所以在这个算法中会用到很多生物遗传学知识,下面是我们将会用来的一些术语说明:染色

18、体(Chromosome)染色体又可以叫做基因型个体(in dividuals), 定数量的个体组成了群体(populatio n), 群体中个体的数量叫做群体大小。基因(Gene)基因是串中的元素,基因用于表示个体的特征。例如有一个串S = 1011,则其中的1,0, 1, 1这4个元素分别称为基因。它们的值称为等位基因 (Alletes)。基因地点(Locus)基因地点在算法中表示一个基因在串中的位置称为基因位置 (Gene Position),有时也 简称基因位。基因位置由串的左向右计算,例如在串S = 1101中,0的基因位置是3。基因特征值(Gene Feature)在用串表示整数时

19、,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8。适应度(Fitness)各个个体对环境的适应程度叫做适应度(fitness)。为了体现染色体的适应能力,引入 了对问题中的每一个染色体都能进行度量的函数,叫适应度函数这个函数是计算个体在群体中被使用的概率。遗传操作是模拟生物基因遗传的做法。在遗传算法中,通过编码组成初始群体后,遗传操作的任务就是对群体的个体按照它们对环境适应度(适应度评估)施加一定的操作,从而实现优胜劣汰的进化过程。从优化搜索的角度而言,遗传操作可使问题遗传过程的解,一代又一代地优化,并逼进最优

20、解。遗传操作包括以下三个基本遗传算子(genetic operator):选择(selection);交叉(crossover);变异(mutation)。这三个遗传算子有如下特点:个体遗传算子的操作都是在随机扰动情况下进行的。因此,群体中 个体向最优解迁移的规则是随机的。需要强调的是,这种随机化操作和传统的随机搜 索方法是有区别的。遗传操作进行的高效有向的搜索而不是如一般随机搜索方法所进 行的无向搜索。遗传操作的效果和上述三个遗传算子所取的操作概率,编码方法, 群体大小,初始群体以及适应度函数的设定密切相关。选择从群体中选择优胜的个体,淘汰劣质个体的操作叫选择。选择算子有时又称为再生算 子(

21、reproduction operator)。选择的目的是把优化的个体(或解)直接遗传到下一代或通 过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评 估基础上的,目前常用的选择算子有以遗传算法下几种:适应度比例方法、随机遍历抽样法、局部选择法、局部选择法。其中轮盘赌选择法 (roulette wheel selection )是最简单也是最常用的选择方法。在该方法中, 各个个体的选择概率和其适应度值成比例。设群体大小为n,其中个体i的适应度为,则i被选择的概率,为遗传算法 显然,概率反映了个体i的适应度在整个群体的个体 适应度总和中所占的比例个体适应度越大。其被选择的

22、概率就越高、反之亦然。计 算出群体中各个个体的选择概率后,为了选择交配个体,需要进行多轮选择。每一轮 产生一个0,1之间均匀随机数,将该随机数作为选择指针来确定被选个体。个体被 选后,可随机地组成交配对,以供后面的交叉操作。交叉在自然界生物进化过程中起核心作用的是生物遗传基因的重组(加上变异)。同样,遗传算法中起核心作用的是遗传操作的交叉算子。所谓交叉是指把两个父代个体的部分 结构加以替换重组而生成新个体的操作。通过交叉,遗传算法的搜索能力得以飞跃提 高。交叉算子根据交叉率将种群中的两个个体随机地交换某些基因,能够产生新的 基因组合,期望将有益基因组合在一起。根据编码表示方法的不同,可以有以下

23、的算 法:a)实值重组(real valued recomb in ati on ) 1)离散重组(discrete recomb in ati on ); 2)中间重组(in termediate recomb in ati on ); 3)线性重组(lin ear recomb in ati on ); 4) 扩展线性重组(exte nded lin ear recombi natio n )。 b)二进制交叉(bi nary valued crossover )1)单点交叉 (single-point crossover );2)多 点交叉 (multiple-pointcrossove

24、r );3)均匀交叉(uniform crossover );4)洗牌交叉(shuffle crossover );5)缩小代理交叉(crossover with reduced surrogate )。 最常用的交叉算子为单点交 叉(one-point crossover)。具体操作是:在个体串中随机设定一个交叉点,实行交叉时,该点前或后的两个个体的部分结构进行互换,并生成两个新个体。下面给出了单点交叉的一个例子:个体A: 1 0 0 1门1 1 1 0 0 1 0 0 0新个体 个体B: 0 0 1 1 fO0 0 0 0 1 1 1 1 1 新个体变异变异算子的基本内容是对群体中的个体串

25、的某些基因座上的基因值作变动。依据个体编码表示方法的不同,可以有以下的算法:a)实值变异;b)二进制变异。 一般来说,变异算子操作的基本步骤如下:a)对群中所有个体以事先设定的编译概率判断是 否进行变异;b)对进行变异的个体随机选择变异位进行变异。遗传算法导引入变异的目的有两个:一是使遗传算法具有局部的随机搜索能力。当遗传算法通过交叉算子 已接近最优解邻域时,利用变异算子的这种局部随机搜索能力可以加速向最优解收 敛。显然,此种情况下的变异概率应取较小值,否则接近最优解的积木块会因变异而 遭到破坏。二是使遗传算法可维持群体多样性,以防止出现未成熟收敛现象。此时收 敛概率应取较大值。遗传算法中,交

26、叉算子因其全局搜索能力而作为主要算子,变异算子因其局部搜索能力而作为辅助算子。遗传算法通过交叉和变异这对相互配合又 相互竞争的操作而使其具备兼顾全局和局部的均衡搜索能力。所谓相互配合是指当群体在进化中陷于搜索空间中某个超平面而仅靠交叉不能摆脱时,通过变异操作可有助于这种摆脱。所谓相互竞争,是指当通过交叉已形成所期望的积木块时,变异操作 有可能破坏这些积木块。如何有效地配合使用交叉和变异操作,是目前遗传算法的一 个重要研究内容。基本变异算子是指对群体中的个体码串随机挑选一个或多个基因 座并对这些基因座的基因值做变动(以变异概率P.做变动),(0,1)二值码串中的基本 变异操作如下:基因位下方标有

27、*号的基因发生变异。变异率的选取一般受种群大小、染色体长度等因素的影响,通常选取很小遗传算法的值,一般取0.001 0.1 o终止条件当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升 时,或者迭代次数达到预设的代数时,算法终止。预设的代数一般设置为100-500代。GA的流程图GA的流程图如右图所示编码遗传算法不能直接处理问题空间的参数,必须把它们转换成遗传空间的由基因按一定 结构组成的染色体或个体。这一转换操作就叫做编码,也可以称作(问题的)表示 (representation)。评估编码策略常采用以下3个规范:a)完备性(completeness):问题 空间中的

28、所有点(候选解)都能作为GA空间中的点(染色体)表现。b)健全性 (soundness): GA空间中的染色体能对应所有问题空间中的候选解。c)非冗余性(nonredundancy):染色体和候选解对应。目前的几种常用的编码技术有二进制编码,浮点数编码,字符编码,变成编码等。而二进值编码是目前遗传算法中最常用的编码方法。即是由二进值字符集0, 1产生通常的0, 1字符串来表示问题空间的候 选解。它具有以下特点:a)简单易行;b)符合最小字符集编码原则;c)便于用模式定理进行分析,因为模式定理就是以基础的。适应度函数进化论中的适应度,是表示某一个体对环境的适应能力,也表示该个体繁殖后代的能 力。

29、遗传算法的适应度函数也叫评价函数,是用来判断群体中的个体的优劣程度的指 标,它是根据所求问题的目标函数来进行评估的。遗传算法在搜索进化过程中一般不需要其他外部信息,仅用评估函数来评估个体或解的优劣,并作为以后遗传操作的 依据。由于遗传算法中,适应度函数要比较排序并在此基础上计算选择概率,所以适 应度函数的值要取正值由此可见,在不少场合,将目标函数映射成求最大值形式且 函数值非负的适应度函数是必要的。适应度函数的设计主要满足以下条件:a)单值、连续、非负、最大化;b)合理、一致性;c)计算量小;d)通用性强。 在具体应用中,适应度函数的设计要结合求解问题本身的要求而定。适应度函数设计直 接影响到遗传算法的性能。初始群体的选取遗传算法中初始群体中的个体是随机产生的。一般来讲,初始群体的设定可采取如下 的策略:a)根据问题固有知识,设法把握最优解所占空间在整个问题空间中的分布范 围,然后,在此分布范围内设定初始群体。b)先随机生成一定数目的个体,然后从中挑出最好的个体加到初始群体中。这种过程不断迭代,直到初始群体中个体数达到 了预先确定的规模。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!