An issue related to the starting points in MultiStart
Show older comments
Hello there,
I am using the "MultiStart" algorithm, in conjunction with the local solver 'fmincon', for my optimization problem. I have created a “RandomStartPointSet” object to produce 3 random start points. Below is my set-ups.
%-- opts = optimset('Algorithm','interior-point');
problem = createOptimProblem('fmincon','objective',fh,'x0',x0,'lb',lb,'ub',ub,'options',opts); % “fh” is my %customized function handle that depends on the parameter values
ms=MultiStart('StartPointsToRun','bounds','Display','iter','MaxTime',3600);
rs = RandomStartPointSet('NumStartPoints',3); %
allpts = {rs};
[x fval eflag output manymins] = run(ms,problem,allpts); %--
The optimization procedure is fine, but I observed the following phenomenon:
The parameter values (which need to be optimized) in these 3 start points are identical, for instance, start points 1, 2 and 3 have the same parameter values [0.55 0.55], and the optimization processes return the same cost function values by running optimizations w.r.t. start points 1, 2 and 3. After executing the optimization (or searching) w.r.t points 1, 2 and 3, the parameter values do change then, for instance, from [0.55 0.55] to [0.1 0.8], but again they are kept identical for points 1, 2 and 3, and so on. The above phenomenon means that, say, start points 2 and 3 are simply repeating what start point 1 is doing, and this is a waste of the computing resources.
I wonder what the possible reason is for this phenomenon, and how I can avoid it.
Many thanks for your attention and look forward to hearing from you.
Best regards,
Xiaodong
Answers (1)
Alan Weiss
on 4 Apr 2013
I suggest you try generating the random start points using the list method:
pts = list(rs,problem)
Are all three points identical?
Also, you don't have to use allpts, you can pass rs to MultiStart directly.
Alan Weiss
MATLAB mathematical toolbox documentation
3 Comments
Xiaodong
on 4 Apr 2013
Alan Weiss
on 5 Apr 2013
It sounds to me as if your code is indeed doing something mysterious. I have no idea what might be going on.
However, you are free to choose any start points for MultiStart. So, for example, you can take ptmatrix, set it as a CustomStartPointSet, and then pass that as the start points for MultiStart. Whatever your code is doing, it won't be able to change those points.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
Xiaodong
on 5 Apr 2013
Categories
Find more on Problem-Based Optimization Setup in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!