遗传算法

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

相关

  • 地中海贫血地中海贫血(Thalassemias),又称珠蛋白生成障碍性贫血,海洋性贫血症,简称地贫,是遗传性血液疾病,会造成血红蛋白合成障碍,其症状可依不同分型而有所不同,程度可能从无症状到严重。通常
  • 干电池干电池(Dry cell)的定义是以糊状电解液来产生直流电的化学电池(湿电池则为使用液态电解液的化学电池),大致上分为一次电池及蓄电池两种,是日常生活之中为普遍使用,以及轻便的电池。
  • 5-羟色胺和去甲肾上腺素再摄取抑制剂5-羟色胺和去甲肾上腺素再摄取抑制剂(英语:Serotonin–norepinephrine reuptake inhibitors) (SNRIs),是一种用来治疗重度抑郁症和其他精神障碍的抗抑郁药。SNRI有时候也用来治
  • 锦州市锦州市是中华人民共和国辽宁省下辖的地级市,是辽宁沿海的第二大城市。锦州是连接东北地区和华北地区的交通要冲,也是著名的松锦之战、辽沈战役主战场之一。锦州主城区位于小凌
  • 上院上院可指:
  • 威廉·蒂莫西·高尔斯威廉·蒂莫西·高尔斯爵士,KBE,FRS(英语:Sir William Timothy Gowers,1963年11月20日-),英国数学家、作家,1998年菲尔兹奖得主。高尔斯早年受教于英格兰剑桥郡的国王学院(英语:King's C
  • 1515号染色体是人类23对染色体中的一对,正常人拥有2条15号染色体。15号染色体缠绕了约1亿100万碱基对(构筑DNA的材料),并包含了人类细胞中约3%至3.5%的DNA。每条染色体上的基因识
  • 图书馆学图书馆学是一门研究图书馆收集、加工、整理、保藏、控制、传递和利用文献信息的理论、方法以及图书馆事业发展规律的科学,是一门综合性学科。“图书馆学”一词最早由德国图书
  • 生化生物化学(英语:biochemistry,也作 biological chemistry),顾名思义是研究生物体中的化学进程的一门学科,常常被简称为生化。它主要用于研究细胞内各组分,如蛋白质、糖类、脂类、核
  • 女性健康女性健康(Women's health)是指和女性有关的健康议题,和男性的议题有许多不同之处。女性健康是人口健康(英语:population health)的例子之一,依照WHO的定义,健康“不仅为疾病或虚弱之