遗传算法综述
- 格式:doc
- 大小:37.00 KB
- 文档页数:4
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)。
遗传算法综述1 引言遗传算法(Genetic Algorithms 简称GA)是由美国Michigan大学的John Holland教授创建的。
它来源于达尔文的进化论、魏茨曼的物种选择学说和孟德尔的群体遗传学说。
其基本思想是模拟自然界遗传机制和生物进化论而形成的一种过程搜索最优解的算法。
目前,遗传算法广泛应用于自动控制、计算科学、模式识别、工程设计、智能故障诊断、管理科学和社会科学领域,适用于解决复杂的非线性和多维空间寻优问题。
2 遗传算法的发展早在上个世纪40年代,就有学者开始研究如何利用计算机进行生物模拟的技术,他们从生物学的角度进行了生物的进化过程模拟、遗传过程模拟等研究工作。
进入60年代后,美国密歇根大学的Holland教授及其学生们受到这种模拟技术的启发,创造出了一种基于生物遗传和进化机制的适合于复杂系统优化计算的自适应概率优化技术——遗传算法。
进入90年代,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。
尤其是遗传算法的应用研究显得格外活跃,不但它的应用领域扩大,而且利用遗传算法进行优化和规则学习的能力也显著提高。
遗传算法的应用研究已从初期的组合优化求解扩展到了许多更新、更工程化的应用方面。
3 遗传算法理论与关键技术内容遗传算法的研究主要包括三个领域:遗传算法的理论与技术;用遗传算法进行优化;用遗传算法进行分类系统的机器学习。
其中,遗传算法的理论与技术研究主要包括编码、交叉运算、变异运算、选择运算以及适应度评价等问题。
3.1 基本原理与传统搜索算法不同,遗传算法从一组随机产生的初始解,称为群体,开始搜索过程。
群体中的每个个体是问题的一个解,称为染色体。
这些染色体在后续迭代中不断进化,称为遗传。
遗传算法主要通过交叉、变异、选择运算实现。
交叉或变异运算生成下一代染色体,称为后代。
染色体的好坏用适应度来衡量。
根据适应度的大小从上一代和后代中选择一定数量的个体,作为下一代群体,再继续进化,这样经过若干代之后,算法收敛于最好的染色体,它很可能就是问题的最优解或次优解。
遗传算法中使用适应度这个概念来度量群体中的各个个体在优化计算中有可能到达最优解的优良程度。
度量个体适应度的函数称为适应度函数。
适应度函数的定义一般与具体求解问题有关。
3.2 混合遗传算法然而,单用简单的遗传算法在许多情况下不是十分有效,容易产生早熟现象以及局部寻优能力较差等问题,于是提出了多种混合算法。
例如,Ackley 推荐的遗传爬山法;Mathefoud 提出的遗传模拟退火算法;采用遗传算法中增加局部改善运算等等。
混合遗传算法的基本思想是:对于每个新产生的后代在其进入下一代群体之前应用局部优化技术(如爬山法、模拟退火算法等),使之移动到最近的局部最优点。
在混合遗传算法中,运用启发式方法作局部优化,采用遗传算法作全局最优点的探索。
由于遗传算法与传统优化方法的互补性,混合遗传算法通常比单一算法优越。
3.3 并行遗传算法遗传算法在解决一些实际问题时,由于它一般具有较大的群体规模,需要对较多的个体进行大量的遗传和进化操作,特别是要对大量的个体进行适应度计算或评价,从而使得算法的进化运算过程进展缓慢,难以达到计算速度的要求,因而遗传算法的并行计算问题受到重视。
并行遗传算法主要从下列四个方面对其进行改进和发展。
(1)个体适应度评价的并行性个体适应度的评价或计算在遗传算法的运行过程中所占用的运行时间比较长。
通过对个体适应度并行计算方法的研究可找到并行评价个体适应度的算法。
(2)整个群体中各个个体的适应度评价和并行性群体中各个个体适应度之间无相互依赖关系,这样各个个体的适应度计算过程就可以相互独立、并行地进行。
即不同个体的适应度计算可以在不同的处理机上同时进行。
(3)群体产生过程的并行性在父代群体产生下一代群体过程中,选择操作只与个体的适应度有关,而交叉和变异操作只与参加运算的个体编码有关。
这样,产生群体过程中的选择、交叉、变异操作就可以相互独立地并行进行。
(4)基于群体分组的并行性可以对群体按一定的方式进行分组,分组后各组的个体遗传进化过程可以在不同的处理机上相互独立地进行,在适当的时候,各处理机之间相互交换信息。
3.4 编码问题编码是遗传算法要解决的首要问题。
Holland 的编码方法是二进制编码,但对于许多遗传算法的应用,特别是在工业工程中的应用,这种简单的编码方法很难直接描述问题的性质。
近十年来,针对特殊问题,人们提出了其它编码方法。
例如:(1)二进制编码。
它是遗传算法中最常用的一种编码方法。
它具有下列一些点:①编码、解码操作简单易行;②交叉、变异操作便于实现;③符合最小字集编码原则;④便于利用模式定理对算法进行理论分析。
(2)格雷码编码。
格雷码编码方法是二进制编码方法的一种变形。
其连续的个整数所对应的编码值之间仅仅只有一个码位是不相同的,其余码位都完全同。
格雷码有这样一个特点:任意两个整数的差是这两个整数所对应的格雷码间的海明距离。
这一特点是遗传算法中使用格雷码来进行个体编码的主要原因格雷码除了具有二进制编码的优点外,还能提高遗传算法的局部搜索能力。
(3)实数编码。
对于一些多维、高精度要求的连续函数优化问题,使用二进制编码来表示个体将会带来一些不利,例如,二进制编码存在着连续函数离散化时的映射误差,同时不便于反映所求问题的特定知识。
为了克服这些缺点,人们提出实数编码方法,即个体的每个基因值用实数表示。
实数编码方法的优点如下:①适合于遗传算法中表示范围较大的数;②便于较大空间的遗传搜索;③提高了遗传算法的精度要求;④改善了遗传算法的计算复杂性,提高了运算效率;⑤便于算法与经典优化方法的混合作用;⑥便于设计专门问题的遗传算子3.5 交叉运算所谓交叉运算,是指对两个相互配对的染色体按某种方式相互交换其部分基因,从而形成两个新的个体。
交叉运算是遗传算法区别于其他进化算法的重要特征,它在遗传算法中起关键作用,是产生新个体的主要方法。
遗传算法中,在交叉运算之前还必须对群体中的个体进行配对,目前常用的配对策略是随机配对。
交叉算子的设计包括两个方面的内容:①如何确定交叉点的位置? ②如何进行部分基因的交换? 下面介绍几种适用于二进制编码或实数编码的交叉算子。
(1)单点交叉。
又称为简单交叉,它是指在个体编码串中随机设置一个交叉点,然后在该点相互交换两个配对个体的部分基因。
(2)双点交叉。
它的具体操作过程是:①在相互配对的两个个体编码串中随机设置两个交叉点;②交换两个交叉点之间的部分基因。
(3)均匀交叉。
它是指两个配对个体的每一位基因都以相同的概率进行交换,从而形成两个新个体。
具体操作过程如下:①随机产生一个与个体编码长度相同的二进制屏蔽字W=W1,W2…Wi;②按下列规则从A 、B两个父代个体中产生两个新个体X、Y:若Wi =0,则X的第i个基因继承A 的对应基因,Y的第i个基因继承B 的对应基因;若Wi =1,则A、B 的第i个基因相互交换,从而生成X、Y的第i个基因。
(4)算术交叉。
它是指由两个个体的线性组合而产生出新的个体。
设在两个个体A、B之间进行算术交叉,则交叉运算后生成的两个新个体X、Y为:X=α +(1-α)B;Y=α +(1-α)A。
4 遗传算法的特点GA是一种利用自然选择和进化思想在高维空间中寻优的方法,它不一定能寻得最优点,但是它可以找到更优点。
因此GA可能会暂时停留在某些非最优点上,直到变异发生使它跃居到另一个更优点上。
GA寻优过程的一个重要特点是它始终保持整个种群的进化,这样即使某个体在某时刻丧失了有用的特征,这种特征也会被其他个体所保留并延续发展下去。
由于GA仅需知道目标函数的信息,而不需要其连续可微等要求,因而具有广泛的适应性。
同时它又是一种采用启发性知识的智能搜索算法,所以往往能在搜索空间高度复杂的问题上取得比其他算法更好的效果。
5 遗传算法的发展方向5.1基于遗传算法的机器学习这一新的研究方向把遗传算法从历史离散的搜索空间的优化搜索算法扩展到具有独特的规则生成功能的崭新的机器学习算法。
这一新的学习机制对于解决人工智能中知识获取和知识优化精炼的瓶颈难题带来了希望。
5.2遗传算法与其他计算智能方法的相互渗透和结合遗传算法正日益和神经网络、模糊推理以及混沌理论等其他智能计算方法相互渗透和结合,必能达到取长补短的作用。
近年来在这方面已经取得不少研究成果,并形成了“计算智能”的研究领域,这对开拓21世纪中新的智能计算技术将具有重要的意义。
5.3 并行处理的遗传算法GA在操作上具有高度的并行性,许多研究人员都正在探索在并行机上高效执行GA的策略。
近几年也发表了不少这方面的论文,研究表明,只要通过保持多个群体和恰当地控制群体间的相互作用来模拟并执行过程,即使不使用并行计算机,我们也能提高算法的执行效率。
5.4遗传算法与人工生命的渗透人工生命是用计算机、机械等人工媒体模拟或构造出的具有自然生物系统特有行为的人造系统,人工生命与遗传算法有着密切的关系,基于遗传算法的进化模型是研究人工生命现象的重要理论基础。
虽然人工生命的研究尚处于启蒙阶段,但遗传算法已在其进化模型、学习模型、行为模型、自组织模型等方面显示出了初步的应用能力,并且必将得到更为深入的应用和发展。
6 结论遗传算法的研究归纳起来分为理论与技术研究、应用研究两个方面。
理论与技术研究主要从遗传操作、群体大小、参数控制、适应度评价以及并行实现技术等方面来提高遗传算法的性能。
应用研究则是遗传算法的主要方向,开发遗传算法的商业软件、开拓更广泛的遗传算法应用领域是今后应用研究的主要任务。