遗传算法综述
- 格式:pdf
- 大小:102.83 KB
- 文档页数:3
遗传算法综述王宏杰魏先峰薛周建彭丹(贵州大学电子科学与信息技术学院,贵州贵阳550025)摘要:近年来遗传算法越来越广泛地受到世界各国学者的关注,本文简述了遗传算法的发展、特点及其应用。
关键词:遗传;搜索;遗传算法1引言遗传算法(G enet i c A l gori t hm,缩写为G A),是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。
它是由美国的J.H ol l and 教授1975年首先提出来的,近年来,由于遗传算法求解复杂优化问题的巨大潜力和工程等领域的成功应用,受到了国内外学者的广发关注。
2遗传算法的发展早在上个世纪40年代,就有学者开始研究如何利用计算机进行生物模拟的技术,他们从生物学的角度进行了生物的进化过程模拟、遗传过程模拟等研究工作。
进入60年代后,美国密执安大学的H oll and教授及其学生们受到这种模拟技术的启发,创造出了一种基于生物遗传和进化机制的适合于复杂系统优化计算的自适应概率优化技术…遗传算法。
进入90年代,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。
尤其是遗传算法的应用研究显得格外活跃,不但它的应用领域扩大,而且利用遗传算法进行优化和规则学习的能力也显著提高,同时产业应用方面的研究也在摸索之中。
此外一些新的理论和方法在应用研究中亦得到了迅速的发展,这些无疑都给遗传算法增添了新的活力。
遗传算法的应用研究已从初期的组合优化求解扩展到了许多更新、更工程化的应用方面。
3遗传算法的特点G A是一种利用自然选择和进化思想在高维空间中寻优的方法,它不一定能寻得最优点,但是它可以找到更优点。
因此G A 可能会暂时停留在某些非最优点上,直到变异发生使它跃居到另一个更优点上。
G A寻优过程的一个重要特点是它始终保持整个种群的进化,这样即使某个体在某时刻丧失了有用的特征,这种特征也会被其他个体所保留并延续发展下去。
3D S可以方便灵活地实现对动画帧中的节点、平面、边界、颜色和轨迹的控制,同时对于物体变形测试,轴心点设置以及段信息的获取和设置也能方便准确地进行。
而keyscri p t语言的优点体现在于其精确的数值计算,它可以对大量的复杂无序的动作进行随机计算,节省了制作时间。
利用keyscri p t编辑器还能方便地进行语法检查并能直接执行无语法错误的keyscri p t程序。
3 内存管理方式3D S使用了独特的Pharlap的虚拟内存管理技术(VMM 386),该技术使3D—Studi o能使用比物理内存RAM更大的空间。
这种内存管理方式与W indow2 s T M的内存管理方式不同,因此一般不在W indow s T M中使用3D S,若要在W indow s T M中使用,则必须在W in2 dow s T M的system1in i中的[386Enh]段加入device= Pharlap1386,使W indow s T M可以使用Pharlap的内存管理方式。
这种内存管理方式也有一些不足,如内存一旦被3D S使用将不被释放。
4 硬件环境使用3D—Studi o410的最低配制要求是386(带协处理器)的主机,至少8兆的内存,20兆以上的硬盘空间,DO S313以上的操作系统。
由于3D S中的许多图形渲染时都必须使用256色,且观看3D S自带的一些图片也必须在256色的模式下进行,所以需要SV GA或TV GA的显示器。
输入系统除了键盘外还必须配有鼠标,也可选配数字化仪。
由于3D S在进行图形渲染需要大容量的内存,同时还需要CPU进行大量的浮点运算,因此当CPU为Pen tium T M、内存为16兆以上,并使用高性能的显示卡时,3D S的动画制作功能才能得到完美体现。
由于ln tel公司生产的CPU兼容的Cyrix、AM D等公司生产的CPU浮点运算能力较差,因此CPU首选还是ln tel公司的产品。
遗传算法综述摘要遗传算法(Genetic Algorithm,GA)是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法,其主要特点是群体搜索策略和群体中个体之间的信息交换,搜索不依赖于梯度信息。
它尤其适用于处理传统搜索方法难于解决的复杂和非线性问题,可广泛用于组合优化、机器学习、自适应控制、规划设计和人工生命等领域。
本文从遗传算法的起源谈起,论述了遗传算法的基本思想和基本原理,并对其性能和收敛性进行了分析,最后还介绍了几种改进的遗传算法及其在求解旅行商问题(TSP)方面的应用。
Genetic algorithm ( Genetic, Algorithm, GA ) is a kind of biological natural selection and genetic mechanism of the random search algorithm, its main characteristic is the group searching strategy and individual in the colony between the exchange of information, search does not rely on gradient information. It is especially suitable for the processing of traditional search method to solve the complex and nonlinear problems, can be widely used in combinatorial optimization, machine learning, adaptive control, planning design and artificial life etc.. This article from the origin of the genetic algorithm, the genetic algorithm basic thought and basic principle, and its performance and convergence are analyzed, finally introduces several improved genetic algorithm for solving the traveling salesman problem ( TSP ) with respect to the application.关键词:遗传算法;搜索算法;TSP;遗传算法收敛性Key words: genetic algorithm; search algorithm; TSP; genetic algorithm convergence1 引言在自然界中,生物要生存下去,就必须进行生存斗争。
遗传算法综述太原理工大学刘晶学号:s2*******摘要:遗传算法是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,它借鉴了达尔文的进化论和孟德尔的遗传学说。
其本质是一种高效、并行、全局搜索的方法,它能在搜索过程中自动获得和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最优的方案。
遗传算法作为一种实用、高效、鲁棒性强的优化技术,有着广泛的应用前景。
关键词:遗传算法数学模型优点流程一,概述。
遗传算法(Genetic Algorithm,简称GA)起源于对生物系统所进行的计算机模拟研究。
美国Michigan 大学的Holland 教授及其学生受到生物模拟技术的启发,创造了一种基于生物遗传和进化机制的适应于复杂系统优化的自适应概率优化技术———遗传算法。
二,基本遗传算法的数学模型。
基本遗传算法可表示为:SGA=(C,E,P0,M,Φ,Γ,Ψ,T)式中,C为个体的编码方法;E 为个体适应度评价函数;P0 为初始种群;M为种群大小;Φ为选择算子;Γ为交叉算子;Ψ为变异算子;T为遗传运算终止条件。
三,遗传算法的优点。
3.1 对可行解的广泛性表示。
遗传算法的处理对象不是参数本身,而是针对那些通过参数集进行编码得到的基因个体。
次编码操作使得遗传算法可以直接对结构对象进行操作。
(1)通过对连接矩阵的操作,遗传算法可用来对神经网络或自动机的结构或参数加以优化。
(2)通过对集合的操作,遗传算法可实现对规则集合和知识库的精炼而达到高质量的机器学习目的。
(3)通过对树结构的操作,用遗传算法可得到用于分类的最佳决策树。
(4)通过对任务序列的操作,遗传算法可用于任务规划,而通过对操作序列的处理,可自动构造的顺序控制系统。
3.2 群体搜索特性。
许多传统的搜索方法都是单点搜索,这种点对点的搜索方法,对于多峰分布的搜索空间常常会陷于局部的某个单峰的极值点,相反,遗传算法采用的是同时处理群体中多个个体的方法。
3.3 不需要辅助信息。
遗传算法简述及代码详解声明:本文内容整理自网络,认为原作者同意转载,如有冒犯请联系我。
遗传算法基本内容遗传算法为群体优化算法,也就是从多个初始解开始进行优化,每个解称为一个染色体,各染色体之间通过竞争、合作、单独变异,不断进化。
遗传学与遗传算法中的基础术语比较染色体:又可以叫做基因型个体(individuals)群体/种群(population):一定数量的个体组成,及一定数量的染色体组成,群体中个体的数量叫做群体大小。
初始群体:若干染色体的集合,即解的规模,如30,50等,认为是随机选取的数据集合。
适应度(fitness):各个个体对环境的适应程度优化时先要将实际问题转换到遗传空间,就是把实际问题的解用染色体表示,称为编码,反过程为解码/译码,因为优化后要进行评价(此时得到的解是否较之前解优越),所以要返回问题空间,故要进行解码。
SGA采用二进制编码,染色体就是二进制位串,每一位可称为一个基因;如果直接生成二进制初始种群,则不必有编码过程,但要求解码时将染色体解码到问题可行域内。
遗传算法的准备工作:1) 数据转换操作,包括表现型到基因型的转换和基因型到表现型的转换。
前者是把求解空间中的参数转化成遗传空间中的染色体或者个体(encoding),后者是它的逆操作(decoding)2) 确定适应度计算函数,可以将个体值经过该函数转换为该个体的适应度,该适应度的高低要能充分反映该个体对于解得优秀程度。
非常重要的过程。
遗传算法基本过程为:1) 编码,创建初始群体2) 群体中个体适应度计算3) 评估适应度4) 根据适应度选择个体5) 被选择个体进行交叉繁殖6) 在繁殖的过程中引入变异机制7) 繁殖出新的群体,回到第二步实例一:(建议先看实例二)求 []30,0∈x 范围内的()210-=x y 的最小值1) 编码算法选择为"将x 转化为2进制的串",串的长度为5位(串的长度根据解的精度设 定,串长度越长解得精度越高)。
文献综述1遗传算法的起源当前科学技术正进入多学科互相交叉、互相渗透、互相影响的时代,生命科学与工程科学的交叉、渗透和相互促进是其中一个典型例子,也是近代科学技术发展的一个显著特点。
遗传算法的蓬勃发展正体现了科学发展的这一特点和趋势。
1967年,Holland的学生在博士论文中首次提出“遗传算法”(Genetic Algorithms)一词。
此后,Holland指导学生完成了多篇有关遗传算法研究的论文。
1971年,R.B.Hollstien在他的博士论文中首次把遗传算法用于函数优化。
1975年Holland出版了他的著名专著《自然系统和人工系统的自适应》(Adaptation in Natural and Artificial Systems),这是第一本系统论述遗传算法的专著,因此有人把1975年作为遗传算法的诞生年。
Holland在该书中系统地阐述了遗传算法的基本理论和方法,并提出了对遗传算法的理论研究和发展极其重要的模式理论(schema theory)。
该理论首次确认了结构重组遗传操作对于获得并行性的重要性。
同年,K.A.De Jong完成了他的博士论文《一类遗传自适应系统的行为分析》(An Analysis of the Behavior of a Class of Genetic Adaptive System)。
该论文所做的研究工作,可看作是遗传算法发展进程中的一个里程碑,这是因为,他把Holland的模式理论与他的计算实验结合起来。
尽管De Jong和Hollstien 一样主要侧重于函数优化的应用研究,但他将选择、交叉和变异操作进一步完善和系统化,同时又提出了诸如代沟(generation gap)等新的遗传操作技术。
可以认为,De Jong的研究工作为遗传算法及其应用打下了坚实的基础,他所得出的许多结论,迄今仍具有普遍的指导意义。
进入八十年代,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。
遗传算法简介遗传算法英文全称是Genetic Algorithm,是在1975年的时候,由美国科学家J.Holland从生物界的进化规律之中发现并且提出来的,借助适者生存,优胜劣汰的自然科学规律运用到科学的训练方法之中,对于对象直接进行操作的一种算法。
并且,遗传算法作为一种搜索的方法,已经成为成熟的具有良好收敛性、极高鲁棒性和广泛适用性的优化方法,很好的解决了电力系统的多变量、非线性、不连续、多约束的优化控制问题。
非常多的运用到了生产的方方面面。
可以说遗传算法的研究已经取得了巨大的成功。
2.1.1染色体在具体的使用遗传算法的时候,一般是需要把实际之中的问题进行编码,使之成为一些具有实际意义的码子。
这些码子构成的固定不变的结构字符串通常被叫做染色体。
跟生物学之中一样的,具体的染色体中的每一个字符符号就是一个基因。
总的固定不变的结构字符串的长度称之为染色体长度,每个具体的染色体求解出来就是具体问题之中的一个实际问题的解。
2.1.2群体具体的实际之中的问题的染色体的总数我们称之为群体,群体的具体的解就是实际之中的问题的解的集合。
2.1.3适应度在对于所有的染色体进行具体的编码之后,具体的一条染色体对应着一个实际的数值解,而每个实际的数值解对应着一个相对应的函数,这个函数就是适应度指标,也就是我们数学模型之中常说的目标函数。
2.1.4遗传操作说到遗传算法,不得不提的是遗传算法之中的遗传问题,具体进行遗传的时候有如下操作:1、选择:从上一次迭代过程之中的M个染色体,选择二个染色体作为双亲,按照一定的概率直接遗传到下一代。
2、交叉:从上一次迭代过程之中的M个染色体,选择二个染色体A、B作为双亲,用A、B作为双亲进行生物学之中的交叉操作,遗传到下一代。
3、变异从上一次迭代过程之中的M个染色体,选择一个染色体进行去某一个字符进行反转。
遗传算法综述摘要:遗传算法(genetic algorithms,GA)是一类借鉴生物界自然选择和自然遗传机制的随机搜索算法,适用于处理传统搜索方法难以解决的复杂和非线性优化问题。
遗传算法可广泛应用于组合优化、机器学习、自适应控制、设计和人工生命等领域,是21世纪有关智能计算中的重要技术之一。
本文通过对相关论文的查阅和整理,对遗传算法的研究现状和发展趋势进行了综述并谈论了一些自己的看法。
关键词:遗传算法研究现状发展趋势引言:遗传算法是模拟遗传选择和自然淘汰的生物进化过程的计算模型,由美国Michigan大学的Holland教授于1969年提出,后经DeJong、Goldberg 等人归纳总结,形成一种新的全局优化搜索算法[1]。
遗传算法以其简单通用、鲁棒性强、适于并行处理以及高效、实用等显著特点,在各个领域得到了广泛应用,取得了良好效果,并逐渐成为重要的智能算法之一。
1、遗传算法的基本原理与传统搜索算法不同, 遗传算法从一组随机产生的初始解,称为群体, 开始搜索过程。
群体中的每个个体是问题的一个解,称为染色体。
这些染色体在后续迭代中不断进化, 称为遗传。
遗传算法主要通过交叉、变异、选择运算实现。
交叉或变异运算生成下一代染色体, 称为后代。
染色体的好坏用适应度来衡量。
根据适应度的大小从上一代和后代中选择一定数量的个体, 作为下一代群体, 再继续进化, 这样经过若干代之后, 算法收敛于最好的染色体, 它很可能就是问题的最优解或次优解。
“遗传算法中使用适应度这个概念来度量群体中的各个个体的在优化计算中有可能到达最优解的优良程度。
度量个体适应度的函数称为适应度函数。
适应度函数的定义一般与具体求解问题有关”[2]。
遗传算法包含两个数据转换操作,一个是从表现型到基因型的转换,将搜索空间的参数或解转换成遗传空间中的染色体或个体,这个过程称为编码(coding)。
另一个是从基因型到表现型的转换,即将个体转化成搜索空间中的参数,这个过程称为译码(decode)。
遗传算法综述摘要遗传算法是通过模拟大自然中自然进化的过程并遵循遗传机制来求解问题的最优解的算法。
本文介绍了遗传算法的发展史,并对算法过程中编码方式、适应度函数选择、选择策略、遗传算子处理、参数控制进行了详尽探讨。
关键词:遗传算法;编码;适应度函数;选择策略;遗传算子一、引言遗传算法是在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》也成了一部经典之作。
遗传算法综述刘珺(湘潭大学材料与光电物理学院2009级物理学二班 2009700206)摘要:遗传算法近年来广泛应用于计算机及自动化领域。
本文介绍了遗传算法的起源、发展简史和研究现状,对遗传算法的基本原理和编码问题进行了阐述,介绍了其特点,最后对其发展方向进行了分析和展望。
关键词:遗传算法;编码;并行;进化1 引言遗传算法(Genetic Algorithms 简称GA) 是模拟遗传选择和自然淘汰的生物进化过程的计算模型, 是由Michigan大学Holland教授于1975年首次提出的。
这是一种新的全局优化搜索算法, 因其简单通用, 鲁棒性强, 适于并行处理, 已广泛应用于计算机科学、优化调度、运输问题、组合优化等领域。
2 遗传算法的起源与发展遗传算法来源于达尔文的进化论、魏茨曼的物种选择学说和孟德尔的群体遗传学说。
其基本思想是模拟自然界遗传机制和生物进化论而形成的一种过程搜索最优解的算法。
早在上个世纪40年代,就有学者开始研究如何利用计算机进行生物模拟的技术,他们从生物学的角度进行了生物的进化过程模拟、遗传过程模拟等研究工作。
进入60年代后,美国密歇根大学的Holland教授在对细胞自动机(英文:cellular automata)进行研究时率先提出, 并于1975年出版了颇有影响的专著《Adaptation in Natural and Artificial Systems》,GA这个名称才逐渐为人所知,约翰•霍兰德教授所提出的GA通常为简单遗传算法(SGA)。
在二十世纪八十年代中期之前,对于遗传算法的研究还仅仅限于理论方面,直到在伊利诺伊大学召开了第一届世界遗传算法大会,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。
尤其是遗传算法的应用研究显得格外活跃,不但它的应用领域扩大,而且利用遗传算法进行优化和规则学习的能力也显著提高。
遗传算法的应用研究已从初期的组合优化求解扩展到了许多更新、更工程化的应用方面。
遗传算法总结简介遗传算法(Genetic Algorithm,简称GA)是一种基于生物进化过程中的遗传机制和自然选择原理的优化方法。
它模拟了自然界的进化过程,通过对问题空间中的个体进行选择、交叉和变异等操作,逐步搜索并优化解的过程。
遗传算法被广泛应用于解决各种优化、搜索和机器学习问题。
基本原理遗传算法的基本原理是通过模拟自然选择和遗传机制,寻找问题空间中的最优解。
其主要步骤包括初始化种群、选择操作、交叉操作、变异操作和确定终止条件等。
1.初始化种群:遗传算法的第一步是生成一个初始种群,其中每个个体代表一个可能的解。
个体的编码可以使用二进制、整数或实数等形式,具体根据问题的特点而定。
2.选择操作:选择操作通过根据适应度函数对种群中的个体进行评估和排序,选择较优的个体作为下一代种群的父代。
通常采用轮盘赌选择、竞争选择等方法来进行选择。
3.交叉操作:交叉操作模拟了生物遗传中的交配过程。
从父代个体中选择一对个体,通过交叉染色体的某个位置,生成下一代个体。
交叉操作可以通过单点交叉、多点交叉或均匀交叉等方式进行。
4.变异操作:变异操作引入了种群中的一定程度的随机性,通过改变个体的染色体或基因,以增加种群的多样性。
变异操作可以是位变异、部分反转、插入删除等方式进行。
5.确定终止条件:遗传算法会循环执行选择、交叉和变异操作,直到满足一定的终止条件。
常见的终止条件有达到最大迭代次数、找到最优解或达到计算时间限制等。
优点和局限性优点•遗传算法可以在大规模问题空间中进行全局搜索,不受问题的线性性和连续性限制。
它适用于解决多目标和多约束问题。
•遗传算法具有自适应性和学习能力,通过不断的进化和优胜劣汰过程,可以逐步收敛到最优解。
•遗传算法易于实现和理解,可以直观地表示问题和解决方案。
局限性•遗传算法需要选择合适的编码方式和适应度函数,以及调整交叉和变异的概率等参数。
这些参数的选择对算法的性能和结果有较大影响,需要经验和调整。
遗传算法综述史俊杰摘要:遗传算法来源于进化论和群体遗传学,是计算智能的重要组成部分,正受到众多学科的高度重视。
本文主要回顾了遗传算法的起源和发展历程,并对遗传算法的基本原理及特点作了简要阐述。
进一步指出了遗传算法存在的问题及相应的改进措施,讨论了遗传算法在实际中的应用,并对遗传算法的未来的发展进行了探讨。
关键字:遗传算法,适应度函数,神经网络1.遗传算法的起源遗传算法(Genetic Algorithm,GA)是模拟自然界生物进化机制的一种算法,即遵循适者生存、优胜劣汰的法则,也就是寻优过程中有用的保留,无用的则去除。
在科学和生产实践中表现为,在所有可能的解决方法中找出最符合该问题所要求的条件的解决方法,即找出一个最优解。
这种算法是1960年由Holland提出来的,其最初的目的是研究自然系统的自适应行为,并设计具有自适应功能的软件系统。
2.遗传算法的发展过程从二十世纪六十年代开始,密切根大学教授Holland开始研究自然和人工系统的自适应行为,在这些研究中,他试图发展一种用于创造通用程序和机器的理论。
在六十年代中期至七十年代末期,Bagly发明“遗传算法”一词并发表了第一篇有关遗传算法应用的论文。
1975年竖立了遗传算法发展史上的两块里程碑,一是Holland出版了经典著作“Adaptation in Nature and Artifieial System”,二是Dejong完成了具有指导意义的博士论文“An Analysis of the Behavior of a Class of Genetie Adaptive System”。
进入八十年代,随着以符号系统模仿人类智能的传统人工智能暂时陷入困境,神经网络、机器学习和遗传算法等从生物系统底层模拟智能的研究重新复活并获得繁荣。
进入九十年代,以不确定性、非线性、时间不可逆为内涵,以复杂问题为对象的科学新范式得到学术界普遍认同,如广义进化综合理论。
41开发应用1引言2遗传算法的发展3遗传算法理论与技术3.1基本原理3.2混合遗传算法3.3并行遗传算法遗传算法(GeneticAlgorithms简称GA)是由美国Michigan大学的JohnHolland教授创建的。
它来源于达尔文的进化论、魏茨曼的物种选择学说和孟德尔的群体遗传学说。
其基本思想是模拟自然界遗传机制和生物进化论而形成的一种过程搜索最优解的算法。
目前,遗传算法广泛应用于自动控制、计算科学、模式识别、工程设计、智能故障诊断、管理科学和社会科学领域,适用于解决复杂的非线性和多维空间寻优问题。
早在上个世纪40年代,就有学者开始研究如何利用计算机进行生物模拟的技术,他们从生物学的角度进行了生物的进化过程模拟、遗传过程模拟等研究工作。
进入60年代后,美国密歇根大学的Holland教授及其学生们受到这种模拟技术的启发,创造出了一种基于生物遗传和进化机制的适合于复杂系统优化计算的自适应概率优化技术——遗传算法。
进入90年代,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。
尤其是遗传算法的应用研究显得格外活跃,不但它的应用领域扩大,而且利用遗传算法进行优化和规则学习的能力也显著提高。
遗传算法的应用研究已从初期的组合优化求解扩展到了许多更新、更工程化的应用方面。
遗传算法的研究主要包括三个领域:遗传算法的理论与技术;用遗传算法进行优化;用遗传算法进行分类系统的机器学习。
其中,遗传算法的理论与技术研究主要包括编码、交叉运算、变异运算、选择运算以及适应度评价等问题。
与传统搜索算法不同,遗传算法从一组随机产生的初始解,称为群体,开始搜索过程。
群体中的每个个体是问题的一个解,称为染色体。
这些染色体在后续迭代中不断进化,称为遗传。
遗传算法主要通过交叉、变异、选择运算实现。
交叉或变异运算生成下一代染色体,称为后代。
染色体的好坏用适应度来衡量。
根据适应度的大小从上一代和后代中选择一定数量的个体,作为下一代群体,再继续进化,这样经过若干代之后,算法收敛于最好的染色体,它很可能就是问题的最优解或次优解。
遗传算法中使用适应度这个概念来度量群体中的各个个体在优化计算中有可能到达最优解的优良程度。
度量个体适应度的函数称为适应度函数。
适应度函数的定义一般与具体求解问题有关。
然而,单用简单的遗传算法在许多情况下不是十分有效,容易产生早熟现象以及局部寻优能力较差等问题,于是提出了多种混合算法。
例如,Ackley推荐的遗传爬山法;Mathefoud提出的遗传模拟退火算法;采用遗传算法中增加局部改善运算等等。
混合遗传算法的基本思想是:对于每个新产生的后代在其进入下一代群体之前应用局部优化技术(如爬山法、模拟退火算法等),使之移动到最近的局部最优点。
在混合遗传算法中,运用启发式方法作局部优化,采用遗传算法作全局最优点的探索。
由于遗传算法与传统优化方法的互补性,混合遗传算法通常比单一算法优越。
遗传算法在解决一些实际问题时,由于它一般具有较遗传算法综述刘定理(广东省公安边防总队医院信息科,广东深圳518029)摘要:遗传算法近年来广泛应用于计算机及自动化领域。
本文介绍了遗传算法的起源、发展简史和研究现状,对遗传算法的基本原理和编码问题进行了阐述,介绍了其特点,最后对其发展方向进行了分析和展望。
关键词:遗传算法;编码;并行;进化Summary of the Genetic AlgorithmsLIU Ding-li(The Public Security Forces of Frontier Defense Hospital of Guang Dong Province,Guangdong 518029,China)Abstract:In recent years,genetic algorithms are widely used in the field of computers and automation.This article described the origin of the genetic algorithm,development history and current situation,elaborated the basic principles of genetic algorithms and coding problems,introduced its features.Finally,the direction of its development is analyzed and prospected.Key words:Genetic algorithms;Encoding;Parallel;Evolution收稿日期:修回日期:作者简介:2009-07-252009-08-22刘定理(1982-),男,汉族,学士学位,助理工程师,主要研究领域为医院信息化及软件开发。
大的群体规模,需要对较多的个体进行大量的遗传和进化操作,特别是要对大量的个体进行适应度计算或评价,从而使得算法的进化运算过程进展缓慢,难以达到计算速度的要求,因而遗传算法的并行计算问题受到重视。
并行遗传算法主要从下列四个方面对其进行改进和发展。
(1)个体适应度评价的并行性 个体适应度的评价或计算在遗传算法的运行过程中所占用的运行时间比较长。
通过对个体适应度并行计算方法的研究可找到并行评价个体适应度的算法。
(2)整个群体中各个个体的适应度评价和并行性群体中各个个体适应度之间无相互依赖关系,这样各个个体的适应度计算过程就可以相互独立、并行地进行。
即不同个体的适应度计算可以在不同的处理机上同时进行。
(3)群体产生过程的并行性 在父代群体产生下一代群体过程中,选择操作只与个体的适应度有关,而交叉和变异操作只与参加运算的个体编码有关。
这样,产生群体过程中的选择、交叉、变异操作就可以相互独立地并行进行。
(4)基于群体分组的并行性 可以对群体按一定的方式进行分组,分组后各组的个体遗传进化过程可以在不同的处理机上相互独立地进行,在适当的时候,各处理机之间相互交换信息。
编码是遗传算法要解决的首要问题。
Holland的编码方法是二进制编码,但对于许多遗传算法的应用,特别是在工业工程中的应用,这种简单的编码方法很难直接描述问题的性质。
近十年来,针对特殊问题,人们提出了其它编码方法。
例如:(1)二进制编码。
它是遗传算法中最常用的一种编码方法。
它具有下列一些优点:①编码、解码操作简单易行;②交叉、变异操作便于实现;③符合最小字符集编码原则;④便于利用模式定理对算法进行理论分析。
(2)格雷码编码。
格雷码编码方法是二进制编码方法的一种变形。
其连续的两个整数所对应的编码值之间仅仅只有一个码位是不相同的,其余码位都完全相同。
假设有一个二进制编码为B=bbbb,其对应的格雷码为G=gggg,则:g=b;g=b⊙b,i=m-1,m-2,,1。
格雷码有这样一个特点:任意两个整数的差是这两个整数所对应的格雷码之间的海明距离。
这一特点是遗传算法中使用格雷码来进行个体编码的主要原因。
格雷码除了具有二进制编码的优点外,还能提高遗传算法的局部搜索能力。
(3)实数编码。
对于一些多维、高精度要求的连续函数优化问题,使用二进制编码来表示个体将会带来一些不利,例如,二进制编码存在着连续函数离散化时的映射误差,同时不便于反映所求问题的特定知识。
为了克服这些缺点,人们提出实数编码方法,即个体的每个基因值用实数表示。
实数编码方法的优点如下:①适合于遗传算法中表示范围较大的数;②便于较大空间的遗传搜索;③提高了遗传算法的精度要求;④改善了遗传算法的计算复杂性,提高了运算效率;⑤便于算法与经典优化方法的混合作用;⑥便于设计专门问题的遗传算子。
(4)符号编码方法。
是指染色体编码串中的基因值取自一个无数值含义、而只有代码含义的符号集。
这些符号可以是字符,也可以是数字。
对于非二进制编码,染色体编码与问题的解之间有三个主要问题:①染色体的可行性;②染色体的合法性;③映射的唯一性。
可行性是指染色体编码成为解之后是否在给定问题的可行域内。
染色体的可行性概念源于约束优化问题,无论是传统方法还是遗传算法都必须满足约束。
对于许多优化问题,可行域是用等式或不等式组来表达的。
在这种情况下,许多有效的惩罚法可用来消除不可行的染色体。
在约束优化问题中,最优点通常位于可行域的边界上,惩罚法将迫使遗传搜索从可行域和不可行域两边同时逼近最优点。
合法性是指染色体编码是否代表给定问题的一个解。
染色体的合法性概念源于编码技术。
许多组合优化问题采用了问题专用的编码方法,这些编码方法采用单断点交叉可能会获得非法的后代。
由于非法的染色体不能成为解,这样的染色体不能进行评估,因此惩罚法就无法适用。
这种情况下,通常采用修复方法,将非法染色体转换为合法染色体。
例如,著名的PMX算子就是为解决单断点交叉的非法性而提出的一种将替代编码和修复技术结合起来的双断点交叉方法。
所谓交叉运算,是指对两个相互配对的染色体按某种方式相互交换其部分基因,从而形成两个新的个体。
交叉运算是遗传算法区别于其他进化算法的重要特征,它在遗传算法中起关键作用,是产生新个体的主要方法。
遗传算法中,在交叉运算之前还必须对群体中的个体进行配对,目前常用的配对策略是随机配对。
交叉算子的设计包括两个方面的内容:①如何确定交叉点的位置?②如何进行部分基因的交换?下面介绍几种适用于二进制编码或实数编码的交叉算子。
(1)单点交叉。
又称为简单交叉,它是指在个体编码串中随机设置一个交叉点,然后在该点相互交换两个配对个体的部分基因。
(2)双点交叉。
它的具体操作过程是:①在相互配对的两个个体编码串中随机设置两个交叉点;②交换两个交叉点之间的部分基因。
(3)均匀交叉。
它是指两个配对个体的每一位基因都以相同的概率进行交换,从而形成两个新个体。
具体操作过程如下:①随机产生一个与个体编码长度相同的二进制屏蔽字W=www;②按下列规则从A、B两个父代个体中产生两个新个体X、Y:若w=0,则X的第i个基因继承A的对应基因,Y的第i个基因继承B的对应基因;若w=1,则A、B的第i个基因相互交换,从而生成X、Y的第i个基因。
(4)算术交叉。
它是指由两个个体的线性组合而产生出新的个体。
设在两个个体A、B之间进行算术交叉,则交叉运算后生成的两个新个体X、Y为:X=α+(1-α)B;Y=α+(1-α)A。
3.4编码问题…3.5交叉运算…4遗传算法的特点mm-121mm-121ii+1i121iiAB……mm42中国西部科技2009年9月(上旬)第08卷第25期第186期总流域影响水文特征值的各项因素进行一些分析,可以避免盲目地使用等值线图而未考虑局部下垫面因素所产生的较大误差。