ga.m

来自「本程序为遗传算法源程序」· M 代码 · 共 40 行

M
40
字号
function [gbestvalue,gbest,q1,endpop,dd]=ga(initpop,ff,num,bounds);
    

    SC=0.7;
    CP=0.7;
    P=0.01;
   
    pop=copy(initpop,bounds,SC,num);
    [cpop ,len]=cross(pop,bounds,CP);
    [pops]=mutation(cpop,bounds,P);
    for i=1:num
        sol=pops(i,:);
        %惩罚策略
        for jj=1:length(sol)
            if sol(jj)<bounds(jj,1)
                sol(jj)=rand*(bounds(jj,2)-bounds(jj,1));
            end
            if sol(jj)>bounds(jj,2)
                sol(jj)=rand*(bounds(jj,2)-bounds(jj,1));
            end
        end
      [f(i)]=Myfun(sol,size(bounds,1));
      if f(i)<ff(i)
          ff(i)=f(i);
          initpop(i,:)=pops(i,:);
      end
    end  
    dd=ff;
    endpop=initpop;
    q1=1;
    gbestvalue=ff(1);
    gbest=initpop(1,:);
    for k=1:num
        if ff(k)<gbestvalue
           gbestvalue=ff(k);
           gbest=pops(k,:);
           q1=k;
       end
    end
    

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?