概述
最优化算法之遗传算法
- 一、算法模型
- (1)编码方法
- (2)适应度函数
- (3)选择群体
- (4)交叉
- (5)变异
- 二、基本原理
- 1、编码
- 1.1编码精度
- 2、解码
- 3、复制选择
- 三、代码实现
一、算法模型
遗传算法(Genetic Algorithm)。算法的来源在这里不做过的的介绍了,下面我看看看它的模型和代码实现。
(1)编码方法
编码指的是使用一种方式对数值解进行编码。比如说数值解为5,但是我们在后面要对其进行交叉变异操作,单个数值5无法进行,所以要对其进行编码。
一般我们使用二进制编码的方式对数值解进行编码和解码。
(2)适应度函数
在求函数的最大值和最小值问题时,我们一般将其本身的函数作为适应度的计算函数。所谓适应度函数,目的是计算出适应度,选出适应度高的数值参加下一代的迭代。
(3)选择群体
选择群体的目的是选择出高适应度的解,使这些优良个体作为父代来繁殖下一代。
常用的选择方法是轮盘赌算法。(这里大家看名词可能有些疑惑,或者感觉很难,其实就是更大概率选择出适应度高的解):
(4)交叉
交叉是将选择后的解进行交叉,同时设置交叉概率,两个个体之间达到交叉概率后会发生交叉,交叉概率过大会搜索不必要的空间,一般交叉概率取0.9。常用的交叉方式有单点交叉和两点交叉:
(5)变异
上面讲到的交叉是算法的全局搜索能力,而这里的变异是解的局部开发能力。也就是说对单个个体,将其编码中的0变异为1或者将1变异为0。但是个体变异与否取决于变异概率,一般情况下变异概率取0.005左右。例如:一个种群有四个个体,每个个体由5位二进制编码,4 * 5 * 0.005 = 0.1;还不足一位,那么就不进行变异。
二、基本原理
1、编码
- [1,10]之间有无数个数,所以需要精度来表示有限个数;
- 数和二进制编码之间存在映射关系,而不是单纯的将数进行二进制转换,比如:
1.1编码精度
2、解码
在实现中,编码过程是直接生成二进制串,不需要十进制转二进制的代码。在解码过程中,实现二进制转十进制。
3、复制选择
常用的方法:
三、代码实现
参考资料:
1、《智能优化算法》
2、B站-遗传算法.
最后
以上就是心灵美狗为你收集整理的最优化算法之遗传算法的全部内容,希望文章能够帮你解决最优化算法之遗传算法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复