필터 지우기
필터 지우기

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

조회 수: 4 (최근 30일)
* 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?

채택된 답변

jgg
jgg 2016년 1월 29일
편집: jgg 2016년 1월 29일
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
Sam T
Sam T 2016년 1월 30일
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.
Walter Roberson
Walter Roberson 2016년 1월 30일
That might be a situation under which it would be advantageous to add an NVIDIA Tesla GPU

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Direct Search에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by