有人可以向我解释相关变异代码卡在哪里吗?

时间:2017-12-10 18:36:00

标签: matlab correlation nonlinear-optimization evolutionary-algorithm mutation

我正在试图用所谓的相关变异(自适应)实现进化策略算法,其中我认为正确的Matlab代码没有优化(球体基准函数)以及我预期的。

    %% mutate sigma & alpha
 for l = 1:lambda;  

    tmp       = randn(n,n);
    OffspringIndividual.sigma = Recombinant.sigma.*exp(tau_prime*randn + tau*(tmp + tmp'));

    tmp       = rand(n,n);
    OffspringIndividual.alpha = Recombinant.alpha + beta*triu((tmp + tmp'),1);

    %% Coordinate transformation with respect to axes 'i' and 'j' and angle
  R = eye(n);
  for m = 1:n-1
    for q = m+1:n
      T               =  eye(n);
      T([m q], [m q]) =  [  cos(OffspringIndividual.alpha(m,m))     -sin(OffspringIndividual.alpha(m,q))
                            sin(OffspringIndividual.alpha(q,m))      cos(OffspringIndividual.alpha(q,q)) ];
      R               =  R*T;
    end
  end

%   %% mutate object parameter
%   OffspringIndividual.y = Recombinant.y + OffspringIndividual.sigma'  .* randn(n,1); 
   OffspringIndividual.y = Recombinant.y + R*sqrt(diag(diag(OffspringIndividual.sigma)))*randn(n,1);

  %% check boundaries
  for check = 1:n
      if OffspringIndividual.y(check) > ub
          OffspringIndividual.y(check) = ub;
      end
      if OffspringIndividual.y(check) < lb
          OffspringIndividual.y(check) = lb;
      end
  end


  %% determine fitness
  OffspringIndividual.F = fitness(OffspringIndividual.y); 

  %% offspring complete
  OffspringPop{l} = OffspringIndividual;                  
 end;

在选择了最好的后代个体之后,在我看来,尽管它减少了,但没有最大的改善功能。 我的突变有问题吗?

0 个答案:

没有答案