遗传算法

✍ dations ◷ 2024-07-03 08:31:19 #遗传算法
遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最优化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。遗传算法通常实现方式为一种计算机模拟。对于一个最优化问题,一定数量的候选解(称为个体)可抽象表示为染色体,使种群向更好的解进化。传统上,解用二进制表示(即0和1的串),但也可以用其他表示方法。进化从完全随机个体的种群开始,之后一代一代发生。在每一代中评价整个种群的适应度,从当前种群中随机地选择多个个体(基于它们的适应度),通过自然选择和突变产生新的生命种群,该种群在算法的下一次迭代中成为当前种群。在遗传算法里,优化问题的解被称为个体,它表示为一个变量序列,叫做染色体或者基因串。染色体一般被表达为简单的字符串或数字符串,不过也有其他的依赖于特殊问题的表示方法适用,这一过程称为编码。首先,算法随机生成一定数量的个体,有时候操作者也可以干预这个随机产生过程,以提高初始种群的质量。在每一代中,都会评价每一个体,并通过计算适应度函数得到适应度数值。按照适应度排序种群个体,适应度高的在前面。这里的“高”是相对于初始的种群的低适应度而言。下一步是产生下一代个体并组成种群。这个过程是通过选择和繁殖完成,其中繁殖包括交配(crossover,在算法研究领域中我们称之为交叉操作)和突变(mutation)。选择则是根据新个体的适应度进行,但同时不意味着完全以适应度高低为导向,因为单纯选择适应度高的个体将可能导致算法快速收敛到局部最优解而非全局最优解,我们称之为早熟。作为折中,遗传算法依据原则:适应度越高,被选择的机会越高,而适应度低的,被选择的机会就低。初始的数据可以通过这样的选择过程组成一个相对优化的群体。之后,被选择的个体进入交配过程。一般的遗传算法都有一个交配概率(又称为交叉概率),范围一般是0.6~1,这个交配概率反映两个被选中的个体进行交配的概率。例如,交配概率为0.8,则80%的“夫妻”会生育后代。每两个个体通过交配产生两个新个体,代替原来的“老”个体,而不交配的个体则保持不变。交配父母的染色体相互交换,从而产生两个新的染色体,第一个个体前半段是父亲的染色体,后半段是母亲的,第二个个体则正好相反。不过这里的半段并不是真正的一半,这个位置叫做交配点,也是随机产生的,可以是染色体的任意位置。再下一步是突变,通过突变产生新的“子”个体。一般遗传算法都有一个固定的突变常数(又称为变异概率),通常是0.1或者更小,这代表变异发生的概率。根据这个概率,新个体的染色体随机的突变,通常就是改变染色体的一个字节(0变到1,或者1变到0)。经过这一系列的过程(选择、交配和突变),产生的新一代个体不同于初始的一代,并一代一代向增加整体适应度的方向发展,因为总是更常选择最好的个体产生下一代,而适应度低的个体逐渐被淘汰掉。这样的过程不断的重复:评价每个个体,计算适应度,两两交配,然后突变,产生第三代。周而复始,直到终止条件满足为止。一般终止条件有以下几种:遗传算法在解决优化问题过程中有如下特点:最简单的遗传算法将染色体表示为一个数字串,数值变量也可以表示成整数,或者实数(浮点数)。算法中的杂交和突变都是在字节串上进行的,所以所谓的整数或者实数表示也一定要转化为数字形式。例如一个变量的形式是实数,其范围是0~1,而要求的精度是0.001,那么可以用10个数字表示:0000000000表示0,1111111111表示1。那么0110001110就代表0.398。在遗传算法里,精英选择是一种非常成功的产生新个体的策略,它是把最好的若干个个体作为精英直接带入下一代个体中,而不经过任何改变。通过并行计算实现遗传算法一般有两种,一种是所谓粗糙并行遗传算法,即一个计算单元包含一个种群;而另一种是所谓精细并行遗传算法,每一个计算单元处理一个染色体个体。遗传算法有时候还引入其他变量,例如在实时优化问题中,可以在适应度函数中引入时间相关性和干扰。遗传算法擅长解决的问题是全局最优化问题,例如,解决时间表安排问题就是它的一个特长,很多安排时间表的软件都使用遗传算法,遗传算法还经常被用于解决实际工程问题。跟传统的爬山算法相比,遗传算法能够跳出局部最优而找到全局最优点。而且遗传算法允许使用非常复杂的适应度函数(或者叫做目标函数),并对变量的变化范围可以加以限制。而如果是传统的爬山算法,对变量范围进行限制意味着复杂的多的解决过程,这方面的介绍可以参看受限优化问题和非受限优化问题。遗传算法由密歇根大学的约翰·霍兰德和他的同事于二十世纪六十年代在对细胞自动机(英文:cellular automata)进行研究时率先提出。在二十世纪八十年代中期之前,对于遗传算法的研究还仅仅限于理论方面,直到在匹兹堡召开了第一届世界遗传算法大会。随着计算机计算能力的发展和实际应用需求的增多,遗传算法逐渐进入实际应用阶段。1989年,纽约时报作者约翰·马科夫写了一篇文章描述第一个商业用途的遗传算法--进化者(英文:Evolver)。之后,越来越多种类的遗传算法出现并被用于许多领域中,财富杂志500强企业中大多数都用它进行时间表安排、数据分析、未来趋势预测、预算、以及解决很多其他组合优化问题。遗传程序是John Koza与遗传算法相关的一个技术,在遗传程序中,并不是参数优化,而是计算机程序优化。遗传程序一般采用树型结构表示计算机程序用于进化,而不是遗传算法中的列表或者数组。一般来说,遗传程序比遗传算法慢,但同时也可以解决一些遗传算法解决不了的问题。交互式遗传算法是利用人工评价进行操作的遗传算法,一般用于适应度函数无法得到的情况,例如,对于图像、音乐、艺术的设计和“优化”,或者对运动员的训练等。模拟退火是解决全局优化问题的另一个可能选择。它是通过一个解在搜索空间的随机变动寻找最优点的方法:如果某一阶段的随机变动增加适应度,则总是被接受,而降低适应度的随机变动根据一定的概率被有选择的接受。这个概率由当时的退火温度和适应度恶化的程度决定,而退火温度按一定速度降低。从模拟退火算法看,最优化问题的解是通过寻找最小能量点找到的,而不是寻找最佳适应点找到的。模拟退火也可以用于标准遗传算法里,只要把突变率随时间逐渐降低就可以了。

相关

  • 紫斑紫癜或称紫斑是皮肤或粘膜上出现的紫色血块,是小儿出血性疾病中一种常见的疾病;瘀点、瘀斑压之不退色者为其特征;多发于学龄儿童。3毫米~ 10毫米的紫色血块。小于3毫米大小的红
  • 实证医学人体解剖学 - 人体生理学 组织学 - 胚胎学 人体寄生虫学 - 免疫学 病理学 - 病理生理学 细胞学 - 营养学 流行病学 - 药理学 - 毒理学实证医学(英语:Evidence-based medicine
  • 季节性情绪失调季节性抑郁症(英文:Seasonal Affective Disorder,或SAD,以下简称SAD)也叫做“冬季忧郁症”(英语:Winter depression),是一种感情的,或者情绪的失调。大多数的SAD患者在一年的大部分时
  • GABAsubA/subRGABAA受体(又称作γ-氨基丁酸A型受体)是一种离子型受体,而且是一类配体门控型离子通道。此通道的内源性配体是一种被称为GABA的神经递质。GABA是中枢神经系统里的一种主要的递
  • 胎儿窘迫胎儿窘迫(fetal distress),是胎儿宫内缺氧的医学上统称,是一种综合症状。当胎儿的心跳变慢,并且于子宫收缩后保持缓慢,这表示婴儿无法得到足够的氧气。此情况并非罕见,根据医学研究
  • 曲颈龟亚目 Cryptodira 侧颈龟亚目 Pleurodira龟鳖目(学名:Testudines)是脊索动物门爬行纲的一目,现存14科共341种各类龟、鳖,它们的肋骨进化成特殊的骨制和软骨护盾,称为龟甲。龟
  • 5号染色体人类的5号染色体是23对染色体的其中之一,正常状况下每个细胞拥有两条。此染色体含有大约181百万个碱基对,占细胞内所有DNA将近6%。其中有900到1300个基因,依预测方式而有所不同
  • 宫崎大学宫崎大学(日语:みやざきだいがく,英语:University of Miyazaki),是一所位于宫崎县宫崎市的国立大学。2003年大学设置,简称宫大。由原本1949年(昭和24年)设立的旧宫崎大学与1974年(
  • 芝麻油芝麻油(或称麻油、香油)是以芝麻为原料提炼制作的食用油。高温制程之纯芝麻油气味浓香,常呈淡红色或红中带黄。根据加工制作工艺的不同,分为小磨香油、机制香油和大槽香油三类
  • 性状在生物学领域中,性状(Phenotypic trait)又称特征、特性或形质,是指生物的形态、结构和生理生化等特征的总称。性状可定义成生物体显现的单一特征,是由基因所构成的,也可称为可量化