How to interpret the output from GobalSearch and MultiStart

10 views (last 30 days)
I'm have implemented a model using ODE45 now I'm trying to validate that model and want to see if I can find a set of parameters that give me a global minima. To do this I have used tried to use the GlobalSearch class and the MultiStart class. I have set option 'Display' to 'inter' so that I can follow the results. However I don't understand how to interpret the output.
For the GlobalSearch I get the following:
Num Pts Best Current Threshold Local Local
Analyzed F-count f(x) Penalty Penalty f(x) exitflag Procedure
0 13 1.784 1.784 2 Initial Point
10 1062 1.782 1.782 2 Stage 1 Local
110 1164 1.782 10.16 2.642 Stage 2 Search
150 1222 1.781 2.982 3.281 1.781 2 Stage 2 Local
210 1282 1.781 11.47 1.884 Stage 2 Search
310 1382 1.781 4.992 1.95 Stage 2 Search
410 1482 1.781 5.105 2.251 Stage 2 Search
440 1537 1.781 2.538 2.762 1.782 2 Stage 2 Local
510 1607 1.781 3.884 2.229 Stage 2 Search
610 1707 1.781 1.79 1.784 Stage 2 Search
710 1807 1.781 1.987 1.925 Stage 2 Search
792 1912 1.781 2.219 2.776 1.784 2 Stage 2 Local
810 1930 1.781 2.163 1.899 Stage 2 Search
852 1994 1.781 2.945 3.174 1.786 2 Stage 2 Local
910 2052 1.781 1.873 1.873 Stage 2 Search
GlobalSearch stopped because it analyzed all the trial points.
All 6 local solver runs converged with a positive local solver exit flag.
For MultiStart I get the following:
Run Local Local Local Local First-order
Index exitflag f(x) # iter F-count optimality
7 2 1.209 7 56 0.1692
4 2 1.308 9 70 0.2565
6 2 1.496 17 130 0.2432
3 2 1.471 26 189 0.3185
5 2 1.582 16 124 0.1969
2 2 1.486 9 74 0.178
1 2 1.488 12 98 0.1735
9 2 1.501 19 148 0.1875
10 2 1.537 10 79 0.1608
8 2 1.458 36 271 0.0547
The Best f(x) and local f(x) seems to be my minimum but what do the other values tell me and why do I never get a exit flag 1?

Accepted Answer

Alan Weiss
Alan Weiss on 8 Aug 2016
Edited: Alan Weiss on 8 Aug 2016
The details of the MultiStart and GlobalSearch algorithms are here. The GlobalSearch algorithm is somewhat complicated, but MultiStart is easy to describe.
MultiStart simply runs a local solver repeatedly, starting from a variety of initial points. The local exitflag is the exit flag that the local solver (perhaps fmincon) returned. Similarly, the local F-count is the number of function evaluations that the local solver took to converge to a local solution.
It is clear that your first-order optimality is not very near zero, so that is why you do not get an exit flag of 1. Is your objective function smooth, or does it have an absolute value or other nonsmooth function? For more information on improving your results, see the documentation.
There are also extra considerations in optimizing a simulation or ODE. Your objective function can be noisy. Or you might need to set finite difference tolerances differently.
Alan Weiss
MATLAB mathematical toolbox documentation

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!