Interior point shifting initial solution when not necessary

6 vues (au cours des 30 derniers jours)
Massimiliano Zanoli
Massimiliano Zanoli le 29 Avr 2020
I need to optimize a problem for which I have an already good estimate of the global optimum. I need to do this with fmincon using the interior-point algorithm.
My initial estimate x0 has some values that are exactly on the boundary (i.e. x0 == lb or x0 == ub for some elements of x0). The documentation for fmincon states that a solution x is valid with respect to the bounds when lb x ub. However, the boundary check in fmincon.m is carried out with the following two lines of code:
violatedLowerBnds_idx = XOUT(xIndices.finiteLb) <= l(xIndices.finiteLb);
violatedUpperBnds_idx = XOUT(xIndices.finiteUb) >= u(xIndices.finiteUb);
which will fail when some values are equal to the boundary.
  • First of all, this seems to be in disagreement with the documentation.
  • Second, this will cause fmincon to shift the initial point x0 to some other value x0' determined by the sub-function shiftInitPtToInterior, whose behavior is not documented and that will completely destroy the initial esteem (x0' <<>> x0).
Why is the initial solution shifted despite being valid? How to avoid this with the interior-point algorithm?

Réponses (0)

Produits


Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by