Azzera filtri
Azzera filtri

How does mesh scaling work in Pattern Search

3 visualizzazioni (ultimi 30 giorni)
Hi to everyone,
as I am dealing with a constrained optimization problem, I decided to use Pattern Search. One of the decisions I have to make during the setup of the problem is to set the initial Mesh Size and the Mesh Tolerance. The problem is that the solution vector that I am searching for is poorly scaled. For example, in one direction the solution vector is allowed to vary from 1e-4 to 1e-3 (according to its boundaries), whilst in another direction it is allowed to range from 5 to 600.
In the corresponding documentation, I read that Pattern Search gives me the opportunity to deal with such problems by turning "ScaleMesh" to "on". The documentation in that point reads: "Scale is used to rotate the pattern by some degree and scale along the search directions". Rotating and scaling to "some degree" is a little bit vague, isn't it? How am I supposed to decide on the Mesh sizes and tolerance for such poorly scaled search dimensions? Hence, my question is the following: to which degree is the scaling and rotation performed?
I hope that I wasn't vague too!
Thank you all in advance!

Risposta accettata

Alan Weiss
Alan Weiss il 11 Ott 2016
You are free to read the patternsearch code to see exactly what is going on. Usually, when you have a poorly scaled problem, you would do better to fix the scaling yourself rather than relying on patternsearch to try to guess what is going on.
The documentation for patternsearch options states: "Scale (ScaleMesh) specifies whether the algorithm scales the mesh points by carefully multiplying the pattern vectors by constants proportional to the logarithms of the absolute values of components of the current point (or, for unconstrained problems, of the initial point). Scale can have the values Off or On (the default). When the problem has equality constraints, Scale is disabled."
Alan Weiss
MATLAB mathematical toolbox documentation
  1 Commento
kknd
kknd il 11 Ott 2016
Alan,
I tried to read the patternsearch code (via the command edit patternsearch), but I couldn't find my way for the mesh scaling routine. Do you have any idea on where to search?
Nevertheless, I 'll give a try for manual scaling of the problem, as you proposed.
Thank you for your time!

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by