遗传算法综述
- 格式:docx
- 大小:314.15 KB
- 文档页数:9
20世纪50年代末,国外就有人开始进行课程编排问题研究,Judit Csima & C.C. Gotlieb[16]曾形象化描述并提出一个求解课表问题的数学模型,上世纪70年代,Even和Cooper[17]等人证明了排课问题就是一个NP-Hard问题。
而NP 问题除了穷举法没有绝对的求解方法,这有效地回答了排课在应用中遇到困难的原因,同时认识到了课表编排的复杂性,从理论上证明了要解决大规模的排课问题单纯依靠数学方法是行不通的。
印度Vastapur 大学管理学院的Arabinda Tripathy 在1992年进行了课表编排研究,他在进行课表编制过程中,充分地考“人”的因素,并以“人”为单位进行课表编排,但是效果却差强人意[18]。
有学者指出,可以通过适当地减少变量的个数,从而使得在排课时,最大程度地减少计算量,但是,这种思想无疑是不可取的,因为排课属于一个多目标的优化问题,减少变量的个数,人为地造成课程之间的矛盾[19]。
有学者设计了多重课组进行排课,具体是根据学生自主选课的冲突情况,如果选课学生人数过多,教学与教室之间冲突情况严重,则可以在一周内开设一定数量的重复课程,来解决选课学生人数多的矛盾,但是这种方法的随机性较大,无法从根本上解决排课过程中多目标问题。
加拿大Montreal 大学的Jacques A.Ferland 等人通过研究,认为可以将排课问题分解成两个关联程度较高的子问题:即分成时间表和课程分组,并构造相应的启发函数和惩罚因子,来试图解决排课问题[20]。
在排课过程中,Jacques A.Ferland 等人将SAPHIR 课程调度决策支持系统分成多个功能模块,如数据处理、自动优化、交互优化等模块,利用多重课组来协调解决排课过程中出现的主要矛盾[21]。
Colomi 等人将具有自适应寻优能力的遗传算法用于课程编排问题求解,首先与高校教学过程相关的因素进行编码,然后采用遗传算法模拟自然界的选择、交叉、变异算子寻找最优排课方案,并应用到当前一所高中的排课系统中。
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 不需要辅助信息。
遗传算法优化问题研究综述遗传算法是一种基于进化论和遗传学原理的优化算法,被广泛应用于求解复杂问题。
遗传算法具有通用性、自适应性、并行性等优点,因此被应用于各个领域。
本文将综述遗传算法在优化问题中的研究进展和应用情况。
一、遗传算法的基本原理遗传算法是一种群体智能算法,其基本原理来自于进化论和遗传学原理。
整个算法过程可以分为个体编码、适应度评估、选择、交叉和变异五个环节。
个体编码将问题转化为适应度评估可以处理的数值表示形式;适应度评估是对各代种群中每一个个体的适应度进行评估的过程,适应度越好,则个体越可能被选择进行操作;选择是根据个体适应度大小对个体进行筛选,保留好个体进行进化操作;交叉是在选择个体之间进行部分信息交换,产生新的后代;变异是对新后代进行一些可控的随机操作,使其具备某些新性质。
通过这些进化操作,种群可以逐渐进化出适应度更高的个体。
二、遗传算法的改进算法进化策略算法是遗传算法的一种改进算法,其特点在于选择和变异操作。
进化策略算法不对个体进行选择操作,而是将个体分为若干互不干扰的子群。
在每个子群中,个体根据策略进行迭代式改变,直到达到一定停止标准。
与此不同的是,遗传算法的选择和变异操作是在整个种群中进行的。
差分进化算法是遗传算法的另一种改进算法,其特点在于采用差分变异操作。
在差分进化算法中,交叉操作是基于差分变异操作的。
通过选择两个个体以及进行差分,得到新的候选解向量。
由于差分运算减少了变异产生的随机性,提高了算法的收敛速度和效率。
三、遗传算法在优化问题中的应用1.组合优化问题组合优化问题是指通过组合若干元素来构造一个最优解的问题。
遗传算法结合带约束的排序方法可以高效地求解组合优化问题。
具体实现中,可以对候选解按照适应度进行排序,并将排序结果与已知的约束进行比对,从而有效地求出最优解。
2.数值优化问题数值优化问题是指寻找函数或者变量最小或者最大值的问题。
遗传算法可以有效地求解数值优化问题,且相比传统的优化方法有着更快的求解速度和更高的求解精度。
遗传算法综述摘要:近年来遗传算法越来越广泛地受到世界各国学者的关注,本文简述了遗传算法的发展、特点及其应用。
关键词:遗传;搜索;遗传算法1引言遗传算法(Genetic Algorithm,缩写为GA),是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。
它是由美国的J.Holland教授1975年首先提出来的,近年来,由于遗传算法求解复杂优化问题的巨大潜力和工程等领域的成功应用,受到了国内外学者的广发关注。
2遗传算法的发展早在上个世纪40年代,就有学者开始研究如何利用计算机进行生物模拟的技术,他们从生物学的角度进行了生物的进化过程模拟、遗传过程模拟等研究工作。
进入60年代后,美国密执安大学的Holland教授及其学生们受到这种模拟技术的启发,创造出了一种基于生物遗传和进化机制的适合于复杂系统优化计算的自适应概率优化技术---遗传算法。
进入90年代,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。
尤其是遗传算法的应用研究显得格外活跃,不但它的应用领域扩大,而且利用遗传算法进行优化和规则学习的能力也显著提高,同时产业应用方面的研究也在摸索之中。
此外一些新的理论和方法在应用研究中亦得到了迅速的发展,这些无疑都给遗传算法增添了新的活力。
遗传算法的应用研究已从初期的组合优化求解扩展到了许多更新、更工程化的应用方面。
3遗传算法的特点GA是一种利用自然选择和进化思想在高维空间中寻优的方法,它不一定能寻得最优点,但是它可以找到更优点。
因此GA可能会暂时停留在某些非最优点上,直到变异发生使它跃居到另一个更优点上。
GA寻优过程的一个重要特点是它始终保持整个种群的进化,这样即使某个体在某时刻丧失了有用的特征,这种特征也会被其他个体所保留并延续发展下去。
由于GA仅需知道目标函数的信息,而不需要其连续可微等要求,因而具有广泛的适应性。
同时它又是一种采用启发性知识的智能搜索算法,所以往往能在搜索空间高度复杂的问题上取得比其他算法更好的效果。
遗传算法概述1遗传算法概述遗传算法是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的自适应概率性随机化迭代搜索算法。
1975 年,美国Michigan 大学的J.H.Holland 教授在从事机器学习时注意到,学习不仅可以通过单个生物体的适应来完成,而且可以通过一个种群的许多进化适应来加以实现,Kenneth De Jong 将这种算法用来解决优化问题。
Holland 研究GA 是从设计和实现一种能应付变化的、不确定环境的鲁棒性好的自适应系统开始。
他认为这种系统的自适应是从所处的环境中随时得到反馈的函数关系,因而形成了我们今天称之为简单遗传算法的再生计划(Reproductive Plan)。
这种简单的GA 只是一类具有固定种群(Population)规模、个体用固定长度的基因链的抽象模型。
根据适应度(Fitness)来随机地选择双亲,并按交叉(Crossover)和变异(Mutation)算子来产生新的种群。
遗传算法的特点是它的算法中不包含待解决问题所持有的形态。
它是从改变基因的配置来实现问题的整体优化的,因而属于自下而上的优化方法。
类似于生物的进化过程,遗传算法处理的是变量集合的编码而非变量本身。
它直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。
遗传算法的这些特点已被人们广泛地应用于组合优化、机器学习、信号理、自适应控制和人工生命等领域。
它是现代有关智能计算中的关键技术之一。
2.进化计算进化计算[19](Evolutionary Computation,简记为EC)是自60 年代开始发展的一门新兴学科。
它是指以进化原理为仿真依据,按优胜劣汰的自然选择优化规律和方法,在计算机上解决科技领域中难以用传统优化方法解决的优化计算问题的算法和程序,因此有时也称之为进化算法(Evolutionary Algorithms,EA)。
遗传算法综述遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法的一种。
进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。
在阅读了一些相关资料后,我整理出这篇综述,将通过五个部分来介绍遗传算法以及其在计算机科学领域的相关应用、一、起源和发展分支尝试性地将生物进化过程在计算机中模拟并用于优化问题求解开始于20世纪50年代末,其目的是将生物进化的思想引入许多工程问题中而成为一种优化工具,这些开拓性的研究工作形成了遗传算法的雏形。
但当时的研究进展缓慢,收效甚微。
原因是由于缺少一种通用的编码方式,人们只有通过变异才能改变基因结构,而无法使用交叉,因而增加了迭代次数。
同时算法本身需要较大的计算量,当时的计算机速度便无法满足要求,因而限制了这一仿生过程技术的迅速发展。
20世纪60年代中期,Holland在Fraser和Bremermann等人研究成果的基础上提出了位串编码技术,这种编码技术同时适用于变异操作和交叉操作。
遗传算法的真正产生源于20世纪60年代末到70年代初,美国Michigan大学的Holland教授在设计人工适应系统中开创性地使用了一种基于自然演化原理的搜索机制,并于1975年出版了著名的专著“Adaptation in Natural andArtificial Systems”,这些有关遗传算法的基础理论为遗传算法的发展和完善奠定了的基础。
同时,Holland教授的学生De Jong首次将遗传算法应用于函数优化中,设计了遗传算法执行策略和性能评价指标,他挑选的5个专门用于遗传算法数值实验的函数至今仍被频繁使用,而他提出的在线(on-line)和离线(off-line)指标则仍是目前衡量遗传算法优化性能的主要手段。
在Holland教授和他的学生与同事De Jong进行大量有关遗传算法的开创性工作的同时,德国柏林工业大学的Rechenberg和Schwefel等在进行风洞实验时,为了对描述物体形状的参数进行优化以获得更好的实验数据,将变异操作引入计算模型中,获得了意外的优良效果。
实验后,经过进一步系统地研究,形成了进化策略(evolutionary strategies, ES)。
1962年,Fogel等人在设计有穷状态自动机(finite state machine, FSM)时借用进化和思想对一组FSM进行进化,提出了一种模仿人类智能的方法,称为进化编程(evolutionary programming, EP),也叫进化规划(evolutionary planning),随后将其应用于数值优化及神经网络的训练问题中。
这两种算法和遗传算法以及遗传编程(genetic programming, GP)一起构成了目前进化计算的四大分支,它们从不同层次、不同角度模拟自然演化的规律,以达到求解实际问题的目的。
而进化计算则与人工神经网络、模糊理论一起形成一个新的研究方向,即计算智能。
计算智能以生物进化的观点认识和模拟智能,以数据为基础,通过进化过程建立联系而进行问题求解。
人工智能已从传统的基于符号主义向以神经网络为代表的连接主义和以进化计算为代表的进化主义方向发展,形成了新的研究方法。
遗传算法被提出之后立即受到了各国学者的广泛关注,有关遗传算法的研究成果不断涌现。
1968年Holland提出了著名的模式(schema)定理;1975年De Jong 首先尝试将遗传算法用于函数优化,提出了5个测试函数用以测试遗传算法的优化性能;1981年Bethke应用Walsh函数分析模式;1983年Wetzel用遗传算法解决了NP难问题旅行商问题(TSP);1985年Schaffer利用多种群遗传算法研究解决了多目标优化问题;1987年Goldberg等人提出了借助共享函数的小生境遗传算法。
1989年,Goldberg出版专著“Genetic Algorithm inSearch, Optimization, and Machine learning”,对遗传算法的研究产生了非常大的影响。
1992年,Michalewicz出版另一部具有极大影响力的著作“Genetic Algorithm Data Structure Evolutionary Programming”。
从20世纪80年代中期起,遗传算法和进化计算到达一个研究高潮,以遗传算法和进化计算为主题的国际学术会议在世界各地定期召开。
1985年,第一届国际遗传算法会议(international conference on genetic algorithms, ICGA)在美国卡耐基·梅隆大学召开,以后每两年召开一届。
此外,进化规划年会(annual conference on evolutionary programming, ACEP)于1992年在美国的加州召开第一届会议,以后每隔两年召开一届;进化计算会议(IEEE conference on evolutionary computation)也于1994年开始定期召开。
相关的国际学术会议还有很多。
[1]目前遗传算法的主要分支有CHC算法、自适应遗传算法、小生境遗传算法、双倍体遗传算法以及双种群遗传算法。
二、重要人物和经典文章对于遗传算法带来重要影响的人物和相关文献如下:1.J.D.Bagley,1967年在其博士论文中首次提出“遗传算法(Genetic Algorithms)”一词。
2.Fogel等出版了《基于模拟进化的人工智能》,系统阐述了进化规划的思想。
3.R.B.Hollstien,在他的博士论文中首次把遗传算法用于函数优化。
4.Holland,于1975年出版了他的著名专著《自然系统和人工系统的自适应》(Adaptation in Natural and Artificial Systems),这是第一本系统论述遗传算法的专著,因此有人把1975年作为遗传算法的诞生年。
Holland在该书中系统地阐述了遗传算法的基本理论和方法,并提出了对遗传算法的理论研究和发展极其重要的模式理论(schema theory)。
该理论首次确认了结构重组遗传操作对于获得隐并行性的重要性。
5.K.A.De Jong,在1975年完成了他的博士论文《一类遗传自适应系统的行为分析》(An Analysis of the Behavior of a Class of Genetic Adaptive System)。
该论文所做的研究工作,可看作是遗传算法发展进程中的一个里程碑,这是因为,他把Holland的模式理论与他的计算实验结合起来。
尽管De Jong和Hollstien 一样主要侧重于函数优化的应用研究,但他将选择、交叉和变异操作进一步完善和系统化,同时又提出了诸如代沟(generation gap)等新的遗传操作技术。
可以认为,De Jong的研究工作为遗传算法及其应用打下了坚实的基础,他所得出的许多结论,迄今仍具有普遍的指导意义。
6.Smith教授,1980年首次将遗传算法应用于机器学习领域,并研制出一种称作分类器(Cla ssifier)的系统。
7.Goldberg,撰写了《遗传算法在搜索优化和机器学习中的应用》一书,对GA 的原理及应用做了比较详细、全面的论述。
该书至今仍是遗传算法研究中广泛适用的经典之作。
8.D.E.Goldberg,出版了专著《搜索、优化和机器学习中的遗传算法》(Genetic Algorithms in Search , Optimization, and Machine Learning)。
该书总结了遗传算法研究的主要成果,对遗传算法及其应用作了全面而系统的论述。
9.美国斯坦福大学的Koza,基于自然选择原则创造性地提出了用层次化的计算机程序来表达问题的遗传程序设计( genetic programming, GP)方法,成功地解决了许多问题。
他的专著《遗传程序设计:基于自然选择法则的计算机程序设计》”。
1994年,他又出版了《遗传程序设计,第二册:可重用程序的自动发现》深化了遗传程序设计的研究,使程序设计自动化展现了新局面。
10.L.Davis编辑出版了《遗传算法手册》(Handbook of Genetic Algorithms),其中包括了遗传算法在工程技术和社会生活中的大量应用实例。
11.1991年D.Whitey在他的论文中提出了基于领域交叉的交叉算子(Adjacency based crossover),这个算子是特别针对用序号表示基因的个体的交叉,并将其应用到了TSP问题中,通过实验对其进行了验证。
12. 1992年,Michalewicz出版具有极大影响力的著作“Genetic AlgorithmData Structure Evolutionary Programming”。
三、算法结构如下图所示。
[2][3]四、最新研究成果对于优化问题求解的任何搜索算法而言,其收敛性具有重要的理论意义。
因此,遗传算法的收敛性一直是理论研究的一个重要方面。
近几年,在遗传算法全局收敛性的分析方面取得了突破,运用的工具主要是Markov 链。
欺骗问题也是遗传算法的一个研究热点。
根据2008—2010 年三年内遗传算法研究方面发表在EI 源刊上的文章分布情况,分别从研究内容和应用领域两个方面进行统计,结果如图1 所示。
[4]由图1 可以得到如下结论: a) 从研究内容来看,涉及物种多样性、测试函数、遗传算子、参数确定等研究内容的文章占据较大数量; b) 从应用领域来看,针对遗传算法在生产调度及机器人学方面进行研究的文章占多数,在自动控制、组合优化和图像处理方面的研究也占很大一部分比例。
有关遗传算法在函数优化、机器学习、人工生命、数据挖掘及遗传编程方面研究所涉及的文章不是很多。
遗传算法在函数优化和组合优化方面进行研究的文章每年几乎都是最多的,而生产调度及自动控制等实际应用领域的研究成果较少。
遗传算法在数据挖掘和机器学习领域进行研究的文章不多,但在研究成果中所占的比重逐年增长。
结合以上对比分析可知,遗传算法在函数优化及组合优化方面的研究在减少,尤其在函数优化方面减少更明显,但是在生产调度及自动控制等领域的研究比重明显增加,这充分说明遗传算法的研究已经从理论方面逐渐转向应用领域; 机器人学及图像处理也在逐渐成为研究的热点。
涉及数据挖掘研究方面的文章不是很多,但随着数据挖掘技术的广泛应用,遗传算法在数据挖掘领域的研究会成为新的热点。
多智能体进化、免疫进化计算、粒子群遗传算法是这几年研究比较多的题目,对传统遗传算子( 选择、交叉、变异) 的改进也是讨论比较多的话题。
随着应用的不断深入,遗传算法在优化多峰问题时的不足逐渐暴露出来。