MATLAB Answers

How to change patternsearch options for paretosearch algorithm?

7 views (last 30 days)
I need to change the options for patternsearch like the 'MeshExpansionFactor' for the paretosearch algorithm. How can i acheive that using optimoptions.
My Code:
oldoptions = optimoptions('patternsearch', 'MeshExpansionFactor', 4.0)
options = optimoptions('paretosearch', 'ParetoSetSize', 500, oldoptions)
[x, fval, exitflag, output] = paretosearch(fun, nvars, [], [], Aeq, beq, lb, ub, [], options);
Error:
Error using optimoptions (line 108)
Invalid option name specified. Provide a character vector or scalar string (such as 'Display').
A list of options can be found on the PARETOSEARCH documentation page.
Error in optimizationn (line 19)
options = optimoptions('paretosearch', 'ParetoSetSize', 500, oldoptions)

  0 Comments

Sign in to comment.

Accepted Answer

Alan Weiss
Alan Weiss on 5 Aug 2020
Did you look in the documentation of options for paretosearch? It states clearly that MeshExpansionFactor is for patternsearch only.
Obviously, this is not your real problem, it is just your way of addressing your problem. Since the easiest way of addressing your problem is not supported, perhaps you will tell us what you are really trying to do and maybe we will have some alternate suggestions.
Alan Weiss
MATLAB mathematical toolbox documentation

  5 Comments

Show 2 older comments
Surya Saket Dasika
Surya Saket Dasika on 5 Aug 2020
The main problem I want to solve is to make the paretosearch algorithm give me a Pareto-Optimal Front faster. For that I have been doing different things like chaging my tolerances (MeshTolerance, ParetoSetChangeTolerance) and decreasing the problem's dimensional space, etc. Some of the questions i still have are:
1) How can I make my iterations faster?
2) For a given initial point how can i converge faster, i.e. reach a mesh size of MeshTolerance?
Alan Weiss
Alan Weiss on 6 Aug 2020
Perhaps you would have luck giving an initial population using the InitialPoints option. I don't think that there is anything that you can do to make the iterations faster other than rewriting the solver yourself. But if you give a good initial set of points it might be possible that the algorithm will converge faster. I don't know what a good initial set of points might be, but perhaps you have some idea based on your experiments so far.
It is also possible that you can stop the iterations early using an output function and then use fgoalattain to finish the iterations, along the lines of this example (see Run fgoalattain Manually from paretosearch Solution Points).
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by