<< cma_new CMA-ES Optimization Toolbox cma_optim_restarted >>

CMA-ES Optimization Toolbox >> CMA-ES Optimization Toolbox > cma_optim

cma_optim

A functional interface to the CMA-ES optimizer, a (stochastic) non-convex function minimizer

Calling Sequence

param = cma_optim()
param = cma_optim([])
[xopt, f, out, param] = cma_optim(costf, x0, sigma0 [, param])

Parameters

costf

objective function (cost function) to be minimized. costf must accept a column vector as input and return the scalar cost to be minimized. The return value %nan is allowed and leads to an immediate resampling (and (re-)evaluation) of the solution during the same iteration.

x0

initial solution, a column vector of real values.

sigma0

the initial standard deviation acting on x0, typically 1/3 of the typical variable ranges. If the ranges of variables are different, use param.scaling_of_variables

param

optional parameters collected in a struct. '[]' or '{}' invokes all default settings. param.verb controls verbosity. After the objective function is debugged and when the returned solution(s) are satisfactory, logmodulo=0 (no data saving) and displaymodulo=0 (no screen output) make the code completely quiet (and faster).

xopt

best found solution vector. On noisy functions and for robust optimization out.solutions.mean.x might be the better choice.

f

function value of xopt: f=costf(xopt)

out

additional useful output collected in a struct.

param

output parameter param contains the actually used parameters (some of them might have been evaluated), including x0 and sigma0.

Description

Examples

getf('fitfuns.sci');    // define frosen and felli, file should be in CMA-ES-vXXX/demos
[f x out] = cma_optim(frosen, rand(8,1), 0.3); // minimize 8-D Rosenbrock function
disp(f)                 // display achieved function value, x is the delivered solution

p = cma_optim([]);      // get optional parameters
disp(p.stop);           // lets see the possible and default termination criteria
p.readme.stop           // lets see what the entries mean
p.stop.fitness = 1e-9;  // set target function value (minimization)
p.verb.plotmodulo = 0;  // turn plotting off this time
[f x out] = cma_optim(felli, ones(15,1), 1, p);  // minimize 15-D hyper-ellipsoid function

disp(out.solutions.bestever.f);    // show the best-ever function value
disp(felli(out.solutions.mean.x)); // might be an even better solution
cma_plot;               // let's finally plot the run

See Also

Authors

Nikolaus Hansen

Bibliography

Used Functions

cma_new()

cma_ask()

cma_tell()

...


Report an issue
<< cma_new CMA-ES Optimization Toolbox cma_optim_restarted >>