• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: Matlab
  • 标签: 遗传算法  

资源简介

遗传算法入门程序,求解一个六峰驼背函数的最小值,绝对经典

资源截图

代码片段和文件信息

%Generic Algorithm for Function f(x1x2)optimum
clear all;
close all;

x=-3:0.01:3;
y=-3:0.01:3;
[xy]=meshgrid(xy);
f=4*x.^2-2.1*x.^4+1/3*x.^6+x.*y-4*y.^2+4*y.^4;
mesh(xyf);
xlabel(‘x-axis‘)ylabel(‘y-axis‘)zlabel(‘f-axis‘);title(‘六峰值驼背函数‘);

minf=min((min(f))‘);
k=find(f==minf);
%minfx(k)y(k)
%Parameters
Size=80;    %种群个数一般20-100;
G=100;      %迭代次数,一般100-500;
pc=0.60;    %交叉概率,一般0.4-0.99;
pm=0.1;     %变异概率,一般0.0001-0.1;

CodeL=10;
N=2^CodeL-1;

umax=3;
umin=-3;

E=round(rand(Size2*CodeL));    %Initial Code

%Main Program
for k=1:1:G
    time(k)=k;
    
    %Uncoding
    for s=1:1:Size
        m=E(s:);
        y1=0;y2=0;
        
        m1=m(1:CodeL);
        for i=1:CodeL
            y1=y1+m1(i)*2^(i-1);
        end
        x1=(umax-umin)*y1/N+umin;
        m2=m(CodeL+1:2*CodeL);
        for i=1:CodeL
            y2=y2+m2(i)*2^(i-1);
        end
        x2=(umax-umin)*y2/N+umin;
        
   %     F(s)=100*(x1^2-x2)^2+(1-x1)^2;
        F(s)=-(4*x1^2-2.1*x1^4+1/3*x1^6+x1*x2-4*x2^2+4*x2^4);
   %     F(s)=-(x1-1)^2-(x2)^2;
    end
    
%    Ji=1./F;
    %**********Step1: Evaluate BestJ**********
%    BestJ(k)=min(Ji);
    ksp=2;
    Fmin=min(F);
    Fmax=max(F);
    fmin=(Fmin+Fmax)/(1+ksp);
    fmax=ksp*fmin;
    delf=(fmax-fmin)/(Fmax-Fmin);
    
    %fi=fmin

评论

共有 条评论