智能优化算法——遗传算法
遗传算法
一种仿生全局优化算法
模拟生物的遗传进化原理,通过选择、交叉与变异等操作机制,使种群中个体的适应性不断提高
1、基本思想及应用领域
核心思想:物竞天择,适者生存
优点:
良好的并行性(操作对象是一组可行解,搜索轨道有多条)
强大的通用性(只需要利用目标的取值信息,无需梯度等高价值信息)
良好的全局优化性和鲁棒性
良好的可操作性
缺点:
未成熟收敛问题
收敛速度较慢,算法实时性欠佳
应用领域:
(1)函数优化(经典优化)
(2)组合优化(旅行商问题——已成为衡量算法优劣的标准、背包问题、装箱问题等)
(3)生产调度问题
(4)自动控制
(5)机器人智能控制(移动机器人路径规划、关节机器人运动轨迹规划、机器人逆运动学求解)
(6)图像处理和模式识别(图像恢复、图像边缘特征提取、几何形状识别)
(7)机器学习(将GA用于知识获取,构建基于GA的机器学习系统)
2、基本流程
3、遗传算法中的若干概念
个体:表示可行解
种群:表示可行解集
适应度函数:衡量某个个体的适应度高低
编码【关键步骤】:将一个待求解的问题的实际可行解从其解空间转换到遗传算法所能处理的搜索空间(即个体空间)的过程,就叫编码
常用的遗传算法编码方法:二进制编码、浮点数编码等
二进制编码比浮点数编码搜索能力强,但是浮点数编码比二进制编码在变异操作上能够保持更好的种群多样性。
解码:编码的逆过程,将遗传算法所搜索到的最优个体的染色体转换成待求解问题的实际最优解的过程
确定各遗传具体操作方法:
(1)选择算子和选择操作
个体选择概率常用分配方法:一般用第一种
- 按比例的适应度分配(选择的蒙特卡罗方法)
利用比例于各个个体适应度的概率决定其子孙的遗留可能性
若某个个体 i,其适应度为 fi,则其被选取的概率表示为,
显然选择概率越大的个体,能多次被选中,他的遗传因子就会在种群中扩大。
- 基于排序的适应度分配
在基于排序的适应度分配中,种群按目标值进行排序。适应度仅仅取决于个体在种群中的序位,而不是实际的目标值。
排序方法表现出更好的鲁棒性,能在一定程度上客服比例适应度计算的尺度问题和过早收敛问题。
(2)常用的选择算法 详细介绍
轮盘赌选择法、随机遍历抽样法、局部选择法、截断选择法、锦标赛选择法
(3)交叉率及交叉操作(基因重组)
交叉是遗传算法获取新的优良个体的最重要的手段,决定了遗传算法的全局搜索能力。交叉率的选择决定了交叉的频率。
较大的交叉率使各代充分交叉,但群体中的优良模式遭到破坏的可能性增大,以致产生较大的代沟,从而使搜索走向随机化;
交叉率越低,产生的代沟越小,就会使得更多的个体直接复制到下一代,遗传搜索可能陷入停滞状态,一般建议取值范围0.4~0.9
常用的交叉方法:单点交叉、多点交叉、均匀交叉、部分匹配交叉、顺序交叉、洗牌交叉等
单点交叉:
(4)变异率及变异操作
一般来说,随机产生的概率大于变异率就会触发变异操作
变异率一般可取0.001~0.1。变异率不能取得太大,如果大于0.5,遗传算法就会退化为随机搜索。
常用的变异操作:实值变异法和二进制变异法
(5)确定遗传算法的有关运行参数,包括群体规模、迭代次数(100·500)、选择算子、交叉率、变异率等
群体规模:一般为20~100
(1)取值较小,提高运算和收敛速度,但会降低群体多样性,可能会引起早熟现象
(2)取值较大,含有较多模式,可以提高GA搜索质量,但是计算量增大,收敛速度降低
4、会出现的问题
(1)未成熟收敛
当遗传算法还没找到全局最优解或者满意解时,群体中不能再产生性能超过父代的后代,群体中的各个个体非常相似。未成熟收敛的重要特征是群体中个体结构的多样性急剧减少。这种现象很常见
(2)原因:
理论上考虑的选择、交叉和变异操作都是绝对精确的,他们相互协调,能搜索到整个解空间,但实际不然;
存在随机误差(主要是取样误差和选择误差);
所求解的问题是遗传算法欺骗问题;
(3)解决:
重新启动、匹配策略、重组策略、替代策略