朋友们,很多人可能对关于遗传算法和遗传算法的基本原理不是很了解,所以今天我来和大家分享一些关于关于遗传算法和遗传算法的基本原理的知识,希望能够帮助大家更好地了解这个话题。
本文目录一览
关于遗传算法
遗传算法(GeneticAlgorithm,简称GA)是美国Michigan大学的JohnGolland提出的一种建立在自然选择和群体遗传学机理基础上的随机、迭代、进化、具有广泛适用性的搜索方法。现在已被广泛用于学习、优化、自适应等问题中。图4-1给出了GA搜索过程的直观描述。图中曲线对应一个具有复杂搜索空间(多峰空间)的问题。纵坐标表示适应度函数(目标函数),其值越大相应的解越优。横坐标表示搜索点。显然,用解析方法求解该目标函数是困难的。采用GA时,首先随机挑选若干个搜索点,然后分别从这些搜索点开始并行搜索。在搜索过程中,仅靠适应度来反复指导和执行GA搜索。在经过若干代的进化后,搜索点后都具有较高的适应度并接近最优解。
一个简单GA由、杂交和变异三个遗传算子组成:
图4-1GA处理过程
算子(Pr)是把当前群体中的个体,按与适应值成比值的概率到新的群体中。它的作用只是提高群体的平均适应值。由于没有新的个体产生,群体中最好个体的适应值不会得到改进。在算子中,由于低适应值个体趋向于被淘汰,高适应值个体趋向于被,所以群体的这些改进虽具有代表性,但这是以损失群体的多样性为代价的。
杂交算子(Pc)能够产生新的个体,检测空间中新的点。算子每次仅作用在一个个体上,而杂交算子每次作用在随机抽取的两个个体上,按一定概率部分交换相对应的两个串,例如,设两个串
储层特征研究与预测
为配对串,杂交点选在4(冒号所示),则杂交算子的作用结果为:
储层特征研究与预测
一点杂交有时会造成子代与父代相同的情况,这时杂交算子就失去了作用。例如:
储层特征研究与预测
为避免这样情况的发生,实际应用中大多采用两点杂交或多点杂交。杂交算子的应用频率由杂交率C来控制,每代新个体中,有C·N(群体)个串实行杂交,杂交率越高,群体中串的更新就越快,串的性能也就破坏得越快;杂交率过低,搜索会由于太小的探查而停滞不前。排除变异仅有杂交的GA可看做是可吸收的马尔可夫过程。C一般取0.5~0.9。
变异算子(Pm)能够以很小的概率随机地改变染色体中的某些位,从而在恢复由于操作而使群体中损失的多样性方面具有潜在的作用。对于二进制串,就是把相应的位从“1”变为“0”,从“0”变为“1”。排除杂交仅有变异GA相当于并行模拟退火。变异率M通常取0.01~0.1。GA的搜索能力主要是由和杂交赋予的,变异算子则保证了算法能搜索到问题解空间的每一点,从而使算法具有全局最优,它进一步增强了GA的搜索能力。
GA惟一用到的信息就是适应值,每个串都与一个确定的适应值相对应,表明该串所表示的参数组合对给的性能评价标准的适应程度。在遗传算法中,适应值用来区分群体中个体(问题的解)的好坏,适应值越大的个体越好,反之,适应值越小的个体越差。遗传算是基于适应值对个体进行选择,以保证适应性好的个体有机会在下一代中产生更多的子个体。然而在许多问题中,求解目标更自然地被表示成某个代价函数f(x)的极小化,而不是某个利益函数g(x)的极大化;即使问题被表示成极大化形式,仅仅这一点并不能确保利益函数g(x)对所有的x都是非负的。作为这些问题的结果,常常需要通过一次或多次变换把目标函数转化到适应函数F(x)。经常要用到的从目标函数到适应函数的变换为:
储层特征研究与预测
其中参数Cmax的选取有多种方法,可以取为输入参数、到目前为止所得到的f的最大值和在当前群体中或者最近W代中f的最大值。当目标函数是利益函数时,可以直接得到适应函数。
如果出现了负利益函数g(x)值的情形,可以利用下面的变换来克服:
储层特征研究与预测
其中Cmin可以取为输入参数、当前代中或最近W代中g的最小值的绝对值。
GA的主要计算步骤如下:
首先在解空间中取一群点,作为遗传开始的第一代。每个点(基因)用一个二进制的数字串表示,其优先程度用一目标函数来衡量。目标函数值大,表明那个点(基因)好,容易在遗传中生存下去。
在向下一代遗传演变中,首先当前一代中的每个数字串根据由其目标函数值决定的概率被到配对池中。好的数字串以高的概率被下来,劣的数字串被淘汰掉。然后将配对池中的数字串任意配对,并对每一对数字串进行交叉操作,产生新的子孙(数字串)。最后对新的数字串的某些位进行变异。这就产生了新的一代。按照同样的方法,经过数代的遗传演变后,在最后一代中得到全局最优解或近似最优解。
GA的基本框图如图4-2所示,其中变量GEN为当前代数:GA是一种借鉴自然选择和自然遗传机制的高度并行的、随机的自适应搜索算法。隐含并行性和对全局信息的有效利用能力是GA的两大显著特点,前者使GA只须检测少量的结构就能反映搜索空间的大量区域,后者使GA具有稳健性。与传统的搜索方法相比,GA具有以下不同:
(1)GA不是直接作用在参变量集上,而且利用参变量集的某种编码。
(2)GA不是从单个点开始搜索,而是从一个点所在的群体开始搜索,因而能快速全局收敛。
(3)GA利用适应值信息对算法产生的每个染色体进行评估,并基于适应值来选择染色体,使适应性好的染色体比适应性差的染色体有更多的繁殖机会。它不受搜索空间的限制性假设的约束,不必要求诸如连续性、导数存在和单峰等假设,因而具有广泛的适应性。
(4)GA利用权率转移规则,即非确定性规则。通过变异算子的作用,GA在恢复群体失去的多样性等方面具有潜在的作用,因此能搜索离散的、有噪声的、多峰值复杂空间。
(5)GA在解空间内充分的搜索,但并不是盲目的穷举或瞎碰(适应值为选择提供了依据),因此其搜索时耗用效率往往优于其他优化算法。
图4-2常规遗传算法流程图
遗传算法的基本原理
遗传算法本质上是对染色体模式所进行的一系列运算,即通过选择算子将当前种群中的优良模式遗传到下一代种群中,利用交叉算子进行模式重组,利用变异算子进行模式突变。
步骤
基本框架
1.编码
由于遗传算法不能直接处理问题空间的参数,因此必须通过编码将要求解的问题表示成遗传空间的染色体或者个体。这一转换操作就叫做编码,也可以称作(问题的)表示(representation)。
评估编码策略常采用以下3个规范:
(a)完备性(completeness):问题空间中的所有点(候选解)都能作为GA空间中的点(染色体)表现。
(b)健全性(soundness):GA空间中的染色体能对应所有问题空间中的候选解。
(c)非冗余性(nonredundancy):染色体和候选解一一对应。
2.适应度函数
进化论中的适应度,是表示某一个体对环境的适应能力,也表示该个体繁殖后代的能力。遗传算法的适应度函数也叫评价函数,是用来判断群体中的个体的优劣程度的指标,它是根据所求问题的目标函数来进行评估的。
遗传算法在搜索进化过程中一般不需要其他外部信息,仅用评估函数来评估个体或解的优劣,并作为以后遗传操作的依据。由于遗传算法中,适应度函数要比较排序并在此基础上计算选择概率,所以适应度函数的值要取正值。由此可见,在不少场合,将目标函数映射成求最大值形式且函数值非负的适应度函数是必要的。
适应度函数的设计主要满足以下条件:
(a)单值、连续、非负、最大化
(b)合理、一致性
(c)计算量小
(d)通用性强。
在具体应用中,适应度函数的设计要结合求解问题本身的要求而定。适应度函数设计直接影响到遗传算法的性能。
3.初始群体选取
遗传算法中初始群体中的个体是随机产生的。一般来讲,初始群体的设定可采取如下的策略:
(a)根据问题固有知识,设法把握最优解所占空间在整个问题空间中的分布范围,然后,在此分布范围内设定初始群体。
(b)先随机生成一定数目的个体,然后从中挑出最好的个体加到初始群体中。这种过程不断迭代,直到初始群体中个体数达到了预先确定的规模。
总结:以上就是本站针对你的问题搜集整理的答案,希望对你有所帮助。