Interior point shifting initial solution when not necessary

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개)

카테고리

도움말 센터File Exchange에서 Surrogate Optimization에 대해 자세히 알아보기

제품

릴리스

R2019a

질문:

2020년 4월 29일

편집:

2020년 4월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by