Function evaluation in each iteration of pattern search exceeding 2* (number of optimization variable)

1 visualización (últimos 30 días)
* Newbie to global optimization toolbox *
Hi,
I am trying to perform constrained optimization using pattern search.
  • Since the search method in pattern search is specified as GSSPositiveBasisNp1 (see definition of options below), I am expecting the number of function evaluations (FE) at each iteration to be 2 * (number of optimization variables = 45).
  • However, when I perform the optimization, typical number of FE at each iteration is ~300 while it should be 90 (2*45).
The options that I use in pattern search is :
options = psoptimset('Display','iter', 'PlotFcns' , {@psplotfuncount, @psplotbestf}, 'UseParallel', 'always', 'TolFun', 1E-3, ...
'CompletePoll', 'on', 'SearchMethod', 'GSSPositiveBasisNp1', 'OutputFcn', @psoutputfcn );
optimalSol = patternsearch( fHandle, initialGuess, [], [], [], [], lb, ub, [],options);
Can you help me identify the issue here, and fix it?

Respuesta aceptada

jgg
jgg el 29 de En. de 2016
Editada: jgg el 29 de En. de 2016
You have 'SearchMethod' enabled. This is an optional step which performs a search prior to the polling, resulting in the large number of extra function evaluations. Searching is different from polling in patternsearch's implementation in Matlab; it's basically like a local-prescreening of the most recent best point to improve convergence performance.
I think the option you actually want is 'PollMethod' instead.
  5 comentarios
Sam T
Sam T el 30 de En. de 2016
jgg: The FE is expensive since I am solving nonlinear dynamical system.
Walter: I am running it on a cluster which has 16 cores and 64GB memory.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Direct Search en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by