基本遗传算法

遗传算法(genetic algorithms,GA):

一类借鉴生物界自然选择和自然遗传机制的随机搜索算法,非常适用于处理传统搜索方法难以解决的复杂和非线性优化问题。
遗传算法可广泛应用于组合优化、机器学习、自适应控制、规划设计和人工生命等领域。

遗传算法的基本思想

基本遗传算法_第1张图片
基本遗传算法_第2张图片

遗传算法的基本思想:

在求解问题时从多个解开始,然后通过一定的法则进行逐步迭代以产生新的解。

遗传算法的发展历史

1962年,Fraser提出了自然遗传算法。
1965年,Holland首次提出了人工遗传操作的重要性。
1967年,Bagley首次提出了遗传算法这一术语。
1970年,Cavicchio把遗传算法应用于模式识别中。
1971年,Hollstien在论文《计算机控制系统中人工遗传自适应方法》中阐述了遗传算法用于数字反馈控制的方法。
1975年,美国J. Holland出版了《自然系统和人工系统的适配》;DeJong完成了重要论文《遗传自适应系统的行为分析》。
20世纪80年代以后,遗传算法进入兴盛发展时期。

例: 用遗传算法求解下面一个Rastrigin函数的最小值。

基本遗传算法_第3张图片
基本遗传算法_第4张图片
初始种群:
基本遗传算法_第5张图片

第二代种群
基本遗传算法_第6张图片
在迭代60、80、95、100次时的种群

编码

位串编码

一维染色体编码方法:将问题空间的参数编码为一维排列的染色体的方法。
基本遗传算法_第7张图片

二进制编码
二进制编码:用若干二进制数表示一个个体,将原问题的解空间映射到位串空间 B={0,1}上,然后在位串空间上进行遗传操作。
优点:
类似于生物染色体的组成,算法易于用生物遗传理论解释,遗传操作如交叉、变异等易实现;算法处理的模式数最多。
缺点:
① 相邻整数的二进制编码可能具有较大的Hamming距离,降低了遗传算子的搜索效率。
15:01111
16: 10000
② 要先给出求解的精度。
③ 求解高维优化问题的二进制编码串长,算法的搜索效率低。
Gray 编码
Gray编码:将二进制编码通过一个变换进行转换得到的编码。
基本遗传算法_第8张图片

实数编码

采用实数表达法不必进行数制转换,可直接在解的表现型上进行遗传操作。
多参数映射编码的基本思想:把每个参数先进行二进制编码得到子串,再把这些子串连成一个完整的染色体。
多参数映射编码中的每个子串对应各自的编码参数,所以,可以有不同的串长度和参数的取值范围。

群体设定

初始种群的产生

随机产生群体规模数目的个体作为初始群体。
随机产生一定数目的个体,从中挑选最好的个体加到初始群体中。这种过程不断迭代,直到初始群体中个体数目达到了预先确定的规模。
根据问题固有知识,把握最优解所占空间在整个问题空间中的分布范围,然后,在此分布范围内设定初始群体。

种群规模的确定

群体规模太小,遗传算法的优化性能不太好,易陷入局部最优解。
群体规模太大,计算复杂。
模式定理表明:若群体规模为M,则遗传操作可从这M 个个体中生成和检测MXMXM个模式,并在此基础上能够不断形成和优化积木块,直到找到最优解。

适应度函数

将目标函数映射成适应度函数的方法

基本遗传算法_第9张图片
将目标函数转换为求最大值的形式,且保证函数值非负!
基本遗传算法_第10张图片

适应度函数的尺度变换

在遗传算法中,将所有妨碍适应度值高的个体产生,从而影响遗传算法正常工作的问题统称为欺骗问题(deceptive problem)。
过早收敛:缩小这些个体的适应度,以降低这些超级个体的竞争力。
停滞现象:改变原始适应值的比例关系,以提高个体之间的竞争力。
尺度变换(fitness scaling)或定标:对适应度函数值域的某种映射变换。
线性变换
基本遗传算法_第11张图片基本遗传算法_第12张图片

选择

个体选择概率分配方法

选择操作也称为复制(reproduction)操作:从当前群体中按照一定概率选出优良的个体,使它们有机会作为父代繁殖下一代子孙。
判断个体优良与否的准则是各个个体的适应度值:个体适应度越高,其被选择的机会就越多。
(1)适应度比例方法(fitness proportional model)或蒙特卡罗法(Monte Carlo)
各个个体被选择的概率和其适应度值成比例。
个体i被选择的概率为:
基本遗传算法_第13张图片

(2) 排序方法 (rank-based model)
① 线性排序:J. E. Baker
基本遗传算法_第14张图片

② 非线性排序: Z. Michalewicz
基本遗传算法_第15张图片
基本遗传算法_第16张图片

选择个体方法

(1)转盘赌选择
按个体的选择概率产生一个轮盘,轮盘每个区的角度与个体的选择概率成比例。
产生一个随机数,它落入转盘的哪个区域就选择相应的个体交叉。
基本遗传算法_第17张图片
基本遗传算法_第18张图片
第1轮产生一个随机数:0.81
第2轮产生一个随机数:0.32
(2)锦标赛选择方法(tournament selection model)
锦标赛选择方法:从群体中随机选择个个体,将其中适应度最高的个体保存到下一代。这一过程反复执行,直到保存到下一代的个体数达到预先设定的数量为止。
随机竞争方法(stochastic tournament):每次按赌轮选择方法选取一对个体,然后让这两个个体进行竞争,适应度高者获胜。如此反复,直到选满为止。
(3)最佳个体保存方法
最佳个体(elitist model)保存方法:把群体中适应度最高的个体不进行交叉而直接复制到下一代中,保证遗传算法终止时得到的最后结果一定是历代出现过的最高适应度的个体。

交叉

1. 基本的交叉算子

(1)一点交叉(single-point crossover)
一点交叉:在个体串中随机设定一个交叉点,实行交叉时,该点前或后的两个个体的部分结构进行互换,并生成两个新的个体。
(2)二点交叉 (two-point crossover)
二点交叉:随机设置两个交叉点,将两个交叉点之间的码串相互交换。

2. 修正的交叉方法

部分匹配交叉PMX:Goldberg D. E.和R. Lingle(1985)
基本遗传算法_第19张图片

变异

位点变异:群体中的个体码串,随机挑选一个或多个基因座,并对这些基因座的基因值以变异概率作变动。
逆转变异:在个体码串中随机选择两点(逆转点),然后将两点之间的基因值以逆向排序插入到原位置中。
插入变异:在个体码串中随机选择一个码,然后将此码插入随机选择的插入点中间。
互换变异:随机选取染色体的两个基因进行简单互换。
移动变异:随机选取一个基因,向左或者向右移动一个随机位数。

遗传算法的一般步骤

基本遗传算法_第20张图片
基本遗传算法_第21张图片
基本遗传算法_第22张图片

遗传算法的特点

遗传算法是一种全局优化概率算法,主要特点有:
遗传算法对所求解的优化问题没有太多的数学要求,由于进化特性,搜素过程中不需要问题的内在性质,可直接对结构对象进行操作。
利用随机技术指导对一个被编码的参数空间进行高效率搜索
采用群体搜索策略,易于并行化。
仅用适应度函数值来评估个体,并在此基础上进行遗传操作,使种群中个体之间进行信息交换。
遗传算法能够非常有效地进行概率意义的全局搜素。
欢迎大家加我微信交流讨论(请备注csdn上添加)
基本遗传算法_第23张图片

你可能感兴趣的:(人工智能,算法,人工智能)