1.概念
遗传算法( Genetic Algorithm )是受生物进化学说和遗传学说的启发发展起来的。生物在进化的过程中:不断繁殖、生存竞争、适者生存、遗传和变异。
1)涉及
遗传算法涉及生物进化学说和遗传学说中最重要的几个概念:基因重组、基因突变、染色体变异
2)研究对象
研究各种非线性(哪怕是没有明确的函数关系的系统)、多变量、多目标、复杂的自适应系统问题。
3)基本特征
●渐进式搜索
●能得到全局最优解(交换和突变操作产生新个体)
●根据问题特性确定输入输出,不关心输入与输出之间的联系(所以可以求解没有明确函数关系的问题)
4)改进方向
●编码技术和程序表达技术的改进。
●复制、交换、突变等遗传操作的改进。
●适应度的表达和计算的改进。
●寻求其它有效遗传算子,防止近缘杂交、过早收敛。
2.基本运算过程
1)编码与解码
要便于计算机处理
十进制码 | 二进制码 | |
---|---|---|
优点 | 无需解码 | 变异时取反(唯一) |
缺点 | 突变的可能性太多(9种) | 需要解码,加大运算量 |
适用 | 变量多、数字大、粗选阶段 | 变量少、取值少、精选阶段 |
其他编码方法 | 格雷码 | 浮点数编码 | 符号编码 | 多参数级联编码 | 多参数交叉编码 |
---|---|---|---|---|---|
定义 | 对连续函数进行局部空间搜索 | 使用决策变量的真实值 | 编码值取自无数值含义、只有代码含义的符号集 | 多个变量分别编码,按顺序连接在一起 | 多个变量分别编码,将起主要作用的码集中在一起,然后按顺序连接 |
适用 | 相比于2进制码快,相比于10进制码精确 | 多维、高精度要求的连续函数优化 | 旅行商、营销商、机器人设计问题 | 多变量寻优时,让每个变量都有交叉的可能 |
二进制码又分为直接二进制码(有符号位和小数点)、间接二进制码(没有符号位和小数点)
2)适应度函数与评估
通过适应度函数可以评价个体的优劣,并确定是否输出目前最优解,或者继续循环。
适应度函数确定方法:对个体编码串解码后,可得到个体值;由个体真值可求出个体的目标函数值;由最优化问题的类型,由目标函数值按一定的转换规则可求出个体的适应度。
3)复制
选取哪些个体进行复制可以用等差、等比、轮盘赌的方法来决定。
4)交叉
个体基因发生“交叉”的概率为50%~80%,可以上下浮动。
交叉中有三个随机:个体随机、概率可调、编码位置随机。
5)变异
个体基因发生“变异”的概率为0.1%~1%,可以上下浮动
变异中有三个随机:个体随机、哪位变异随机、变异几位随机。
6)终止条件
遗传算法的终止条件有以下三种:
- 循环次数
- 当目标函数有最优目标值时,可采用控制偏差的方式实现终止。
- 检查适应度的变化。如,最后两次迭代,种群适应度没有太大变化,即可停止。
3.遗传算子
遗传算法中涉及的算子有:选择算子、交叉算子、复制算子、变异算子、重排序算子(选择之前按适应度进行排序)。