智能计算作业 遗传算法.pdfVIP

  • 36
  • 0
  • 约2.62千字
  • 约 6页
  • 2017-05-27 发布于河南
  • 举报
智能计算作业 遗传算法

智能计算—遗传算法的应用 1、遗传算法的基本原理 遗传算法(genetic algorithm,G )是一种新近发展起来的搜索最优解的方 法。其基本原理是仿效生物界中的 “物竞天择、适者生存”的演化法则。遗传算 法是把问题参数编码为染色体,再利用迭代的方式进行选交叉以及变异等运算来 交换种群中染色体的信息,最终生成符合优化目标的染色体,产生一群新的更适 应环境的个体,使群体进化到搜索空间中越来越好的区域。 2、遗传算法进行问题求解的基本步骤: 2.1 编码 G 在进行搜索之前,先将问题求解空间的可行解表示成遗传空间的基因型结构 数据,串结构数据的不同组合构成了不同的可行解。 2.2 生成初始群体 随机产生N个初始串结构数据,每个串结构数据成为一个个体,N个个体组成一 个群体,G 以该群体作为该群体作为初始迭代点。 2.3适应度评估检测 根据实际标准计算个体的适应度,评判个体的优劣,即该个体所代表的可行解的 优劣。适应度表明个体或解的优劣性,不同的问题,适应性函数的定义方式也不 同。 2.4选择 从当前群体中选择优良的 (适应度高的)个体,使他们有机会被选中进入下一次 迭代过程,舍弃适应度低的个体。遗传算法通过选择过程体现这一思想,进行选 择的原则是适应性强的个体为下一代贡献一个或多个后代的概率大。 2.5交叉 交叉操作是遗传算法中最主要的遗传操作。通过交叉操作可以得到新一代个体, 新个体组合了父辈个体的特性。交叉体现了信息交换的思想。 2.6变异 随机选择中间群体中的某个个体,以概率p大小改变个体某基因的值。变异为产 生新个体提供了机会。G 中变异发生的概率很低,通常取值很小。 3、遗传算法的MATLAB程序实现 sin(10x) 3.1 采用遗传算法优化一元函数f (x) ,x[1,2] x 首先需下载并安装谢菲尔德遗传算法工具箱至MATLAB搜索路径中,程序中遗传 算法使用的函数格式如下: (1) 创建种群函数—crtbp (2) 适应度计算函数—ranking (3) 选择函数—select (4) 交叉算子函数—recombin (5) 变异算子函数—mut (6) 重插入函数—reins (7) 实用函数—bs2rv 其中种群大小为40,最大遗传代数为20,个体长度为20,代沟为0.95,交叉概 率为0.7,变异概率为0.01 3.2 程序运行结果 图1. 目标函数图、每代的最优解以及经过20代进化后的种群分布图 图 2. 最优解的进化过程 3.3 结果分析 图1为目标函数图,其中○是每代的最优解,*是优化20代后的种群分布,可看出 他们都集中在一个点X=1.1491,Y=-0.8699,即为最优解。图2为种群优化20代的 进化图。 3.4 程序源代码: clc clearall closeall %%画出函数图 figure(1); holdon; lb=1;ub=2;%函数自变量范围 ezplot(sin(10*pi*X)/X,[lb,ub]);%画出函数曲线 xlabel(自变量/X) ylabel(函数值/Y) %%定义遗传算法参数 NIND=40;%种群大小 MAXGEN=20;%最大遗传代数 PRECI=20;%个体长度 GGAP=0.95;%代沟 px=0.7;%交叉概率 pm=0.01;%变异概率 trace=zeros(2,MAXGEN);%寻优结果的初始值 FieldD=[PRECI;lb;ub;1;0;1;1];%区域描述器 Chrom=crtbp(NIND,PRECI);%创建任意离散随机种群 %%优化 gen=0;%代计数器 X=bs2rv(Chrom,FieldD);%初始种群二进制到十进制转换 ObjV=sin(10*pi*X)./X;%计算目标函数值 whilegenMAXGEN FitnV=ranking(ObjV);%分配适应度 SelCh=select(sus,Chrom,FitnV,GGAP);%选择 SelCh=recombin(xovsp,SelCh,px);%重组 SelCh=mut(SelCh,FieldD);%变异 X=bs2rv(Sel

文档评论(0)

1亿VIP精品文档

相关文档