遗传算法编码及算子简介
遗传算法算子

遗传算法算子引言遗传算法是一种基于进化论理论的优化算法,常用于解决复杂的搜索和优化问题。
遗传算法使用模拟生物进化的方式,通过对种群的基因组进行操作来搜索最优解。
其中,算子是遗传算法中用于操作基因组的基本组成部分。
算子包括选择、交叉和变异等操作,它们的作用是模拟生物进化过程中的自然选择、基因重组和突变。
选择算子选择算子是遗传算法中最基本的操作之一,它决定了哪些个体能够生存和繁殖,从而影响种群的进化方向。
常用的选择算子包括轮盘赌选择、竞争选择和排名选择等。
轮盘赌选择轮盘赌选择是一种基于个体适应度的选择算子。
它的原理是将每个个体的适应度值按比例映射到一个区间上,然后通过随机选择一个点来确定被选中的个体。
适应度较高的个体被选中的概率较大,而适应度较低的个体被选中的概率较小。
轮盘赌选择的具体步骤如下: 1. 计算每个个体的适应度值; 2. 将每个个体的适应度值映射到一个区间上,得到一个适应度累积值; 3. 生成一个随机点,根据该随机点在适应度累积值上的位置确定被选中的个体。
轮盘赌选择的优点是简单且易于实现,但随着种群进化的进行,适应度较低的个体被选中的概率会逐渐降低,从而可能导致种群早熟收敛。
竞争选择竞争选择是一种基于竞争关系的选择算子。
它的原理是随机选取一组个体,然后从中选择适应度最高的个体作为被选中的个体。
竞争选择通常使用锦标赛选择和随机选择两种方法。
锦标赛选择的具体步骤如下: 1. 随机选取一组个体作为竞争对手; 2. 从竞争对手中选择适应度最高的个体作为被选中的个体。
竞争选择的优点是能够保留种群中适应度较高的个体,但容易导致种群中适应度较低的个体被淘汰,从而可能导致种群多样性的降低和早熟收敛的问题。
排名选择是一种基于个体排名的选择算子。
它的原理是将每个个体按照适应度从高到低进行排序,然后根据排名选择个体。
排名选择通常使用线性排名选择和指数排名选择两种方法。
线性排名选择的具体步骤如下: 1. 将种群中的个体按照适应度从高到低进行排序;2. 计算每个个体的选择概率,通常使用线性函数进行映射;3. 生成一个随机点,根据该随机点在选择概率累积值上的位置确定被选中的个体。
遗传算法

j=0 选择两个交叉个体 执行交叉 将交叉后的两个新个体 添入新群体中 j = j+2
将复制的个体添入 新群体中
j = j+1
N
j = M? Y
N
j = pc· M? Y
Gen=Gen+1
N
j = pm· M? L· Y
遗传算法应用举例 ——在函数优化中的应用
[例] Rosenbrock函数的全局最大值计算。
bi 2i1 )
i 1
U max U min 2 1
0.3 70352 (12.1 3) /(218 1) 1.052426
二)个体适应度评价
如前所述,要求所有个体的适应度必须为正数或零,不能是负数。
(1) 当优化目标是求函数最大值,并且目标函数总取正值时,可以直接设定
max s.t. 如图所示: 该函数有两个局部极大点, 分别是: f(2.048, -2048) =3897.7342 f(-2.048,-2.0048) =3905.9262 其中后者为全局最大点。 f(x1,x2) = 100 (x12-x22)2 + (1-x1)2 -2.048 ≤ xi ≤ 2.048 (xi=1,2)
变异操作示例
变异字符的位置是随机确定的,如下表所示。某群体有3个个体,每个体含4 个基因。针对每个个体的每个基因产生一个[0, 1] 区间具有3位有效数字的值产生变异。表 中3号个体的第4位的随机数为0.001,小于0.01,该基因产生变异,使3号个体由
下面介绍求解该问题的遗传算法的构造过程:
第一步:确定决策变量及其约束条件。 s.t. 第二步:建立优化模型。 max 第三步:确定编码方法。 用长度为l0位的二进制编码串来分别表示二个决策变量x1,x2。 lO位二进制编码串可以表示从0到1023之间的1024个不同的数,故将x1,x2的 定义域离散化为1023个均等的区域,包括两个端点在内共有1024个不同的离散点。 从离散点-2.048到离散点2.048,依次让它们分别对应于从0000000000(0)到 f(x1,x2) = 100 (x12-x22)2 + (1-x1)2 -2.048 ≤ xi ≤ 2.048 (xi=1,2)
遗传算法解释及代码(一看就懂)

遗传算法( GA , Genetic Algorithm ) ,也称进化算法。
遗传算法是受达尔文的进化论的启发,借鉴生物进化过程而提出的一种启发式搜索算法。
因此在介绍遗传算法前有必要简单的介绍生物进化知识。
一.进化论知识作为遗传算法生物背景的介绍,下面内容了解即可:种群(Population):生物的进化以群体的形式进行,这样的一个群体称为种群。
个体:组成种群的单个生物。
基因 ( Gene ) :一个遗传因子。
染色体 ( Chromosome ):包含一组的基因。
生存竞争,适者生存:对环境适应度高的、牛B的个体参与繁殖的机会比较多,后代就会越来越多。
适应度低的个体参与繁殖的机会比较少,后代就会越来越少。
遗传与变异:新个体会遗传父母双方各一部分的基因,同时有一定的概率发生基因变异。
简单说来就是:繁殖过程,会发生基因交叉( Crossover ) ,基因突变( Mutation ) ,适应度( Fitness )低的个体会被逐步淘汰,而适应度高的个体会越来越多。
那么经过N代的自然选择后,保存下来的个体都是适应度很高的,其中很可能包含史上产生的适应度最高的那个个体。
二.遗传算法思想借鉴生物进化论,遗传算法将要解决的问题模拟成一个生物进化的过程,通过复制、交叉、突变等操作产生下一代的解,并逐步淘汰掉适应度函数值低的解,增加适应度函数值高的解。
这样进化N代后就很有可能会进化出适应度函数值很高的个体。
举个例子,使用遗传算法解决“0-1背包问题”的思路:0-1背包的解可以编码为一串0-1字符串(0:不取,1:取);首先,随机产生M个0-1字符串,然后评价这些0-1字符串作为0-1背包问题的解的优劣;然后,随机选择一些字符串通过交叉、突变等操作产生下一代的M个字符串,而且较优的解被选中的概率要比较高。
这样经过G代的进化后就可能会产生出0-1背包问题的一个“近似最优解”。
编码:需要将问题的解编码成字符串的形式才能使用遗传算法。
遗传算法的基本概念

遗传算法基本概念遗传算法是一种基于生物进化原理的优化搜索算法。
它通过模拟自然界的遗传机制,如遗传编码、适应度函数、选择、交叉和变异等过程,寻找最优解。
下面将详细介绍遗传算法的各个组成部分。
1. **遗传编码**遗传编码是遗传算法中表示解的一种方式,它将问题的解空间映射到基因空间。
常见的编码方式有二进制编码、实数编码和排列编码等。
二进制编码使用0和1表示基因,实数编码使用连续实数表示基因,排列编码则使用解的排列顺序表示基因。
2. **适应度函数**适应度函数用于评估个体的适应度,即解的质量。
适应度函数值越大,解的质量越好。
根据问题的不同,适应度函数的设计也有所不同。
在设计适应度函数时,需要确保其能够反映问题的实际需求,并且能够指导算法向更好的解进化。
3. **选择操作**选择操作是根据个体的适应度值来决定其在下一代中的存活概率。
常用的选择策略有轮盘赌选择、锦标赛选择和排序选择等。
选择操作的目标是保持算法的多样性,并逐渐向更好的解靠近。
4. **交叉操作**交叉操作是将两个个体的部分基因进行交换,以产生新的个体。
常见的交叉方式有单点交叉、多点交叉和均匀交叉等。
通过交叉操作,遗传算法能够继承父代个体的优良基因,并尝试探索新的解空间。
5. **变异操作**变异操作是对个体的基因进行随机改变,以增加种群的多样性。
变异操作可以避免算法陷入局部最优解,并扩大搜索空间。
常见的变异方式有位反转、倒位和点突变等。
6. **终止条件**终止条件用于确定算法何时结束运行。
常见的终止条件有达到预设的最大迭代次数、连续多代个体适应度值无明显改进等。
(完整版)遗传算法简介及代码详解

遗传算法简述及代码详解声明:本文内容整理自网络,认为原作者同意转载,如有冒犯请联系我。
遗传算法基本内容遗传算法为群体优化算法,也就是从多个初始解开始进行优化,每个解称为一个染色体,各染色体之间通过竞争、合作、单独变异,不断进化。
遗传学与遗传算法中的基础术语比较染色体:又可以叫做基因型个体(individuals)群体/种群(population):一定数量的个体组成,及一定数量的染色体组成,群体中个体的数量叫做群体大小。
初始群体:若干染色体的集合,即解的规模,如30,50等,认为是随机选取的数据集合。
适应度(fitness):各个个体对环境的适应程度优化时先要将实际问题转换到遗传空间,就是把实际问题的解用染色体表示,称为编码,反过程为解码/译码,因为优化后要进行评价(此时得到的解是否较之前解优越),所以要返回问题空间,故要进行解码。
SGA采用二进制编码,染色体就是二进制位串,每一位可称为一个基因;如果直接生成二进制初始种群,则不必有编码过程,但要求解码时将染色体解码到问题可行域内。
遗传算法的准备工作:1) 数据转换操作,包括表现型到基因型的转换和基因型到表现型的转换。
前者是把求解空间中的参数转化成遗传空间中的染色体或者个体(encoding),后者是它的逆操作(decoding)2) 确定适应度计算函数,可以将个体值经过该函数转换为该个体的适应度,该适应度的高低要能充分反映该个体对于解得优秀程度。
非常重要的过程。
遗传算法基本过程为:1) 编码,创建初始群体2) 群体中个体适应度计算3) 评估适应度4) 根据适应度选择个体5) 被选择个体进行交叉繁殖6) 在繁殖的过程中引入变异机制7) 繁殖出新的群体,回到第二步实例一:(建议先看实例二)求 []30,0∈x 范围内的()210-=x y 的最小值1) 编码算法选择为"将x 转化为2进制的串",串的长度为5位(串的长度根据解的精度设 定,串长度越长解得精度越高)。
遗传算法基本概念

遗传算法基本概念一、引言遗传算法(Genetic Algorithm,GA)是一种基于生物进化原理的搜索和优化方法,它是模拟自然界生物进化过程的一种计算机算法。
遗传算法最初由美国科学家Holland于1975年提出,自此以来,已经成为了解决复杂问题的一种有效工具。
二、基本原理遗传算法通过模拟自然界生物进化过程来求解最优解。
其基本原理是将问题转换为染色体编码,并通过交叉、变异等操作对染色体进行操作,从而得到更优的解。
1. 染色体编码在遗传算法中,问题需要被转换成染色体编码形式。
常用的编码方式有二进制编码、实数编码和排列编码等。
2. 适应度函数适应度函数是遗传算法中非常重要的一个概念,它用来评价染色体的适应性。
适应度函数越高,则该染色体越有可能被选中作为下一代群体的父代。
3. 选择操作选择操作是指从当前群体中选择出适应度较高的个体作为下一代群体的父代。
常用的选择方法有轮盘赌选择、竞赛选择和随机选择等。
4. 交叉操作交叉操作是指将两个父代染色体的一部分基因进行交换,产生新的子代染色体。
常用的交叉方法有单点交叉、多点交叉和均匀交叉等。
5. 变异操作变异操作是指在染色体中随机改变一个或多个基因的值,以增加种群的多样性。
常用的变异方法有随机变异、非一致性变异和自适应变异等。
三、算法流程遗传算法的流程可以概括为:初始化种群,计算适应度函数,选择父代,进行交叉和变异操作,得到新一代种群,并更新最优解。
具体流程如下:1. 初始化种群首先需要随机生成一组初始解作为种群,并对每个解进行编码。
2. 计算适应度函数对于每个染色体,需要计算其适应度函数值,并将其与其他染色体进行比较。
3. 选择父代根据适应度函数值大小,从当前种群中选择出若干个较优秀的染色体作为下一代群体的父代。
4. 进行交叉和变异操作通过交叉和变异操作,在选出来的父代之间产生新的子代染色体。
5. 更新最优解对于每一代种群,需要记录下最优解,并将其与其他染色体进行比较,以便在下一代中继续优化。
遗传算法的基本原理和方法

遗传算法的基本原理和⽅法遗传算法的基本原理和⽅法⼀、编码编码:把⼀个问题的可⾏解从其解空间转换到遗传算法的搜索空间的转换⽅法。
解码(译码):遗传算法解空间向问题空间的转换。
⼆进制编码的缺点是汉明悬崖(Hamming Cliff),就是在某些相邻整数的⼆进制代码之间有很⼤的汉明距离,使得遗传算法的交叉和突变都难以跨越。
格雷码(Gray Code):在相邻整数之间汉明距离都为1。
(较好)有意义的积⽊块编码规则:所定编码应当易于⽣成与所求问题相关的短距和低阶的积⽊块;最⼩字符集编码规则,所定编码应采⽤最⼩字符集以使问题得到⾃然的表⽰或描述。
⼆进制编码⽐⼗进制编码搜索能⼒强,但不能保持群体稳定性。
动态参数编码(Dynamic Paremeter Coding):为了得到很⾼的精度,让遗传算法从很粗糙的精度开始收敛,当遗传算法找到⼀个区域后,就将搜索现在在这个区域,重新编码,重新启动,重复这⼀过程,直到达到要求的精度为⽌。
编码⽅法:1、⼆进制编码⽅法缺点:存在着连续函数离散化时的映射误差。
不能直接反映出所求问题的本⾝结构特征,不便于开发针对问题的专门知识的遗传运算算⼦,很难满⾜积⽊块编码原则2、格雷码编码:连续的两个整数所对应的编码之间仅仅只有⼀个码位是不同的,其余码位都相同。
3、浮点数编码⽅法:个体的每个基因值⽤某⼀范围内的某个浮点数来表⽰,个体的编码长度等于其决策变量的位数。
4、各参数级联编码:对含有多个变量的个体进⾏编码的⽅法。
通常将各个参数分别以某种编码⽅法进⾏编码,然后再将他们的编码按照⼀定顺序连接在⼀起就组成了表⽰全部参数的个体编码。
5、多参数交叉编码:将各个参数中起主要作⽤的码位集中在⼀起,这样它们就不易于被遗传算⼦破坏掉。
评估编码的三个规范:完备性、健全性、⾮冗余性。
⼆、选择遗传算法中的选择操作就是⽤来确定如何从⽗代群体中按某种⽅法选取那些个体遗传到下⼀代群体中的⼀种遗传运算,⽤来确定重组或交叉个体,以及被选个体将产⽣多少个⼦代个体。
遗传算法编码

遗传算法编码1. 引言遗传算法编码是遗传算法的重要组成部分,它决定了问题的解空间以及遗传算法的搜索能力。
本文将深入探讨遗传算法编码的原理、常用编码方式以及编码的优化方法。
2. 遗传算法概述遗传算法是一种模拟自然选择和遗传机制的搜索算法,它通过模拟生物进化的过程来寻找最优解。
遗传算法包含三个基本操作:选择、交叉和变异。
而编码是其中非常重要的一步,它将问题的解空间映射到遗传算法的搜索空间。
3. 二进制编码二进制编码是遗传算法中最常用的编码方式之一。
它将问题的解表示为一个二进制串,每个基因位上的0或1代表了一种取值。
例如,对于一个长度为10的二进制串,可以表示从0到1023的整数。
二进制编码的优点是简单、易于实现,但对于连续型问题的表示能力较弱。
3.1 基本二进制编码基本二进制编码将问题的解空间均匀划分为若干个区间,每个区间对应一个二进制码。
通过二进制码的变换和操作,可以实现选择、交叉和变异等基本操作。
但基本二进制编码的缺点是解空间的粒度较大,可能导致搜索效率低下。
3.2 Gray编码Gray编码是一种改进的二进制编码方式,它通过保证相邻两个码之间只有一个位的变化,减小了解空间的粒度。
Gray编码在交叉和变异操作中具有更好的性质,能够减小搜索空间的距离。
因此,Gray编码常用于需要高精度的遗传算法问题中。
4. 实数编码实数编码是另一种常用的遗传算法编码方式,它将问题的解表示为一个实数。
实数编码的优点是对连续型问题的表示能力较强,可以更精确地描述解空间。
但相比于二进制编码,实数编码的实现较为复杂。
4.1 浮点数编码浮点数编码是实数编码的一种常见形式。
它将问题的解表示为一个浮点数,通过确定小数点位置和精度来描述解的取值范围。
浮点数编码适用于解空间较大且精度要求一般的问题。
4.2 实数编码实数编码是一种更为灵活的编码方式,它将问题的解表示为一个实数,可以包含任意精度的小数部分。
实数编码适用于解空间较小且精度要求较高的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
遗传算法编码及算子简介
遗传算法主要是通过遗传操作对群体中具有某种结构形式的个体施加结构重组处理,从而不断地搜索出群体中个体间的结构相似性,形成并优化积木块以逐渐逼近最优解。
由此可见,必须把群体中的个体转化成按一定基因结构组成的染色体或个体,即编码。
编码原则包括两条:
1.有积极积木块编码规则,即所定编码应当易于生成所求问题相关的短距和低阶的积木块。
2.最小字符集编码规则,即所定编码应用最小字符集以使问题得到自然的表示或描述。
规则一是基于模式定理和积木块假设;规则二提供了一种更为实用的编码规则。
评估编码策略常采用的规范有:
1.完备性:问题空间中的所有点都能作为GA空间的点表现。
2.健全性:GA空间中的染色体能对应所有问题空间中的候选解。
3.非冗余性:染色体和候选解一一对应。
这些评估规范是独立于问题领域的普遍准则。
对某个具体的应用领域而言,应该客观化地比较和评估该问题领域中所用的编码方法。
应用遗传算法进行优化,首先将问题描述成串的形式,以模拟染色体。
选择何种编码方式对算法的运行有很大的影响。
现在,流行的观点认为二进制编码能在相同的范围内表示最多的模式,能充分地体现所谓的隐含并行性。
但是,二进制编码方式的精度依赖于染色体的基因位数及设计变量的范围。
因而对于高精度、多变量问题,n值需很大,降低遗传算法的收敛速度。
另外,二进制编码不直接反映真实的设计空间。
其它的编码方式还有:格雷码编码、浮点编码、树结构编码、参数动态编码和多维编码等。
遗传算法主要有选择、交叉和突变算子
选择算子
遗传算法使用选择算子或称复制算子来对种群中的个体进行优胜劣汰操作:选择算子使适应性高的个体在后代中生存的概率较大,而适应度低的个体生存的概率很小甚至被淘汰。
遗传算法中的选择操作就是来确定如何从父代群体中按某种方法选取那些个体以传到下一代群体的一种遗传算法。
选择操作是建立在群体中个体的适应度评价基础上的。
选择操作的主要目的是为了避免基因缺失、提高全局收敛性和计算效率。
在遗传算法中级很重要的作用。
选择操作有多种方法,最常用的是轮盘赌法。
在具体使用中,应根据问题求解的特点采用合适的方法或者混合使用。
下面简单介绍各种选择算法:
(1) 比例选择算法
基本思想是:各个个体被选中的概率与其适应度大小成正比,即适应度越高的个体被选中的概率也越大,反之则小。
(2) 最优选择算法
在遗传算法的运行过程中,通过对个体进行交叉、变异等遗传操作而不断地产出新的个体。
虽然随着群体的进化过程会产出越来越多的优良个体,但由于选择、交叉、变异等遗传操作的随机性,它们也有可能破坏掉当前群体中适应度最好的个体。
由于随机操作的原因,这种选择方法的误差比较大,有时甚至连适应度较高的个体也选择不上,由此会降低群体的平均适应度,对算法的运行效率、收敛性都有不利的影响。
一般说来,适应度最好的个体要尽可能地保留到下一代群体中。
为此可以使用最优保留策略进化模型,即当前群体中适应度最高的个体不参与交叉运算和变异运算,而是用它来替换掉本代群体中经过交叉、变异等操
作后所产生的是硬度最低的个体。
最有选择算法的具体步骤是:
1.找出当前群体中适应度最高的个体和适应度最低的个体。
2.若当前群体中最佳个体的适应度比总的迄今为止最好的个体的适应度还高,则以当前群体中的最佳个体为新的迄今为止的最好个体。
3.用迄今为止的最好个体替换掉当前群体中的最差个体。
该方法可确保迄今为止所得到的最优个体不会被交叉、变异等遗传操作所破坏,它是遗传算法收敛性的一个重要条件。
但另一方面,它也容易使得某个局部最优个体不易被淘汰掉反而快速扩散,导致算法的全局搜索能力下降。
当然,该算法可以推广到在每一代的进化过程中保留多个最优个体不参加交叉、变异等遗传运算,而直接讲它们选择到下一代群体中。
(3) 确定式选择算法
它是按照一种确定的方式来进行选择操作。
(4)期望值选择算法
根据每个个体在下一代群体中的生存期望值来进行随机选择运算。
(5)无回放余数随机选择算法
(6)排序选择算法
主要思想是:对群体中的所有个体按期适应度大小进行排序,基于这个排序来分配各个个体被选中的概率。
算法步骤为:
1. 对群体中的所有个体按其适应度的大小进行降序排序。
2. 根据具体求解问题设计一个概率分配表,将各个概率值按上述排列次序分配给各个个体。
3. 以各个个体所分配到的概率值作为其能够遗传到下一代的概率,基于这些概率值用比例选择的方法来产生下一代群体。
该方法的实施必须根据对所研究问题的分析和理解情况预先设计一个概率分配表,这个设计过午一定规律可言。
而且,虽然依据个体适应度之间的大小次序给各个个体分配了一个选择概率,但由于具体选择方法,所以排序选择方法仍具有较大的选择误差。
(7)随机联赛选择算法
它是一种基于个体适应度之间大小关系的选择算法。
其基本思路是每次选取集各个体重适应度最高的一个个体遗传到下一代群体中。
在联赛选择操作中,只有个体适应度之间的大小比较运算,而无个体适应度之间的算术运算。
联赛选择中,每次进行适应度大小比较的个体数目称为联赛规模。
交叉算子
所谓交叉是指把两个父代个体的部分结构加以替换生成新个体的操作。
这可以提高搜索力。
在交叉运算之前还必须对群体中的个体进行配对。
目前常用的配对策略是随机配对,即将群体中的个体以随机方式两两配对,交叉操作是在配对个体之间进行的。
交叉算子主要有:一点交叉(不易破坏好的模型),双点交叉,多点交叉(又称广义交叉,一般不使用,随着交叉点的增多,个体结构被破坏的可能性逐渐增大,影响算法的性能),均匀交叉,算术交叉等。
目前各种交叉操作形式上的区别是交叉位置的选取方式。
下面简单介绍几种交叉方法。
(1)单点交叉
随机选取个体中的某基因位,从此位开始交换两亲本的后面部分序列,以产生两个子代。
(2)两点交叉
随机选取个体中的两个基因位,交换两亲本间部分。
(3)OX交叉
随机选择两个点,亲本在两个点间的部分被复制下来作为子代的一部分。
子代的余下部分从对应亲本染色体的其余部分中,先选出第二个交叉点开始到它的最后一个基因位的基因按先后次序添入,然后再继续按次序取该染色体的第一基因位到第二交叉点的基因依次添入,其中跳过子代染色体中已含有的基因。
此种方法能充分保留亲本代基因的相对次序。
(4)PX交叉
随机地选取几个位置,子代染色体的这些位置继承第一亲本的相应位置,子代染色体的其余位置按第二亲本中出现的次序添入,并跳过已含有的基因。
此种方法保留有亲本的绝对位置信息。
变异算子
在生物的遗传和自然进化过程中,因为某些偶然的因素而导致生物的某些基因发生变异,从而产生出新的染色体,表现出新的生物性状。
模仿生物遗传和进化过程中的变异环节,在遗传算法中也引入了变异算子来产生新的个体。
变异运算就是将个体染色体编码串中的某些基因用其它的基因来替换。
它是遗传算法中不可缺少的部分。
目的就是改善遗传算法的局部搜索能力,维持群体的多样性,防止出现早熟现象。
设计变异算子需要确定变异点的位置和基因值的替换,最常用的是基本位变异,它只改变编码串中个别位的基因值,变异发生的概率也小,发挥作用比较慢,效果不明显。
变异算子主要有:均匀变异,它特别适于算法的初期阶段,增加群体的多样性;非均匀变异,随着算法的运行,它使得搜索过程更加集中在某一个重点区域中;边界变异,适用于最优点位于或接近于可行解边界的问题;高斯变异,改进了算法对重点搜索区域的局部搜索性能。
算子的改进和新算子不断涌现。
倒位操作,在染色体中选择两个倒位点,两点间的基因倒换位置。
利用倒位作用的遗传算法能发现并助长有用基因的紧密形式。
二倍体与显性操作,二倍体具有记忆能力,能解决动态环境下的复杂系统优化问题。
显性操作具有鲁棒性,有利于提高算子的运算效率,维护好的搜索群体。
针对不同的问题,人们研究出各种算子,不断的进行推广。
遗传算法以个体的集合为运算对象,对个体所进行的各种操作都有一定的相互独立性,所以它具有一种天然的并行结构。
对基本遗传算法的运行过程,为实现并行化,可以从个体适应度评价、整个群体中各个个体适应度评价、子代群体产生过程、群体分组几方面考虑。
实现的方法可分为两类:标准型并行方法和分解性并行方法。
前者并未改变串行遗传算法的基本特点,它需要一个全局存储器和一个统一的控制机构来协调群体的遗传进行过程及群体之间的通讯过程。
这种方法对算法速度提高得不多,后者将整个群体分解为几个子群体,各个子群体分布在不同的处理机上进行基本的遗传算法,在适当的时候各处理机之间相互交换信息。
对种群分组方法或模型有三种:踏脚石模型、岛屿邻近模型、邻接模型。