2 遗传算法
遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。
2.1遗传算法的特性
本质上,参与计算的是遗产算法的参数集的代码,而非参数本身;
遗传算法从问题解的串集开始搜索,而不是从单个解开始;
遗传算法基本上不用搜索空间的知识或其它辅助信息,而仅用适应度函数值来评估个体,在此基础上进行遗传操作;
遗传算法不是采用确定性规则,而是采用概率的变迁规则来指导指他的搜索方向。
遗传算法通常实现方式为一种计算机模拟。对于一个最优化问题,一定数量的候选解(称为个体)的抽象表示(称为染色体)的种群向更好的解进化。传统上,解用二进制表示(即0和1的串),但也可以用其他表示方法。进化从完全随机个体的种群开始,之后一代一代发生。在每一代中,整个种群的适应度被评价,从当前种群中随机地选择多个个体(基于它们的适应度),通过自然选择和突变产生新的生命种群,该种群在算法的下一次迭代中成为当前种群。
2.2标准遗传算法
1. 选择初始生命种群
2. 循环
3. 评价种群中的个体适应度
4. 以比例原则(分数高的挑中机率也较高)选择产生下一个种群(轮盘法、竞争法及等级轮盘法)。不仅仅挑分数最高的的原因是这么做可能收敛到局部的最佳点,而非整体的。
5. 改变该种群(交叉和变异)
6. 直到停止循环的条件满足
图 1遗传算法的基本流程图
在遗传算法里,优化问题的解被称为个体,它表示为一个变量序列,叫做染色体或者基因串。染色体一般被表达为简单的字符串或数字串,不过也有其他的依赖于特殊问题的表示方法适用,这一过程称为编码。首先,算法随机生成一定数量的个体,有时候操作者也可以对这个随机产生过程进行干预,以提高初始种群的质量。在每一代中,每一个个体都被评价,并通过计算适应度函数得到一个适应度数值。种群中的个体被按照适应度排序,适应度高的在前面。这里的“高”是相对于初始的种群的低适应度来说的。
下一步是产生下一代个体并组成种群。
简单说来就是:繁殖过程,会发生基因交叉( Crossover ) ,基因突变 ( Mutation ) ,适应度( Fitness )低的个体会被逐步淘汰,而适应度高的个体会越来越多。那么经过N代的自然选择后,保存下来的个体都是适应度很高的,其中很可能包含史上产生的适应度最高的那个个体。
借鉴生物进化论,遗传算法将要解决的问题模拟成一个生物进化的过程,通过复制、交叉、突变等操作产生下一代的解,并逐步淘汰掉适应度函数值低的解,增加适应度函数值高的解。这样进化N代后就很有可能会进化出适应度函数值很高的个体。
编码:需要将问题的解编码成字符串的形式才能使用遗传算法。最简单的一种编码方式是二进制编码,即将问题的解编码成二进制位数组的形式。例如,问题的解是整数,那么可以将其编码成二进制位数组的形式。将0-1字符串作为0-1背包问题的解就属于二进制编码。
遗传算法有3个最基本的操作:选择,交叉,变异。
选择:选择一些染色体来产生下一代。一种常用的选择策略是 “比例选择”,也就是个体被选中的概率与其适应度函数值成正比。假设群体的个体总数是M,那么那么一个体Xi被选中的概率为f(Xi)/( f(X1) + f(X2) + …….. + f(Xn) ) 。比例选择实现算法就是所谓的“轮盘赌算法”( Roulette Wheel Selection ) ,轮盘赌算法的一个简单的实现如下:
- 上一篇:89C51单片机热电偶的温度测量系统设计
- 下一篇:激光测距中激光接收电路的设计
-
-
-
-
-
-
-
巴金《激流三部曲》高觉新的悲剧命运
中国传统元素在游戏角色...
NFC协议物理层的软件实现+文献综述
江苏省某高中学生体质现状的调查研究
g-C3N4光催化剂的制备和光催化性能研究
上市公司股权结构对经营绩效的影响研究
C++最短路径算法研究和程序设计
现代简约美式风格在室内家装中的运用
高警觉工作人群的元情绪...
浅析中国古代宗法制度