算法学习
2016-07-25 23:20
260 查看
算法学习
标签(空格分隔): 计算机基础算法学习
遗传算法GA
1. 遗传算法GA
是一种模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最有化方法。可并行处理,并能找到全局最优解。
(1)基本操作:
复制
通过随机方法实现。首先产生0~1之间的随机数,某串的复制概率为40%,则当产生的随机数在0.4~1.0之间时,该串被复制,否则被淘汰。
能错那个旧种群中选择出优秀者
交叉(一点交叉,多点交叉,一致交叉,顺序交叉,周期交叉)
在匹配池中任选两个染色体,随机选择一点或多点交换点位置;交换双亲染色体交换点右边的部分,即可得到两个新的染色体数字串。
可以产生新的染色体
变异
在染色体以二进制编码的系统中,它随机地将染色体的摸一个基因由1变为0,或者相反。
如果没有变异,就无法在初始基因组合以外的空间进行搜索,石金华过程在早期就陷入局部解而进入终止过程,从而影响解的质量。为了在尽可能大的空间中获得质量较高的优化解,必须采用变异操作。
(2)特点:
遗传算法是对参数的编码进行操作,而不是对参数本身。
该算法同时使用多个搜索点的搜索信息,传统的优化方法往往是从解空间的单个初始点开始最优解的迭代搜多过程,单个搜多点所提供的信息不多,搜索效率不高,有时甚至使搜索过程局限于局部最优解而停滞不前。
直接以目标函数作为搜索信息,而不需要其他辅助信息。可用于目标函数无法求导或者导数不存在的函数优化问题,以及组合优化问题等。
该算法使用概念搜索技术。在解空间进行高效启发式搜索,而非盲目穷举或者完全随机搜索
对函数基本无限制,
可并行,适合大规模复杂问题的优化
模式定理是该算法的理论基础。该定理揭示了群体中优良个体的样本数将以指数级规律增长。
《搜索、优化和机器学习中的遗传算法》《遗传算法手册》
应用:
函数优化
组合优化
生产调度问题
自动控制
机器人
图像处理
人工生命
遗传编程
机器学习
构成要素:
染色体编码方法
使用固定长度的二进制符号表示个体,初始个体基因值可用均匀分布的随机值生成
个体适应度评价
确定有目标函数值J到个体适应度f之间的转换规则
遗传算子
选择运算: 使用比例选择算子
交叉运算: 使用单点交叉算子
变异运算: 使用基本位变异算子或均匀变异算子
运行参数
M: 群体大小,20~100
G: 终止进化代数,100~500
Pc: 交叉概率, 0.4~0.99
Pm: 变异概率,0.0001~0.1
相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- C#递归算法之分而治之策略
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- C#算法之大牛生小牛的问题高效解决方法
- C#算法函数:获取一个字符串中的最大长度的数字
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- 经典排序算法之冒泡排序(Bubble sort)代码
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法