第三章 进化算法之遗传算法及其应用
3.1遗传算法的产生与发展
遗传算法是一种仿生全局优化算法,模仿生物的遗传进化原理,通过选择、交叉和变异等操作机制,使种群中的个体的适应性不断提高。
3.1.1遗传算法的基本思想
| 生物遗传概念 | 遗传算法中的应用 |
|---|---|
| 适者生存 | 目标值比较大的解被选择的可能性大 |
| 个体(Individual) | 解 |
| 染色体(Chromosome) | 解的编码(字符串、向量等) |
| 基因(Gene) | 解的编码中每一分量 |
| 适应性(Fitness) | 适应度函数值 |
| 群体(Population) | 根据适应度值选定的一组解(解的个数为群体的规模) |
| 婚配(Marry) | 交叉(Crossover)选择两个染色体进行交叉产生一组新的染色体的过程 |
| 变异(Mutation) | 编码的某一分量发生变化的过程 |
3.1.2遗传算法设计的基本内容
编码方案:怎样把优化问题的解进行编码。
适应度函数:怎样根据目标函数构建适应度函数。
选择策略:优胜劣汰。
控制参数:种群的规模、算法执行的最大代数、执行不同遗传操作的概率等。
遗传算子:选择、交叉、变异。
算法终止准则:规定一个最大的演化代数,或算法在连续多少代以后解的适应值没有改进。
遗传算法通常包括如下工作:
- 编码
遗传算法首先要用字符串表达所研究的问题,这
称作编码。表达问题的字符串相当于遗传学中的染
色体。每个字符串称作个体。每一遗传代次中个体
的组合称为群体。
- 形成初始群体
遗传算法中,常用随机的方法产生初始群体,
即随机生成一组任意排列的字符串。群体中个体
的数目通常也是固定的。
- 计算适应度
衡量字符串(染色体)好坏的指标是适应度
(Fitness),它通常也就是遗传算法中的目标函数。
适应度是今后优胜劣汰的主要判据。
- 复制
为了将已有的群体变为下一代群体,遗传算法仿
效进化论中“自然选择,适者生存”的原则,从旧群
体中选择优良个体予以复制,直接进入下一代群体。
选择的依据是个体适应度的大小,适应度大的个体接
受复制,使之繁殖;适应度小的个体则予删除,使之
死亡。
- 交叉
通过复制产生新群体,其总体性能得到改善,然而却不能产生新的个体。为了产生新的个体,遗传算法仿照生物学中交叉的方法,对染色体(字符串)的某些部分进行交叉换位。被交换的母体都选自经过复制产生的新一代个体(优胜者)。
- 变异
遗传算法模仿生物学中基因变异的方法,将个体字符
串某位符号进行逆变,即由1变为0或由0变为1。例如,下
式左侧的个体于第3位变异,得到新个体如下面所示:{10000}->{10100}
- 终止
反复执行上述(3)-(6)项工作,直至得出满意的最
优解。
总结:通过上述函数极值求解的例子可以看出,遗传算法仿效生物进化和遗传的过程,从随机生成的初始可行解出发,利用复制、交叉、变异等操作,遵循优胜劣汰的原则,不断循环执行,逐渐逼近全局最优解。
3.2遗传算法的基本算法
3.2.1编码
- 位串编码:一维染色体编码方法:将问题空间的参数编码为一维排列的染色体的方法。包括二进制编码和Gray编码。
二进制编码:用若干二进制数表示一个个体,将原问题
的解空间映射到位串空间 B={0,1}上,然后在位串空
间上进行遗传操作。
Gray编码:将二进制编码通过一个变换进行转换得到的编码。深入了解
- 实数编码:采用实数表达法不必进行数制转换,可直接在解的表现型上进行遗传操作。
- 多参数级联编码:把每个参数先进行二进制编码得到子串,再把这些子串连成一个完整的染色体。
3.2.2群体设定
- 初始种群的产生
(1)根据问题固有知识,把握最优解所占空间在整
个问题空间中的分布范围,然后,在此分布范围内设
定初始群体。
(2)随机产生一定数目的个体,从中挑选最好的个
体加到初始群体中。这种过程不断迭代,直到初始群
体中个体数目达到了预先确定的规模。
- 种群规模的确定
群体规模太小,遗传算法的优化性能不太好,易陷
入局部最优解。群体规模太大,计算复杂。一般种群规模设置为20-100
3.2.3适应度函数
- 将目标函数映射成适应度函数的方法
若目标函数为最大化问题,则𝐹𝑖𝑡(𝑓(𝑥)) = 𝑓(𝑥)
若目标函数为最小化问题,则𝐹𝑖𝑡(𝑓(𝑥)) = 1/𝑓(𝑥)
将目标函数转换为求最大值的形式,且保证函数值非负!
若目标函数为最大化问题,则
𝐹𝑖𝑡(𝑓(𝑥)) = f(x)-Cmin,如果f(x)>Cmin
𝐹𝑖𝑡(𝑓(𝑥)) =0,其它情况
若目标函数为最小化问题,则
𝐹𝑖𝑡(𝑓(𝑥)) = Cmax-f(x),如果f(x)<Cmax
𝐹𝑖𝑡(𝑓(𝑥)) =0,其它情况
- 适应度函数的尺度变换
在遗传算法中,将所有妨碍适应度值高的个体产生,从而影响遗传算法正常工作的问题统称为 欺 骗 问 题(deceptive problem)。
过早收敛:缩小这些个体的适应度,以降低这些超级个体的竞争力。
停滞现象:改变原始适应值的比例关系,以提高个体之间的竞争力。
适应度函数的尺度变换(fitness scaling)或者定标:
对适应度函数值域的某种映射变换。
(1)线性变换:𝑓′ = 𝑎𝑓 + 𝑏
(2)幂函数变换法: 𝑓′ = f^k
(3)指数变换法: 𝑓′ = e^(-af)
3.2.4选择
-
个体选择概率分配方法
选择操作也称为复制(reproduction)操作:从当前群体中按照一定概率选出优良的个体,使它们有机会作为父代繁殖下一代子孙。判断个体优良与否的准则是各个个体的适应度值:个体适应度越高,其被选择的机会就越多。
(1)适应度比例方法(fitness proportional model)或蒙特卡罗法(Monte Carlo)
▪ 各个个体被选择的概率和其适应度值成比例。
▪ 个体 被选择的概率为(M为群体规模大小):Psi=fi/(∑fi)
(2) 排序方法 (rank-based model)
① 线性排序:J. E. Bak
➢ 群体成员按适应值大小从好到坏依次排列:𝑥1, 𝑥2,⋅⋅⋅, 𝑥𝑁
个体xi分配选择概率 𝑝𝑖=(a-bi)/(M(M+1)),a,b为常数,按转盘式选择的方式选择父体② 非线性排序: Z. Michalewicz
将群体成员按适应值从好到坏依次排列,并按下式分
配选择概率:Pi=q(1-q)^(i-1),i=1,2,M-1;
;Pi=(1-q)^(M-1),i=M
▪ 可用其他非线性函数来分配选择概率,只要满足以
下条件:(1) 若 𝑃 = 𝑥1,𝑥2 ⋅⋅⋅, 𝑥𝑀 且 𝑓(𝑥1) ≥ 𝑓(𝑥2) ≥. . . ≥ 𝑓(𝑥𝑀), 则𝑝𝑖满足𝑝1 ≥ 𝑝2 ≥⋅⋅⋅≥ 𝑝𝑀;(2)∑Pi=1;
- 选择个体方法
(1)转盘赌选择
➢ 按个体的选择概率产生一个轮盘,轮盘每个区的角度与个体的选择概率成比例。
➢ 产生一个随机数,它落入转盘的哪个区域就选择相应的个体交叉。
假设第1轮产生一个随机数:0.81 对应个体为6
假设第2轮产生一个随机数:0.32 对应个体为2
(2)锦标赛选择方法
▪ 锦标赛选择方法:从群体中随机选择个体,将其中适应度最高的个体保存到下一代。这一过程反复执行,直到保存到下一代的个体数达到预先设定的数量为止。
▪ 随机竞争方法(stochastic tournament):每次按赌轮选择方法选取一对个体,然后让这两个个

本文深入探讨了遗传算法的基本思想、设计内容和操作步骤,包括编码、群体设定、适应度函数、选择、交叉和变异等。介绍了计算函数极值和旅行商问题的遗传算法实现,并讨论了双倍体、双种群和自适应遗传算法的改进策略。遗传算法通过模拟生物进化过程,优化问题解决方案,避免局部最优,逐步接近全局最优解。



最低0.47元/天 解锁文章
8641

被折叠的 条评论
为什么被折叠?



