基本遗传算法

在这里插入图片描述
1.概念
1.1 定义
其本质是一种高效、并行、全局搜索的方法
能在搜索过程中自动获取和积累有关搜索空间的知识
可以自适应地控制搜索过程以求得最佳解
1.2 思路
每一条染色体,对应着遗传算法的一个解决方案
用适应性函数(fitness function)来衡量解决方案的优劣
一个基因组到其解的适应度形成一个映射
多元函数里面求最优解的过程
1.3 相关术语
基因型(genotype):性状染色体的内部表现;
表现型(phenotype):染色体决定的性状的外部表现,或者说,根据基因型形成的个体的外部表现;
进化(evolution):种群逐渐适应生存环境,品质不断得到改良。生物的进化是以种群的形式进行的。
适应度(fitness):度量某个物种对于生存环境的适应程度。
选择(selection):以一定的概率从种群中选择若干个个体。一般,选择过程是一种基于适应度的优胜劣汰的过程。
复制(reproduction):细胞分裂时,遗传物质DNA通过复制而转移到新产生的细胞中,新细胞就继承了旧细胞的基因。
交叉(crossover):两个染色体的某一相同位置处DNA被切断,前后两串分别交叉组合形成两个新的染色体。也称基因重组或杂交;
变异(mutation):复制时可能(很小的概率)产生某些复制差错,变异产生新的染色体,表现出新的性状。
编码(coding):DNA中遗传信息在一个长链上按一定的模式排列。遗传编码可看作从表现型到基因型的映射。
解码(decoding):基因型到表现型的映射。
个体(individual):指染色体带有特征的实体;
种群(population):个体的集合,集合内个体数称为种群的大小
1.4 特点

  • 遗传算法是对决策变量的编码进行操作,这样提供的参数信息量大,优化效果好。(编码)
  • 遗传算法是从许多点开始并行操作,因而可以有效地防止搜索过程收敛于局部最优解。(多点并行)
  • 遗传算法通过目标函数来计算适配值,而不需要其他推导和附加信息,从而对问题的依赖性小。(函数要求低)
  • 遗传算法的寻优规则是由概率决定的,而非确定性的。 (概率搜索)
  • 遗传算法对于待寻优的函数基本无限制,因而应用范围较广。(函数无限制)
  • 遗传算法在解空间进行高效启发式搜索,而非盲目地穷举或完全随机搜索。(启发式搜索)
  • 遗传算法具有并行计算的特点,因而可通过大规模并行计算来提高计算速度。(并行计算)
  • 遗传算法更适合大规模复杂问题的优化。(大规模)
  • 遗传算法计算简单,功能强。
    2基本实现步骤
    开始循环直至找到满意的解。
  1. 限定进化次数
  2. 限定允许范围

2.1基因的编码
2.1.1选取个体特征–表现型
2.1.2编码方式–表现型和基因型的映射
二进制编码
在这里插入图片描述
浮点数编码
在这里插入图片描述
区间【-1,2】内二进制化为十进制化为浮点
2.1.3 编码原则
完备性(completeness):问题空间的所有解都能表示为所设计的基因型;
健全性(soundness):任何一个基因型都对应于一个可能解;
非冗余性(non-redundancy):问题空间和表达空间一一对应。
拉马赫性质:某个基因的等位基因的含义不依赖于其他基因
2.1.4 条件:
1、染色体的可行性:是指由染色体解码的解是否位于给定问题的可行区域内。
2、染色体的合法性:染色体是否代表某个问题的解决方案
3、映射的唯一性

2.2评估每条染色体所对应个体的适应度。遵照适应度越高,选择概率越大的原则,从种群中选择两个个体作为父方和母方。
物竞天择
2.2.1.物竞――适应度函数(fitness function)
(1)定义
一般而言,适应度函数是由目标函数变换而成的。
适应度函数设计不当有可能出现欺骗问题:
(1)进化初期,个别超常个体控制选择过程;
(2)进化末期,个体差异太小导致陷入局部极值。
1)对最小化问题,建立如下适应函数和目标函数的映射关系:在这里插入图片描述
2)对于最大化问题,一般采用以下映射:在这里插入图片描述
(2)适应度变换
定义:适应度的缩放调整称为适应度变换。
目的:
①维持个体之间的合理差距,加速竞争
②避免个体之间的差距过大,限制竞争。
方法
在这里插入图片描述
(3) 适应度共享
定义
共享函数法根据个体某个距离内与其他个体的临近程度来确定该个体的适应度应改变多少。
在拥挤的峰周围的个体的复制概率受到抑制,利于其他个体产生后代。
在这里插入图片描述
目的
共享函数的作用在于根据个体临域内个体的分布情况对个体的适应度进行惩罚!
方法
① Genotypic sharing(基因型共享)
在这里插入图片描述
② Phenotypic sharing(表现型共享)
在这里插入图片描述
在这里插入图片描述
2.2. 2.天择――选择函数(selection)- 优胜劣汰,适者生存;
选择压力大会使种群迅速收敛,失去多样性。较小会使种群收敛速度变得很慢。在算法的初始阶段,希望选择压力小一些,保证种群的多样性,在算法的后期希望选择压力大一些使算法迅速收敛。
选择压力:(A,B)>(A+B)>竞赛>线性排序选择>轮盘
(1)轮盘赌(Roulette Wheel Selection)选择法
计算每个染色体对应适应度占累计总适应度的比值
轮盘停下来的时候,指针会随机地指向某一个个体所代表的区域,
适应度评分越高的个体被选中的概率越大
在这里插入图片描述
(2)精英选择机制
(A+B)-selection(A个父代,B个子代,从A+B选择最好的A)
(A,B)-selection(A个父代,B个子代,从B选择最好的A)
Elitist selection(贪婪选择,线性排序选择)
The generational replacement(代替换)
Steady-state reproduction(稳态再生,n个最差的父代个体被子代替换)
(3) 混合选择
Tournament selection(竞赛选择)。
竞赛规模=t Repeat t times
从种群中随机选择一个个体并记下其适应度;
返回t个个体中最好的个体。
2.2.3.抽取父母双方的染色体,进行交叉,产生子代。
基因重组/交叉(recombination/crossover)-保证种群的稳定性,朝着最优解的方向进化;
(1) 二进制编码
随机把其中几个位于同一位置的编码进行交换,产生新的个体
在这里插入图片描述
(2)浮点数编码
多个浮点数编码,同一位置浮点数交叉互换

Partial-Mapped Crossover (PMX)
随机选择一对染色体(父代)中几个基因的起止位置(两染色体被选位置相同):
交换这两组基因的位置:
做冲突检测,根据交换的两组基因建立一个映射关系,

Order Crossover (OX)
随机选择一对染色体(父代)中几个基因的起止位置(两染色体被选位置相同):
生成一个子代,并保证子代中被选中的基因的位置与父代相同
找出第一步选中的基因在另一个父代中的位置
将其余基因按顺序放入上一步生成的子代中:
另一个子代生成过程完全相同,只需要将两个父代染色体交换位置

Position-based Crossover (PBX)
随机选择一对染色体(父代)中几个基因,位置可不连续,但两染色体被选位置相同:
生成一个子代,并保证子代中被选中的基因的位置与父代相同
找出第一步选中的基因在另一个父代中的位置,再将其余基因按顺序放入上一步生成的子代中:

Order-Based Crossover (OBX)
随机选择一对染色体(父代)中几个基因,位置可不连续,但两染色体被选位置相同:
先在父代2中找到父代1被选中基因的位置,再用父代2中其余的基因生成子代,并保证位置对应:
将父代1中被选择的基因按顺序放入子代剩余位置中:

Cycle Crossover (CX)-仅需要在一个染色体上随机选择一个位置
在某个父代上随机选择1个基因,然后找到另一个父代相应位置上的基因编号,再回到第一个父代找到同编号的基因的位置,重复先前工作,直至形成一个环,环中的所有基因的位置即为最后选中的位置:
用父代1中选中的基因生成子代,并保证位置对应:
将父代2中剩余基因放入子代中:

Subtour Exchange Crossover-只在一个染色体上选择基因的位置
在某个父代上选择1组基因,在另一父代上找到这些基因的位置:
保持未选中基因不变,按选中基因的出现顺序,交换两父代染色体中基因的位置,一次生成两个子代

单个浮点数
中间重组:随机产生就能得到介于父代基因编码值和母代基因编码值之间的值作为子代基因编码的值。比如5.5和6交叉,产生5.7,5.6

2.2. 4.对子代的染色体进行变异。
基因突**变(Mutation)-保证种群的多样性,避免交叉可能产生的局部收敛

1 二进制编码
基因串上的“ 0”或“ 1”有一定几率变成与之相反的“ 1”或“ 0”
2 浮点型编码
(1)对原来的浮点数增加或者减少一个小随机数, 小随机数(步长),步长越大,开始时进化的速度会比较快,小步长却能较精确的收敛到一个点上,即采取动态改变步长的方法。
(2) 边界突变
(3)高斯变异
(4) 定向突变

2.2. 5.重复2,3,4步骤,直到新种群的产生。

原创文章 21 获赞 0 访问量 2761

猜你喜欢

转载自blog.csdn.net/durzak/article/details/105054308