Can I adjust patternsearch meshsize using output function (during optimisation)?

2 views (last 30 days)
I am trying to adjust the 'meshsize' between certain iterations of a patternsearch optimisation. The output functions provides access to the patternsearch options, however this does not provide the variable meshsize. The meshsize is located in the optimvalues structure which is read-only (as far as I am aware). Is there any way to modify this without restarting the optimisation afresh?
For context, I am using a 'dynamic' cost function which changes slightly and I want to prevent premature convergence (and ensure a good search). If not, I will have to try and figure out a smooth way to restart optimisation without creating too much of a mess.
Thanks for any help!
p.s. I tried adjusting the MeshContractionFactor and MeshExpansionFactor to both be scalars giving the desired meshSize regardless of the next poll outcome. However, MeshContractionFactor has to be between 0 and 1. So that won't work.
  1 Comment
Robert Hamill
Robert Hamill on 23 May 2023
@Alan Weiss Sorry if tagging is not encouraged but having read a lot of the optimisation questions, I thought you may well know the answer to this question.

Sign in to comment.

Accepted Answer

Alan Weiss
Alan Weiss on 23 May 2023
Sorry to say, but a patternsearch output function does not allow you to change the mesh size. However, as I think you know, the output function does allow you to change options on the fly. But if you tried changing options already, which is what I think your comment on MeshContractionFactor is about, then I do not have any other ideas for you.
Alan Weiss
MATLAB mathematical toolbox documentation
  1 Comment
Robert Hamill
Robert Hamill on 6 Jun 2023
Thanks Alan. Yes, I have decided to rework my approach to avoid resetting the mesh size.
For anyone reading in the future:
  • You could manually set MeshContractionFactor and MeshExpansionFactor, and also temporaily set a 'fake' function value in order to force the desired change in mesh size.
  • You could just restart the optimisation with a specified initial mesh size. (May be a pain in some cases).

Sign in to comment.

More Answers (0)

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!