李云强
摘 要:本文对遗传算法进行了研究,给出了遗传算法的基本原理,以及其优势和劣势,对此的改进方法。然后应该算法进行了极值研究与仿真。
关键词:遗传;仿真;算法;计算;模式识别
1 遗传算法原理
交叉:根据上面给出的Pr(hi),从P中按概率选择r·p/2对假设。对于每一对假设
(4)从P中返回适应度最高的假设。算法每次迭代里,基于当前群体产生新一代假设。从当前的群体中选择一定数量的假设包含在下一代中。
2 遗传算法的特点
2.1 优势
⑴对可行解表示的广泛。遗传算法的处理对象不是参数本身,而是针对那些通过参数集进行编码得到的基因个体。这一特点使得遗传算法具有广泛的应用领域。⑵许多传统的搜索方法都是单点搜索,遗传算法采用的是同时处理群体中多个个体的方法,使遗传算法具有较好的全局搜索效率,也使得遗传算法本身易于并行化。⑶不需要辅助信息。仅用适应度函数的数值来评估基因个体。⑷内在启发式随机搜索特性。
2.2 不足
⑴编码不规范及编码存在表示的不准确性。⑵单一的遗产算法编码不能全面地将优化问题的约束表示出来,计算时间增加。⑶遗传算法通常的效率比其他传统方法低。⑷遗传算法容易出现过早收敛。⑸遗传算法对算法精度、可行度、计算复杂度,还没有有效定量分析方法。
所以综上,对于遗传算法,应该充分认识到其优缺点,确定应用场合和环境,结合硬件条件、时间特性、计算规模,充分发挥其优势,尽可能压缩其缺点。
3 遗传算法改进
为提高遗传算法的运算速度、改善其性能,在并行机或局域网环境下开发出了一些并行遗传算法,大體可分为标准并行方法(standard parallel approach)和分解型并行方法(decomposition parallel approach)。前者利用共享存贮器结构的并行机,可对群体的进化过程进行并行计算以达到提高遗传算法运行速度的目的。后者从全局的角度开发群体进化的并行性,改变了简单遗传算法的基本特点,各子群体独立地进行进化。
4 极值应用与仿真
遗传算法可以较好的达到局部最优,用来求解局部的极大或者极小值。所以这里极值问题为f(x)=x+9*sin(4x)+8*cos(3x)的最大值,其中4<=x<=15,二进制编码,选取种群个体数目为30,二进制编码长度为15,交叉概率为0.7,变异概率是0.15。在仿真里采用遗传算法求解函数最大值问题,应用常规的二进度编码,利用赌轮算法选择最优化群体,进行交叉变异等遗传操作,最终求出所求函数最大值即最忧解。遗传算子选择运算,使用赌轮选择算法,求解最佳适应度种群:分别求出30个初始种群中每个种群个体的适应度函数,并计算所有种群的和S。在区间(0,S)上随机的产生一个数r从某个基因开始,逐一取出基因来,把它的适应度加到s上去(s开始为0),如果s大于r,则停止循环并返回当前基因。
群体M小时可以提高遗传算法的运行速度,但是降低了群体的多样性有可能引起算法的早熟现象,当M大时使得运行效率降低。交叉操作是产生新个体的主要方法一般应取值较大,但太大会破坏群体的优良模型,对进化产生不利影响。取值太小产生新个体速度又较慢。变异概率较大时虽能产生比较多的新个体,但有可能破坏掉较好的模型使得遗传算法的性能近似于随机搜索算法性能,Pm太小变异操作产生新个体和抑制早熟的能力较差,最佳范围
遗传代数增加,变异概率增加,全局最忧解收敛性最优,计算出来最优解17.34。
[参考文献]
[1]肖燕彩.《MATLAB 语言及实践教程》.清华大学出版社,2004年5月.
[2]李敏强,寇纪淞.《遗传算法的基本理论与应用》.科学出版社, 2003.3.