我的生活随笔

遗传算法的基本原理,遗传算法的基本原理图

  很多朋友对于遗传算法的基本原理和遗传算法的基本原理图不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

  在自然界生物进化过程中起核心作用的是生物遗传基因的重组(加上变异)。同样,遗传算法中起核心作用的是遗传操作的交叉算子。所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作。通过交叉,遗传算法的搜索能力得以飞跃提高。

  交叉算子根据交叉率将种群中的两个个体随机地交换某些基因,能够产生新的基因组合,期望将有益基因组合在一起。

  a)完备性(completeness):问题空间中的所有点(候选解)都能作为GA空间中的点(染色体)表现。

  而二进制编码是目前遗传算法中最常用的编码方法。即是由二进制字符集{0,1}产生通常的0,1字符串来表示问题空间的候选解。

  遗传算法(GeneticAlgorithm,GA)是一种进化计算(EvolutionaryComputing)算法,属于人工智能技术的一部分。遗传算法最早是由JohnHolland和他的学生发明并改进的,源于对达芬奇物种进化理论的模仿。在物种进化过程中,为了适应环境,好的基因得到保留,不好的基因被淘汰,这样经过很多代基因的变化,物种的基因就是当前自然环境下适应度最好的基因。该算法被广泛应用于优化和搜索中,用于寻求最优解(或最优解的近似),其最主要的步骤包括交叉(crossover)和突变(mutation)。

 水稻插秧机价格,港澳价格 所有的生物体都由细胞组成,每个细胞中都包含了同样的染色体(chromosome)。染色体由一串DNA组成,我们可以简单地把一个生物个体表示为一条染色体。每条染色体上都包含着基因,而基因又是由多个DNA组成的。每个基因都控制着个体某个性状的表达,例如眼睛的颜色、眼皮的单双等。在物种繁衍的过程中,首先发生交叉,来自于父母的染色体经过分裂和重组,形成后代的染色体。之后,后代有一定概率发生基因突变,即染色体上某个位置处的基因以一定概率发生变化。之后,对每一代都重复进行交叉和突变两个步骤。对于每一个后代,我们可以通过一定的方式测量其适应度。适应度越好的个体,在下一次交叉中被选中的概率越大,它的基因越容易传给下一代。这样,后代的适应度就会越来越好,直到收敛到一个稳定值。

  在优化问题中,可行解总是有很多个,我们希望寻找一个最优解,它相对于其他可行解来说具有更好的适应度(即目标函数值更大或更小)。每个可行解就是一个“生物个体”,可以表示为状态空间中的一个点和适应度。每个解都是一个经过编码的序列,已二进制编码为例,每个解都是一个二进制序列。这样每个染色体就是一个二进制序列。遗传算法从从一组可行解开始,称为population,从population中随机选择染色体进行交叉产生下一代。这一做法的基于下一代的适应度会好于上一代。遗传算法的过程如下:

  终止条件可以是达到了最大迭代次数,或者是前后连续几代的最优染色体的适应度差值小于一个阈值。以上算法描述也许还不够直观,我们举例说明。假设解可以用二进制编码表示,则每个染色体都是一个二进制序列。假设序列长度为16,则每个染色体都是一个16位的二进制序列:

  首先,我们随机生成一个population,假设populationsize为20,则有20个长度为16的二进制序列。计算每个染色体的适应度,然后选取两个染色体进行交叉,如下图所示。下图在第6为上将染色体断开再重组,断开的位置是可以随机选择的。当然,断裂位置也可以不止一个。可以根据具体问题选择具体的交叉方式来提升算法性能。

  之后,随机选取后代染色体上某个基因发生基因突变,突变的位置是随机选取的。并且,基因突变并不是在每个后代上都会发生,只是有一定的概率。对于二进制编码,基因突变的方式是按位取反:

  上述例子是关于二进制编码的,像求解一元函数在某个区间内的最大最小值就可以使用二进制编码。例如,求解函数f(x)=x+sin(3x)+cos(3x)在区间[0,6]内的最小值。假设我们需要最小值点x保留4位小数,那么求解区间被离散成60000个数。因为2{15}<60000<2{16},所以,需要16位二进制数来表示这60000个可能的解。其中0x0000表示0,0x0001表示0.0001,以此类推。针对这个例子,文末给出了democode.

  然而,在排序问题中无法使用二进制编码,应该采用排列编码(permutationencoding)。例如有下面两个染色体:

  交叉:随机选取一个交叉点,从该出将两个染色体断开。染色体A的前部分组成后代1的前部分,然后扫描染色体B,如果出现了后代1中不包含的基因,则将其顺序加入后代1中。同理,染色体B的前部分组成了后代2的前部分,扫描染色体A获得后代2的后部分。注意,交叉的方式多种多样,此处只是举出其中一种方式。

  此外还有值编码(valueencoding)和树编码(treeencoding)等,具体例子可以参考这个链接:

  在实际的遗传算法中,往往会保留上一代中的少数几个精英(elite),即将上一代population中适应度最好的几个染色体加入到后代的poulation中,同时去除后代population中适应度最差的几个染色体。通过这个策略,如果在某次迭代中产生了最优解,则最优解能够一直保留到迭代结束。

  遗传算法有相当大的引用。遗传算法在游戏中应用的现状在遗传编码时,一般将瓦片的坐标作为基因进行实数编码,染色体的第一个基因为起点坐标,最后一个基因为终点坐标,中间的基因为路径经过的每一个瓦片的坐标。在生成染色体时,由起点出发,随机选择当前结点的邻居节点中的可通过节点,将其坐标加入染色体,依此循环,直到找到目标点为止,生成了一条染色体。重复上述操作,直到达到指定的种群规模。遗传算法的优点:1、遗传算法是以决策变量的编码作为运算对象,可以直接对集合、序列、矩阵、树、图等结构对象进行操作。这样的方式一方面有助于模拟生物的基因、染色体和遗传进化的过程,方便遗传操作算子的运用。另一方面也使得遗传算法具有广泛的应用领域,如函数优化、生产调度、自动控制、图像处理、机器学习、数据挖掘等领域。2、遗传算法直接以目标函数值作为搜索信息。它仅仅使用适应度函数值来度量个体的优良程度,不涉及目标函数值求导求微分的过程。因为在现实中很多目标函数是很难求导的,甚至是不存在导数的,所以这一点也使得遗传算法显示出高度的优越性。3、遗传算法具有群体搜索的特性。它的测绘产品价格,建筑二建挂靠价格搜索过程是从一个具有多个个体的初始群体P(0)开始的,一方面可以有效地避免搜索一些不必搜索的点。另一方面由于传统的单点搜索方法在对多峰分布的搜索空间进行搜索时很容易陷入局部某个单峰的极值点,而遗传算法的群体搜索特性却可以避免这样的问题,因而可以体现出遗传算法的并行化和较好的全局搜索性。4、遗传算法基于概率规则,而不是确定性规则。这使得搜索更为灵活,参数对其搜索效果的影响也尽可能的小。5、遗传算法具有可扩展性,易于与其他技术混合使用。以上几点便是遗传算法作为优化算法所具备的优点。遗传算法的缺点:遗传算法在进行编码时容易出现不规范不准确的问题。

  大家好,如果您还对舍得的意思不太了解,没有关系,今天就由本站为大家分享舍得的意思的知识,包括舍得的意思解释的问题都会给大家分析到,还望可以解决大家的问题,下面我…

  大家好,今天给各位分享梦幻中秋任务的一些知识,其中也会对梦幻中秋任务攻略进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开…

  很多朋友对于遗传算法的基本原理和遗传算法的基本原理图不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!遗传算法的核心是什么!遗传操作的交叉…

  各位老铁们,大家好,今天由我来为大家分享高校人才培养,以及高校人才培养目标的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是…

  大家好,今天小编来为大家解答以下的问题,关于赵本山徒弟王小宝,赵本山弟子王小宝这个很多人还不知道,现在让我们一起来看看吧!赵本山徒弟排名大全赵本山徒弟排名大全如…

  大家好,今天小编来为大家解答以下的问题,关于金庸群侠2,金庸群侠传2攻略这个很多人还不知道,现在让我们一起来看看吧!金庸群侠传2全 攻略(超级详细的 1、首先是…

  老台铁价格,奔驰cla260价格铁们,大家好,相信还有很多朋友对于撬装式加油站设立和撬装式加油站加盟的相关问题不太懂,没关系,今天就由我来为大家分享分享撬装式加油站设立以及撬装式加油站加盟的…

  很多朋友对于什么是小高层和什么是小高层房不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!高层,小高层,多层有什么区别主要区别是,性质不同…

八上语文13单元文学常识,浪漫主义文学常识积累高中,希望以上内容对你有所帮助,在这里分享生活乐趣,表达意见主张,找到实用的生活信息,y讽非的世界观99409,如需了解更多相关信息,请关注本站 中国传媒编导考生文学常识,语文必修五每课文学常识,希望以上内容对你有所帮助,在这里分享生活乐趣,表达意见主张,找到实用的生活信息,y讽非的世界观100249,如需了解更多相关信息,请关注本站

赞(0)
未经允许不得转载:我的生活随笔 » 遗传算法的基本原理,遗传算法的基本原理图

我的生活随笔我的生活随笔