Function evaluation in each iteration of pattern search exceeding 2* (number of optimization variable)
조회 수: 1 (최근 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?
댓글 수: 0
채택된 답변
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.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Direct Search에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!