I'm trying to find a good solution with an evolution strategy for a 30 dimensional minimization problem. Now I have developed with success a simple (1,1) ES and also a self-adaptive (1,lambda)ES with one step size.

The next step is to create a (1,lambda) ES with individual stepsizes per dimension. The problem is that my matlab code doesn't work yet. I'm testing on the sphere objective function

function f = sphere(x)
    f = sum(x.^2);
 end

The plotted results of the ES with one step size vs. the one with individual stepsizes: http://i.imgur.com/hLRqI.png

The blue line is the performance of the ES with individual step sizes and the red one is for the ES with one step size.

The code for the (1,lambda) ES with multiple stepsizes

% Strategy parameters
tau = 1 / sqrt(2 * sqrt(N));
tau_prime = 1 / sqrt(2 * N);
lambda = 10;

% Initialize
xp = (ub - lb) .* rand(N, 1) + lb;
sigmap = (ub - lb) / (3 * sqrt(N));
fp = feval(fitnessfct, xp');
evalcount = 1;

% Evolution cycle
while evalcount <= stopeval

    % Generate offsprings and evaluate
    for i = 1 : lambda
        rand_scalar = randn();

        for j = 1 : N
            Osigma(j,i) = sigmap(j) .* exp(tau_prime * rand_scalar + tau * randn());
        end

        O(:,i) = xp + Osigma(:,i) .* rand(N,1);
        fo(i) = feval(fitnessfct, O(:,i)');
    end

evalcount = evalcount + lambda;

% Select best
[~, sortindex] = sort(fo);
xp = O(:,sortindex(1));
fp = fo(sortindex(1));
sigmap = Osigma(:,sortindex(1));

end

does anybody see the problem? Thanks

asked Dec 01 '10 at 10:51

Derk's gravatar image

Derk
1112

edited Dec 01 '10 at 10:52

I would not use "sphere" as a name for an objective function, since it is a matlab function for plotting spheres.

(Dec 01 '10 at 22:58) Leon Palafox ♦
Be the first one to answer this question!
toggle preview

powered by OSQA

User submitted content is under Creative Commons: Attribution - Share Alike; Other things copyright (C) 2010, MetaOptimize LLC.