用于函数优化的遗传算法

上传人:hs****ma 文档编号:545610434 上传时间:2022-12-14 格式:DOC 页数:18 大小:344KB
返回 下载 相关 举报
用于函数优化的遗传算法_第1页
第1页 / 共18页
用于函数优化的遗传算法_第2页
第2页 / 共18页
用于函数优化的遗传算法_第3页
第3页 / 共18页
用于函数优化的遗传算法_第4页
第4页 / 共18页
用于函数优化的遗传算法_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《用于函数优化的遗传算法》由会员分享,可在线阅读,更多相关《用于函数优化的遗传算法(18页珍藏版)》请在金锄头文库上搜索。

1、一、遗传算法简介1综述遗传算法(Genetc lgorithm)是由美国Michiga 大学Holland 专家和她的学生发展建立起来的,其思想是来源于生物遗传学适者生存的自然规律,是一种新兴的自适应随机搜索措施,它对优化对象既不规定持续,也不规定可微,并具有极强的鲁棒性和内在的并行计算的机制,特别适合于非凸空间中复杂的多极值优化和组合优化问题。 2.基本原理老式的优化理论都是通过调节模型的参数来得到盼望的成果,而遗传优化算法是根据生物界的遗传和自然选择的原理来实现的,它的学习过程是通过保持和修改群体解中的个体特性,并且保证这种修改可以使下一代的群体中的有助于与盼望特性相近的个体在整个群体份额

2、中占有的比例越来越多。与基于代数学的优化措施同样,遗传算法是通过持续不断地队群体进行改善来搜索函数的最大值。遗传算法的搜索成果会有很大的差别。遗传学习的基本机理是使那些优于群体中其她个体的个体具有生存、繁殖以及保持更多基因给下一代的机会。遗传算法实质上是在群体空间中谋求较优解。.重要构成遗传算法重要由编码、适应度、遗传算子(选择算子、交叉算子、变异算子)构成,涉及的重要进化参数有编码长度、种群规模、交叉概率、变异概率、终结进化代数。4.基本环节(1)初始化:拟定种群规模,交叉概率,变异概率和终结进化准则,随机生成初始种群;置;(2)个体评价:计算或估计中各个个体的适应度。(3)选择:从运用选择

3、算子选择出某些母体。(4)交叉:对所选个体依概率执行交叉,形成新的种群。(5)变异:随所选个体依概率执行变异,形成新的种群。 反复执行环节(2)-(4),直到满足终结进化准则为止。二、遗传算法的设计流程图运营参数:种群大小Popsize,a,b,pc,pm,迭代次数T,编码长度Length- 初始种群encoding终结条件输出成果选择操作 selection交叉操作 crossover变异操作 mutation三、二进制遗传算法的设计与实现1、编码本次实验我们选择二进制编码方案,它是遗传算法中最常用的一种编码措施,以二进制字符0和1为等位基因的定长字符串编码。如果给定编码精度,取编码长度为满

4、足的最小整数。其中,b是优化区间。在实验中,由于有两个自变量我们选定长度=2*Lnth,每个自变量编码长度为Leth=1;其解码公式为 ,其中i,2是两个自变量的编号。2、适应度函数对优化的目的函数解决,使其转化为适应度函数。满足适应度不小于0的条件,对于求函数的极大值,只须做非负化解决。对于求极小值的状况则在目的函数前加负号作为适应度函数转换为求极大值。、选择算子 本次实验采用的是转盘式选择算子和最优保存方略相结合的措施来实现。计算种群中每个个体的适应度,将适应度最大的五个个体保存下来不进行交叉变异而直接进入下一代,然后将每个个体的适应度求和得到dasu最为选择概率pi,选择时产生一种naa

5、m的随机数,如果则选择个体i。 我们采用的方略是最优个体保存和转盘式算子结合的措施,目的是在遗传操作中,不仅能不断提高群体的平均适应度,并且能保证最佳个体的适应值不减小。4、交叉算子 我们采用的是单点交叉的措施。它是等概率的随机指定一种基因位置作为交叉点,把母体对中两个个体从交叉点分为前后两段,拟定一种交叉概率P=0.,当产生的随机数不不小于交叉概率时将两个个体的后半部分互换,得到两个新的个体。5、变异算子 我们选择变异概率=005对个体编码串每一位进行变异运算,采用单点变异作为变异算子,当某位基因处产生的随机数不不小于变异概率时实行变异操作。当该位基因是0时变异为1,基因是1时变异为0。6、

6、终结条件我们以进化代数作为遗传算法的终结条件。对于不同的测试函数,我们选用了不同的迭代次数。四、运营成果及成果分析1、 运营成果我们选择了八个检测函数对程序进行了实验,每个函数运营1次取最优值和最差值,表1为函数优化成果函数最优值最差值平均值实际最优值1()-1.2207-0081.220e-005.65060(x)2.23001.932e-0890e-053(x)33.00133f4(x)6881e-0082.2219e085e060(x)-1316-.0309-.43.3628f6(x)-.848.848-0.848-01848f(x) 86.308186.7012-1.72916.3(x

7、)-2.18-2.1182118-2.11 检测函数1二维球形函数运营成果图一检测函数Deg函数运营成果见图二图二检测函数Goldei-prie函数运营成果为图三检测函数4immelbau函数运营成果如图四图四 检测函数5Six-hump caeback函数运营成果如图五图五检测函数6ohaevsky函数运营成果如图六图六 检测函数Shubrt函数运营成果如图七 检测函数多峰函数运营成果如图八图八2、成果分析我们选用赌盘选择法和最优个体保存法相结合的选择方案,保证每次迭代的适应度较高的个体保存下来,直接遗传进入下一代。使得局部最优个体不被裁减,从而使算法的全局搜索能力增强。从表一中可以看出运营

8、10次的成果偏差较小,最优值接近实际最优值。从函数的运营成果曲线可以看出收敛特性较好,成果比较稳定。算法寻优能力较强,阐明此措施较为可靠。五、总结 本次实习我们做的是最基本的遗传算法,一方面,在这个过程中,发现要设计好这个算法,重点在于三个方面。一是编码的选择,遗传算法的编码有多种选择,而如何选择以便有效的编码是算法的前提;二是各算子的选择会影响算法的效果在设计过程中感受最大的就是选择算子的不同会对成果导致很大的影响;三是对于随机数的控制,如何能实现真正的随机,如何初始种群的随机而不是伪随机。alab程序代码lar al;lose all;clc;遗传算法参数设定和初始化=0; %种群大小20

9、个T100; %遗传运算得终结进化代数120代Length=16; 二进制编码长度1位=0.9; %交叉概率07m=0.04; %变异概率B=0.0Max10;%输入值的取值上限Min=-0; %输入值的取值下限ound(M,Lth*2)); %初始化,使其成为布尔型数值eros(M,Lengh2);for =:1:T(k);for s=:1:M NG(,:); 10;y2=0;N1=N(1:Length); %对x1进行解码,fi=1:Length y1=y1+N1(i)2(i1);en1=(Max-Mi)*1/(2Lenh-1)in; x_G(k)=x1; 为了便于最后图形输出,而引进的类

10、似指针型变量2=N(Lngh:2*Lngth); 对x2进行解码for i=:Length y2=y2+N2()*2(-1);edx2(Max-Min)*y2/(2Lengh-1)+Mn; 2G(k)=x; %为了便于最后图形输出,而引进的类似指针型变量f10;2=0;o i:5 f1=1+i*(cos(i+1)x1+i);% 2=2+i(os((i+1)*x2+i)); end(s)-*f;122*.2-0.3*cos(p.*1).3*cos(4*pi*x)+.3;%*x1.1*x1.4/*x11*x2-4x2.2+4*x2.;%(x.2+x2-11).2(x1+x2.-7);%1+(1+x

11、1+x2)2*(-4*x1+3*x114*26x1*x+3*x22)*30+(*3*x)2*(1-3*x112x48*x2-36*x*x2+7*x22);%10*(1.2-x2)+(1-x1).2;%F(s)=*f;%目的函数体现式enFit=F;%+ma();der,Ix=sot(Fit); 将适应度从小到大进行排列BFIdex(M);%Order(M);%选出适应度最大得值I()=F(BF);%最小函数值FM(k)=an(FI);%每次迭代函数值的平均值=G(Indx(),:);I=M; %保护5个最优个体for=1:1:5 BGG(,:)=(Inde(In),:); In=-1;nd%采用赌盘选择法aasm0;fr i=:1:M %直到累加和n,最后的累加就是复制个体 dasu=d_sum+(i);dfori=1:(-5) %选择9次,最后一种个体留给历代最优解 =ad*adum; %随机产生一种数 ada_temp; 初始化累加值为 =1; il(ada_empr&jn %交叉条件,=6,n0.6时就进行交叉运算 Cn=ei(2*Lh*); i or(C=0,n=20) continu; end fr j=C:1:2Lengt %随机互换部分染色体的基因,互换的位从Cn到末位止 tep=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号