遗传算法详解
遗传算法的基本原理和方法
一、编码
编码:把一个问题的可行解从其解空间转换到遗传算法的搜索空间的转换方法。
解码(译码):遗传算法解空间向问题空间的转换。
二进制编码的缺点是汉明悬崖(Hamming Cliff),就是在某些相邻整数的二进制代码之间有很大的汉明距离,使得遗传算法的交叉和突变都难以跨越。
格雷码(Gray Code):在相邻整数之间汉明距离都为1。
(较好)有意义的积木块编码规则:所定编码应当易于生成与所求问题相关的短距和低阶的积木块;最小字符集编码规则,所定编码应采用最小字符集以使问题得到自然的表示或描述。
二进制编码比十进制编码搜索能力强,但不能保持群体稳定性。
动态参数编码(Dynamic Paremeter Coding):为了得到很高的精度,让遗传算法从很粗糙的精度开始收敛,当遗传算法找到一个区域后,就将搜索现在在这个区域,重新编码,重新启动,重复这一过程,直到达到要求的精度为止。
编码方法:
1、 二进制编码方法
缺点:存在着连续函数离散化时的映射误差。不能直接反映出所求问题的本身结构特征,不便于开发针对问题的专门知识的遗传运算算子,很难满足积木块编码原则
2、 格雷码编码:连续的两个整数所对应的编码之间仅仅只有一个码位是不同的,其余码位都相同。
3、 浮点数编码方法:个体的每个基因值用某一范围内的某个浮点数来表示,个体的编码长度等于其决策变量的位数。
4、 各参数级联编码:对含有多个变量的个体进行编码的方法。通常将各个参数分别以某种编码方法进行编码,然后再将他们的编码按照一定顺序连接在一起就组成了表示全部参数的个体编码。
5、 多参数交叉编码:将各个参数中起主要作用的码位集中在一起,这样它们就不易于被遗传算子破坏掉。
评估编码的三个规范:完备性、健全性、非冗余性。
二、选择
遗传算法中的选择操作就是用来确定如何从父代群体中按某种方法选取那些个体遗传到下一代群体中的一种遗传运算,用来确定重组或交叉个体,以及被选个体将产生多少个子代个体。
常用的选择算子:
1、 轮盘赌选择(Roulette Wheel Selection):是一种回放式随机采样方法。每个个体进入下一代的概率等于它的适应度值与整个种群中个体适应度值和的比例。选择误差较大。
2、 随机竞争选择(Stochastic Tournament):每次按轮盘赌选择一对个体,然后让这两个个体进行竞争,适应度高的被选中,如此反复,直到选满为止。
3、 最佳保留选择:首先按轮盘赌选择方法执行遗传算法的选择操作,然后将当前群体中适应度最高的个体结构完整地复制到下一代群体中。
4、 无回放随机选择(也叫期望值选择Excepted Value Selection):根据每个个体在下一代群体中的生存期望来进行随机选择运算。方法如下
(1) 计算群体中每个个体在下一代群体中的生存期望数目N。
(2) 若某一个体被选中参与交叉运算,则它在下一代中的生存期望数目减去0.5,若某一个体未被选中参与交叉运算,则它在下一代中的生存期望数目减去1.0。
(3) 随着选择过程的进行,若某一个体的生存期望数目小于0时,则该个体就不再有机会被选中。
5、 确定式选择:按照一种确定的方式来进行选择操作。具体操作过程如下:
(1) 计算群体中各个个体在下一代群体中的期望生存数目N。
(2) 用N的整数部分确定各个对应个体在下一代群体中的生存数目。
(3) 用N的小数部分对个体进行降序排列,顺序取前M个个体加入到下一代群体中。至此可完全确定出下一代群体中M个个体。
6、无回放余数随机选择:可确保适应度比平均适应度大的一些个体能够被遗传到下一代群 体中,因而选择误差比较小。
7、均匀排序:对群体中的所有个体按期适应度大小进行排序,基于这个排序来分配各个个体被选中的概率。
8、最佳保存策略:当前群体中适应度最高的个体不参与交叉运算和变异运算,而是用它来代替掉本代群体中经过交叉、变异等操作后所产生的适应度最低的个体。
9、随机联赛选择:每次选取几个个体中适应度最高的一个个体遗传到下一代群体中。
10、排挤选择:新生成的子代将代替或排挤相似的旧父代个体,提高群体的多样性。
三、交叉
遗传算法的交叉操作,是指对两个相互配对的染色体按某种方式相互交换其部分基因,从而形成两个新的个体。
适用于二进制编码个体或浮点数编码个体的交叉算子:
1、单点交叉(One-point Crossover):指在个体编码串中只随机设置一个交叉点,然后再该点相互交换两个配对个体的部分染色体。
2、两点交叉与多点交叉:
(1) 两点交叉(Two-point Crossover):在个体编码串中随机设置了两个交叉点,然后再进行部分基因交换。
(2) 多点交叉(Multi-point Crossover)
3、均匀交叉(也称一致交叉,Uniform Crossover):两个配对个体的每个基因座上的基因都以相同的交叉概率进行交换,从而形成两个新个体。
4、算术交叉(Arithmetic Crossover):由两个个体的线性组合而产生出两个新的个体。该操作对象一般是由浮点数编码表示的个体。
四、变异
遗传算法中的变异运算,是指将个体染色体编码串中的某些基因座上的基因值用该基因座上的其它等位基因来替换,从而形成以给新的个体。
以下变异算子适用于二进制编码和浮点数编码的个体:
1、基本位变异(Simple Mutation):对个体编码串中以变异概率、随机指定的某一位或某几位仅因座上的值做变异运算。
2、均匀变异(Uniform Mutation):分别用符合某一范围内均匀分布的随机数,以某一较小的概率来替换个体编码串中各个基因座上的原有基因值。(特别适用于在算法的初级运行阶段)
3、边界变异(Boundary Mutation):随机的取基因座上的两个对应边界基因值之一去替代原有基因值。特别适用于最优点位于或接近于可行解的边界时的一类问题。
4、非均匀变异:对原有的基因值做一随机扰动,以扰动后的结果作为变异后的新基因值。对每个基因座都以相同的概率进行变异运算之后,相当于整个解向量在解空间中作了一次轻微的变动。
5、高斯近似变异:进行变异操作时用符号均值为P的平均值,方差为P2的正态分布的一个随机数来替换原有的基因值。
遗传算法是一种全局优化概率算法,主要的优点有
1.遗传算法对所求解的优化问题没有太多的数学要求,由于他的进化特性,搜素过程中不需要问题的内在性质,对于任意形式的目标函数和约束,无论是线性的还是非线性的,离散的还是连续的都可处理。
2.进化算子的各态历经性使得遗传算法能够非常有效地进行概率意义的全局搜素。
3.遗传算法对于各种特殊问题可以提供极大的灵活性来混合构造领域独立的启发式,从而保证算法的有效性。
标签传播算法是一种分类算法,还是聚类算法
标签传播是一种半监督的分类算法。流程是在图中,将有标签数据的标签向近邻传播出去,直到稳定,即所有样本的标签信息都传播的稳定不再变动了。此时所有无标签数据的标签信息得到了准确的估计。聚类是根据样本之间的相似度对数据集进行划分,而不是利用已知的标签信息进行分类。
如何理解神经网络里面的反向传播算法
我们可以很轻易的用一个感知机模型(感知器算法)来实现一个逻辑与(and),逻辑或(or)和逻辑或取反的感知器模型,(感知器模型算法链接),因为上述三种模型是线性可分的。但是,如果我们用感知器模型取实现一个逻辑非异或(相同为1,不同为0),我们的训练模型的所有输出都会是错误的,该模型线性...
近似消息传递算法的缺点
导致信息的失真和误传。根据查询人人文库官网显示,近似消息传递算法优点在于可以快速地将信息传递给大量的人,缺点在于会导致信息的失真和误传。
[蓝牙系列] 经典\/低功耗蓝牙跳频协议详解(1)--经典蓝牙跳频算法与...
3. 跳频频率与策略蓝牙设备采用时分复用,每个625us时隙对应一个信道。正常情况下每秒跳频1600次,但在数据包超过一个时隙时,跳频频率会降低。经典蓝牙在连接时会达到每秒3200跳频。4. 信道选择算法详解4.1 经典蓝牙跳频 经典蓝牙的跳频机制如图5所示,AFH_channel_map定义了可用信道。RF channel index是...
反向传播算法 为什么 误差 那么定义
自从40年代赫布(D.O.Hebb)提出的学习规则以来,人们相继提出了各种各样的学习算法。其中以在1986年Rumelhart等提出的误差反向传播法,即BP(error BackPropagation)法影响最为广泛。直到今天,BP算法仍然是自动控制上最重要、应用最多的有效算法。是用于多层神经网络训练的著名算法,有理论依据坚实、推导过程...
标签传播算法为什么具有线性时间复杂度
计算公式:K(N)=AO(N)+B线性时间在计算复杂性理论,一个被称为线性时间或Ο(n)时间的算法,表示此算法解题所需时间正比于输入资料的大小,通常以n表示。换句话说,执行时间与输入资料大小为线性比例。例如将一列数字加总的所需时间,正比于串行的长度。
反向传播算法损失函数递增什么原因
损失函数(loss function)也叫代价函数(cost function),用来度量我们的模型得到的的预测值和数据真实值之间的差距,也是一个用来衡量我们训练出来的模型泛化能力好坏的重要指标。由于梯度指数是损失函数上升最快的数值,因此在反向传播算法损失函数递增。
遗传神经网络算法和神经网络算法的区别
最本质的区别可以说是学习方法不同,或者说模型的优化方法不同。前者应该是基于遗传算法进行网络权值的学习,而后者大都是采用反向传播(BP)算法进行权值学习,而这两种算法差异很大。建议你分别了解:1)遗传算法 2)反向传播算法
CRNN算法详解
文字识别是对序列的预测方法,所以采用了对序列预测的RNN网络。通过CNN将图片的特征提取出来后采用RNN对序列进行预测,最后通过一个CTC的翻译层得到最终结果。所以CRNN算法主要采用的是CNN+RNN+CTC三层网络结构,从下到上,依次为:(1)卷积层,使用CNN,从输入图像中提取特征序列;(2)循环层,使用RNN...
以下是哪个模型的倒推法
以下是神经网络模型的倒推法(Backpropagation)。神经网络模型的倒推法是一种通过反向传播误差来更新神经网络权重的方法。它是一种监督学习方法,其基本思想是将一个输入样本从输入层传递到输出层,然后计算输出层的误差,并将误差反向传播到每个神经元,从而更新权重。具体来说,倒推法的过程包括以下步骤...
欧咱艾丰: 遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法.遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个...
石景山区13746318357: 遗传算法(借鉴生物界进化规律的计算模型) - 搜狗百科?
欧咱艾丰: 遗传算法(Genetic Algorithms or GAs)是基于自然选择和自然遗传机制的搜索算法,它是一种有效的解决最优化问题的方法.遗传算法最早是由美国Michigan大学的John Holland和他的同事及学生提出的.类似于自然界演化的基本法则,“适...
石景山区13746318357: 遗传算法是什么?? - ?
欧咱艾丰: 遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法. 遗传算法(Genetic Algorithms简称GA)是由美国Michigan大学的John Holland教授于20世纪60年代末创建的.它来源...
石景山区13746318357: 遗传算法是什么? ?
欧咱艾丰: 选择算子 一般随机选择 赌轮选择都可以 交叉算子 01编码的 ,传统的类似于基因串的交叉方式. 实数编码的.通常是 P(t 1,m) = aP(t,x) (1-a)P(t,y) a∈(0,1)之间交叉,这个交叉方法基本上不收敛.我的经验是把a改成(0,2)之间收敛的效果很好.当然(0,1.75)~(0,2)之间的貌似都可以.具体原因我还在分析中.
石景山区13746318357: 遗传算法的基本运算过程是什么? ?
欧咱艾丰: 遗传算法的基本运算过程如下:a)初始化:设置进化代数计数器t0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)
石景山区13746318357: 遗传算法思想 - ?
欧咱艾丰: 首先初始化,包括种群的大小,编码的方案,遗传的代数,变异的概率,等等;然后进行选择操作;接着是将选择的个体进行交叉,;然后再进行选择,并将选择的个体进行变异;最后就是更新最优值了.大体过程就是这样了.
石景山区13746318357: 遗传算法的核心是什么?! - ?
欧咱艾丰: 遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法.
石景山区13746318357: 什么是遗传算法实值变量 - ?
欧咱艾丰: 1.2 遗传算法的原理 遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串.并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解.然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中...
石景山区13746318357: 能介绍一下遗传算法吗? ?
欧咱艾丰: 即是由二进制字符集{0,1}产生通常的0,1字符串来表示问题空间的候选解