遗传算法GA

遗传算法(Genetic Algorithms,GA)是一种全局优化方法,它借用了生物遗传学的观点,通过自然选择、遗传、变异等作用机制,实现种群中个体适应性的提高,体现了自然界中“物竞天择、适者生存”的进化过程。

遗传算法是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法,它模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象,在每次迭代中都保留一组候选解,并按某种指标从解群中选取较优的个体,利用遗传算子(选择、交叉和变异)对这些个体进行组合,产生新一代的候选种群,并重复此过程,直到满足某种收敛指标为止。

基本遗传算法(Simple Genetic Algorithms,简称SGA,又称简单遗传算法或标准遗传算法),其遗传进化操作过程简单,容易理解,是其他一些遗传算法的雏形和基础。基本遗传算法由编码(产生初始种群)、适应度函数、遗传算子(选择、交叉、变异)和运行参数组成。

1.编码问题是遗传算法有别于其他进化类算法的重要标志。

编码:由问题空间向遗传算法空间的映射。

解码:有遗传算法空间向问题空间的映射。

遗传算法通过某种编码机制把对象抽象为由特定符号按一定顺序排成的串。基本遗传算法则使用二进制串进行编码,它采用随机方法生成若干个体的集合,该集合称为初始种群,初始种群中个体的数量称为种群规模。个体也可称为染色体,用二进制串表示,二进制串中的每一位则称为基因。

2.遗传算法对个体的好坏用适应度函数值来评价,适应度函数值越大,个体的质量也就越好。适应度函数是遗传算法进化过程的驱动力,也是进行自然选择的唯一标准。

适应度函数的设计直接影响到遗传算法的性能。设计适应度函数的总体原则应使解的优劣性与适应度之间具有严格单调升的函数关系。一般应将目标函数映射成求最大值形式,且适应度函数的值为非负数。

还可以对适应度函数进行定标处理。主要方法有线性定标,sigma截断和乘幂标。对于约束条件可采取惩罚操作,即把约束问题转化为一个附带考虑代价或惩罚的非约束优化问题。

3.有三种基本遗传算子控制着染色体的遗传复制过程,它们时选择算子、交叉算子和变异算子。

选择(复制)算子从种群中按某一概率选择个体,某个体被选择的概率与其适应度值成正比。最常用的实现方法是轮盘赌模型。选择算子的任务就是按照某种方法从父代群体中选取一些个体遗传到下一代群体。遗传算法使用选择算子来实现对群体中的个体进行优胜劣汰操作。

交叉算子是指依据交叉概率,对两个相互配对的染色体按照某种方式相互交换其部分基因,从而形成两个新的个体,其中交叉概率是一个系统参数。交叉能把两个父代个体中的部分结构加以替换重组,生成新个体。对于二值编码问题,各种交叉算子都包括两个基本内容:父本配对选择和交叉点选择。种群的多样性和个体的相似性影响着交叉算子的结果。

变异运算是指依据变异概率将个体编码串中的某些基因值用其他基因值来替换,从而形成一个新的个体。遗传算法中的变异运算时产生新个体的辅助方法,它决定了遗传算法的局部搜索能力,同时保持种群的多样性。变异算子操作包括两个基本步骤:一是随机确定群体中个体待变异的某些基本因素;二是以事先设定或自适应的变异概率对所选定的基因位上的等位基因进行变异。

基本位变异算子:对个体编码串随机指定的某一位或某几位基因做变异运算。

交叉运算和变异运算相互配合,共同完成对搜索空间的全局搜索和局部搜索。

在特殊情况下使用逆转算子,在个体基串中随机挑选两个点,这两个点成为逆转点,然后将这两个逆转点之间的基因反向排列。基因逆转操作的真正目的是实现基因的重新排序操作。

4.遗传算法涉及的主要参数有3个:群体规模n、交叉概率Pc和变异概率Pm。实际应用中,通常可取30《n《60,0.25《Pc《0.75,0.01《Pm《0.2。

遗传算法的数学基础:模式定理和建筑块假设。

模式定理:适应值在群体平均适应值之上的、长度较短的、低阶的模式在GA的迭代过程中将按指数增长率被采样。(模式定理告诉我们,GA根据模式的适应值、长度和阶次来为模式分配搜索次数)

建筑块:短的、低阶的、具有较高适应值的模式。

建筑块混合:建筑块通过遗传算子的作用集合在一起的过程。

当那些构成最优点(或近似最优点)的“建筑块”结合在一起时,就得到了最优点。

模式定理保证了较优模式的样本数呈指数增长,从而使遗传算法找到全局最优解的可能性存在;而建筑块假设则指出了在遗传算子的作用下,能生成全局最优解。

遗传算法的收敛性分析:遗传算法要实现全局收敛,首先要求任意初始种群经有限步都能到达全局最优解;其次,算法必须由保优操作来防止最优解的遗失。与算法收敛性有关的因素主要包括种群规模、选择操作、交叉概率和变异概率。

遗传算法的局限性:在解决某些问题时速度很慢,而且算法对编码方案的依赖性很强,算法的鲁棒性比较差。可归结为:上位效应、编码方案、建筑块假设、早熟收敛。

多基因性:个体的单个表现型特征可能决定于许多基因的相互作用。

基因多效性:单个基因可以同时影响若干个表现型特征。

上位效应:多基因性和基因多效性统称为上位效应。

建筑块假设:指辨识出好的建筑块,并且把这些建筑块组合成更大的建筑块这个思想。

早熟收敛:当通过染色体的交叉和变异,种群已经很难产生优于亲本的子代个体时,就会发生早熟收敛。所有标准形式的交叉简单地重复产生当前亲本,进一步优化将完全依赖于变异,而且可能非常缓慢。

遗传算法的改进措施:对编码方式的改进、对遗传算子的改进、对控制参数的改进、对执行策略的改进。

二进制编码的优点在于编码、解码操作简单,交叉、变异等操作便于实现,缺点在于精度要求较高时,个体编码串较长,使算法的搜索空间急剧扩大,导致遗传算法的性能降低。浮点编码能很好地解决这一问题,浮点编码采用浮点数组来表示解向量。与二进制编码相比,采用浮点编码不仅结果更稳定,收敛时间也更短。

遗传算法的特点:搜索面广、适应性强、容错力高、具有随机性。

遗传规划(Genetic Programming,GP)是一种进化符合一些客观标准程序的方法,与遗传算法有密切联系。它试图研究计算机怎样在没有明显编程的情况下来解决问题。它把不同领域的问题都归结为寻找满足给定约束的计算机程序发现问题,也就是在可能的程序空间中寻找最优或满意的计算机程序。

遗传规划与基本遗传算法具有同样的算法结构,但是编码采用了由数学运算符和变量构成的计算机代码片段。4种基本的遗传规划算子为复制、交叉、变异和插入。

上一篇:用遗传算法GA改进CloudSim自带的资源调度策略(2)


下一篇:两个实用linux小工具