遗传算法

✍ dations ◷ 2025-04-25 01:38:11 #遗传算法
遗传算法(英语: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与遗传算法相关的一个技术,在遗传程序中,并不是参数优化,而是计算机程序优化。遗传程序一般采用树型结构表示计算机程序用于进化,而不是遗传算法中的列表或者数组。一般来说,遗传程序比遗传算法慢,但同时也可以解决一些遗传算法解决不了的问题。交互式遗传算法是利用人工评价进行操作的遗传算法,一般用于适应度函数无法得到的情况,例如,对于图像、音乐、艺术的设计和“优化”,或者对运动员的训练等。模拟退火是解决全局优化问题的另一个可能选择。它是通过一个解在搜索空间的随机变动寻找最优点的方法:如果某一阶段的随机变动增加适应度,则总是被接受,而降低适应度的随机变动根据一定的概率被有选择的接受。这个概率由当时的退火温度和适应度恶化的程度决定,而退火温度按一定速度降低。从模拟退火算法看,最优化问题的解是通过寻找最小能量点找到的,而不是寻找最佳适应点找到的。模拟退火也可以用于标准遗传算法里,只要把突变率随时间逐渐降低就可以了。

相关

  • 退伍军人菌嗜肺军团菌是一种有鞭毛,革兰氏阴性,军团菌属多形态性的短小球杆菌。嗜肺军团菌是一种原发的人类病原体,会引发军团病。嗜肺军团菌不抗酸,无孢子,无荚膜,类似于杆菌。不能分解明胶
  • 分枝杆菌分枝杆菌属(Mycobacterium)为放线菌门下的一个属,且为分枝杆菌科唯一的属。该属细菌包括许多已知在哺乳类动物中造成严重疾病的病原菌,包括结核杆菌(Mycobacterium tuberculosis)
  • 异染性脑白质退化症异染性脑白质退化症(Meta-chromatic leuko-dystrophy、MLD,亦称:异染性脑白质营养不良症、芳基硫酸酯酶A缺乏症<Arylsulfatase A deficiency/ARSA deficiency>、Greenfield's
  • 肾血管性高血压肾血管性高血压(Renovascular hypertension、"肾性高血压"(renal hypertension))是一种综合征、由肾脏荷尔蒙反应将动脉供应肾脏(Renal artery)变窄(肾动脉狭窄)所引起的高
  • 物体在物理学里,物体是一群物质的聚集,被认定为独一的。例如,棒球可以被认为是一个物体;但是,棒球本身乃是由许多粒子形成的。具体而言,物体是可以被经典力学或量子力学的理论描述的;也
  • 磋商谈判是两人或多于两人进行对话,双方企图达成正向的结果。此正向结果可有利于所有谈判参与者,或仅对个别或一些谈判参与者有利。谈判的目标是解决歧见,以获得个别或集体利益,或形
  • 血管紧张素I1N9U, 1N9V, 2JP8, 2WXW, 2X0B· hormone activity · hormone activity · protein binding · growth factor activity · acetyltransferase activator activity ·
  • 映射映射,或者射影,在数学及相关的领域经常等同于函数。基于此,部分映射就相当于部分函数,而完全映射相当于完全函数。在很多特定的数学领域中,这个术语用来描述具有与该领域相关联的
  • 中间体化学动力学中,反应中间体指在一个非基元反应中反应物转化为产物过程出现的中间物种。通常,反应中间体的寿命很短,浓度相对反应物和产物也很低,因此不出现在最终产物中。例如,考虑
  • 滴管滴管(Pasteur pipette、Pipette)是实验室中用于转移少量液体的器皿。滴管为一根开端很窄的中空玻璃管,末端有橡胶球。滴管通常是玻璃制的,但也有的是塑胶制的。通常滴一滴为0.05