Interior point shifting initial solution when not necessary
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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?
0 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Solver Outputs and Iterative Display dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!